Concurrency Support

Good day team!

I’d like to start with: I appreciate everyone here! I think Mojo is an incredible language and I have really appreciated some of the open-source choices Modular has made. I am chomping at the bit to produce more in it, but accept my use-cases (tooling and backend-y stuff) are not Mojo’s primary area of focus.

Now! I reviewed the Mojo roadmap and noticed concurrency support was not mentioned.

I wondered if anyone might be able to paint a rough picture as to where this lands in the Mojo priority list, and potentially any vague targets around shipping? If anyone would be interested in decomposing a high-level view of the tasks (or point me to a proposal if one exists already?) which will amount to “concurrency support in Mojo” as well, that would be very much appreciated.

I am happy to contribute where possible, but threads pls!

Thanks again!

EDIT: Adding Owen’s structured concurrency proposal!

1 Like

Hi Max,

This is also very important to us - I want to make sure that we get this right. I will be much easier to design this when we get a few more of the fundamentals in place, including completing the reference model, getting more of the generic system in place, and getting back to finishing async.

I think the combination of features we have in Mojo will allow us to do something quite special, but I don’t want to rush it. If you’re interested, there are several proposals in the community that have been floated for ideas on how to compose things (e.g. with linear types etc), but the Mojo core team hasn’t had head space to properly evaluate any particular approach yet.

In the meantime, we do have unsafe constructs and things like a “parallel for each” construct which cover some of the basic needs.

-Chris

3 Likes