Thread overview
Cyclone programming language and its influence
Oct 16
jmh530
Oct 18
jmh530
October 15
A couple nice mentions of D!

https://pling.jondgoodwin.com/post/cyclone/
October 16
On Thursday, 15 October 2020 at 07:27:47 UTC, Walter Bright wrote:
> A couple nice mentions of D!
>
> https://pling.jondgoodwin.com/post/cyclone/

Really interesting article, thanks!

This article that it links to (it's mentioned in the section on Cone) looks of particular interest w.r.t. D's further development of memory safety features and alternatives to GC:
https://jondgoodwin.com/pling/gmm.pdf
October 16
On Friday, 16 October 2020 at 20:16:10 UTC, Joseph Rushton Wakeling wrote:
> [snip]
>
>
> This article that it links to (it's mentioned in the section on Cone) looks of particular interest w.r.t. D's further development of memory safety features and alternatives to GC:
> https://jondgoodwin.com/pling/gmm.pdf

That was interesting. It looks like a big part of that paper is basically taking the pony language's reference capabilities and then adding a lock permission, which sounds a lot like a shared mutable variable in D. Pony certainly comes across as interesting, but the emphasis on the actor model made it a bit hard for me to grok.
October 17
On Thursday, 15 October 2020 at 07:27:47 UTC, Walter Bright wrote:
> A couple nice mentions of D!
>
> https://pling.jondgoodwin.com/post/cyclone/

Hi Walter,

I'm glad you enjoyed my post and positive comments about D. I have long admired the design choices you have made with D. Some of these have inspired design choices I have made with my language Cone. Such inspirations include the use of arena memory management for speeding up the compiler, D's flavor of weakly "pure" functions or methods, and the rich collection of language capabilities around arrays.

I mention D positively in another post while talking about the pros and cons of various approaches towards inheritance, for example here:  https://pling.jondgoodwin.com/post/delegated-inheritance/

Good luck on your continued evolution of the D ecosystem

- Jonathan
October 17
On Friday, 16 October 2020 at 20:16:10 UTC, Joseph Rushton Wakeling wrote:
> On Thursday, 15 October 2020 at 07:27:47 UTC, Walter Bright wrote:
>> A couple nice mentions of D!
>>
>> https://pling.jondgoodwin.com/post/cyclone/
>
> Really interesting article, thanks!
>
> This article that it links to (it's mentioned in the section on Cone) looks of particular interest w.r.t. D's further development of memory safety features and alternatives to GC:
> https://jondgoodwin.com/pling/gmm.pdf

I am delighted you found my 3-year old paper on gradual memory management to be interesting and thought-provoking. My thoughts have deepened considerably since then on many fronts, including how to improve on the memory management versatility and safety features hinted at in that paper.

You can find more information on my Cone website:  https://cone.jondgoodwin.com  Of particular note on this topic are the pages in the language reference on various kinds of references and their region and permission annotations. My blog (at https://pling.jondgoodwin.com) has a nice series on Permissions and (someday) will have a similar deep dive into regions.

I love the way that language designers can cross-fertilize and build on great programming language innovations that improve the developer experience.
October 17
On Friday, 16 October 2020 at 21:59:44 UTC, jmh530 wrote:
> On Friday, 16 October 2020 at 20:16:10 UTC, Joseph Rushton Wakeling wrote:
>> [snip]
>>
>>
>> This article that it links to (it's mentioned in the section on Cone) looks of particular interest w.r.t. D's further development of memory safety features and alternatives to GC:
>> https://jondgoodwin.com/pling/gmm.pdf
>
> That was interesting. It looks like a big part of that paper is basically taking the pony language's reference capabilities and then adding a lock permission, which sounds a lot like a shared mutable variable in D. Pony certainly comes across as interesting, but the emphasis on the actor model made it a bit hard for me to grok.

You are right that half that paper focuses on what Pony calls reference capabilities and I call permissions. I have shared more of my thoughts in the 3-part post series that begins with this post:  https://pling.jondgoodwin.com/post/race-safe-strategies/

There is more to say on this topic, pioneered by Dr. Colin Gordon et al with M# (Midori) and picked up on by Pony, having to do with the safe movement of complex mutable graphs from one thread to another. The essential safety concept revolves around the notion of external isolation, mechanisms that prevent "external" objects from having shared references within the isolated graph. In future posts, I hope to explain this valuable technique and its usefulness.

The other half of that paper focuses on the concept of regions, orthogonal to permissions. At the time I wrote the paper, I was unfamiliar with Cyclone and how much more vigorously it explored the idea of a language supporting multiple memory management strategies. I believe the approach I am taking improves on what Cyclone accomplishes, but I am indebted to them for opening my eyes towards a path for supporting safe, first-class regions, which will be handy for arenas and pools.

The way I like to think about it is that regions promote memory safety and permissions support data race safety.
October 18
On Saturday, 17 October 2020 at 23:27:56 UTC, Jonathan Goodwin wrote:
> [snip]
> You are right that half that paper focuses on what Pony calls reference capabilities and I call permissions. I have shared more of my thoughts in the 3-part post series that begins with this post:  https://pling.jondgoodwin.com/post/race-safe-strategies/
> [snip]

Thanks for that.

The unique reference looks like it differs from Rust's system by not allowing const references (provided there is no mutable borrowing).