Thread overview
[OT] Region-Based Storage Management: ParaSailing without a (Garbage) Chute
Feb 10, 2013
Paulo Pinto
Feb 10, 2013
bearophile
Feb 10, 2013
Paulo Pinto
Feb 15, 2013
bearophile
Feb 18, 2013
Tucker Taft
Feb 18, 2013
bearophile
Feb 18, 2013
Paulo Pinto
February 10, 2013
Hi,

some might find this interesting.

A presentation about the ParaSail, system programming language based on Ada.

https://air.mozilla.org/region-based-storage-management-parasailing-without-a-garbage-chute/

It makes use of regions and compiler inference to automatically
manage memory, instead of using a GC.

Maybe some ideas for D types with custom allocators.

--
Paulo
February 10, 2013
Paulo Pinto:

> A presentation about the ParaSail, system programming language based on Ada.
>
> https://air.mozilla.org/region-based-storage-management-parasailing-without-a-garbage-chute/

Seems interesting, almost 90 minutes of talk. Do you know if there is a link to download the slides?


> It makes use of regions and compiler inference to automatically
> manage memory, instead of using a GC.

It sounds similar to what Rust does.


> Maybe some ideas for D types with custom allocators.

To manage the regions Rust uses specific features of the type system (and a specific built-in syntax to parametrize types according to their region with a T/region syntax).

Bye,
bearophile
February 10, 2013
Am 10.02.2013 15:16, schrieb bearophile:
> Paulo Pinto:
>
>> A presentation about the ParaSail, system programming language based
>> on Ada.
>>
>> https://air.mozilla.org/region-based-storage-management-parasailing-without-a-garbage-chute/
>>
>
> Seems interesting, almost 90 minutes of talk. Do you know if there is a
> link to download the slides?

Did not found any, besides the official blog.

http://parasail-programming-language.blogspot.de/

>
>
>> It makes use of regions and compiler inference to automatically
>> manage memory, instead of using a GC.
>
> It sounds similar to what Rust does.
>

Yes, the Rust developers are part of the audience.


February 15, 2013
Paulo Pinto:

> https://air.mozilla.org/region-based-storage-management-parasailing-without-a-garbage-chute/

Half of the talk is about Parasail language in general. Despite
the parallelism it looks like a simple enough language to learn
(maybe even simpler than Go).


At 9.08-9.56 he says "you have to specify the names of the
objects you are referencing from the outer scope."
It's like my idea of @outer():
http://d.puremagic.com/issues/show_bug.cgi?id=5007


At 40.27-40.43 he shows a very easy to understand graph of how
Rust manages its memory. When you have many CPU cores I think
that organization scales better than D memory management.

Bye,
bearophile
February 18, 2013
On Sunday, 10 February 2013 at 09:50:30 UTC, Paulo Pinto wrote:
> Hi,
>
> some might find this interesting.
>
> A presentation about the ParaSail, system programming language based on Ada. ...

ParaSail is not really based on Ada, but it does try to incorporate good ideas from a number of languages, including Ada, ML/OCaml, Modula/Oberon, D ;-), etc.

For more information on the design and implementation of ParaSail see:

  http://parasail-programming-language.blogspot.com

-Tuck

P.S. the e-mail address is a fake.  If you want to reach me best is to post a question to the blog or the ParaSail Google Group:

   http://groups.google.com/group/parasail-programming-language

-T
February 18, 2013
Tucker Taft:

> ParaSail is not really based on Ada, but it does try to incorporate good ideas from a number of languages, including Ada, ML/OCaml, Modula/Oberon, D ;-), etc.

Wow Tucker Taft himself :-) You seem quite expert, despite the very friendly attitude shown in this talk.

As seen in a talk slide ParaSail throws away *lot* of stuff, to fulfill its main purpose of allowing lot of parallelism in an imperative language.

While D is more a "kitchen sink" language, that takes lot of stuff from C, C++, Java and more. So D seems much more complex than ParaSail. On the other hand most things present in D are useful/handy.


I don't know how well D will work on CPUs with 50-200 cores. The current simple GC has problems even on a single core, so on 100 cores I think it will become a mess. The Rust memory model seems quite more fit for that:
http://i.imgur.com/16rxWXY.png


The ParaSail idea of the need to specify what variables to use from outer scope is an idea that I like since few years, and I'd like a form of it in D (with an optional @outer() or something similar) because in the years I have seen many problems caused by using by mistake identifiers from outer scopes.

Bye,
bearophile
February 18, 2013
Am 18.02.2013 01:22, schrieb Tucker Taft:
> On Sunday, 10 February 2013 at 09:50:30 UTC, Paulo Pinto wrote:
>> Hi,
>>
>> some might find this interesting.
>>
>> A presentation about the ParaSail, system programming language based
>> on Ada. ...
>
> ParaSail is not really based on Ada, but it does try to incorporate good
> ideas from a number of languages, including Ada, ML/OCaml,
> Modula/Oberon, D ;-), etc.
>

Thanks for clearing that up. I got that impression due to the Ada like syntax and being developed by Ada Core.

Only afterwards I discovered that you were already developing ParaSail before joining Ada Core.

It looks nice though.

--
Paulo