Modverse Weekly - Issue 19

January 25, 2024

Jack Clayton

AI Developer Advocate

Mojo 🔥 0.7.0

The first release of the year: Mojo 🔥 0.7.0 is out now 🚀🎉! It's a big one, check out the full changelog here!

You can also read Shashank's blog, going over some new features: Mojo🔥 SDK v0.7 now available for download!

Make sure to update your Modular CLI for a much better experience when running modular update mojo. Improvements include streaming compressed artifacts for faster downloads, bug fixes, and a progress bar!

Blogs, Tutorials, and Videos

Awesome Mojo

  • Benny has updated his ML Framework voodoo to v0.6.1 with convolution, pooling and an MNIST example

Mojo Language Committee

We started a fortnightly Mojo language committee meeting, to discuss feature requests that have been raised by the Mojo community. This helps us come to a consensus, and communicate reasoning for language decisions back to the community. You can chat about the decisions with the community and Modular team on Discord and GitHub.

#1245: Do not require specification of “always-inferrable” parameters

Accepted. The committee discussed the idea of extending parameter inference rules to make it more convenient to call functions like fn foo[x: Int, y: Stuff[x]](): ..., where the parameter x can always be inferred from the value of y. We are currently working on a design, and this effort also coincides with a few other improvements on how we model parameters.

#1263: Carry name metadata in function pointers

Postponed. The team discussed this and decided that, in the future, we might want the ability to inspect metadata on function pointers. However, we currently have too many unknowns to decide exactly what the feature and its implementation would look like, e.g. how it would compose with reflection. There are other related features planned or currently developed in Mojo that, once matured, would influence this decision, so we will get back to this in the future as the language is further built out.

#1436: Make (almost) everything Stringable

Postponed. We discussed this with the team, and agreed that we would like something like this in Mojo. There are a few dependencies we need to work through before we can do this properly (e.g. improvements to traits, design of existentials, reflection), but we agreed that a feature like this would be useful. In particular, we are currently revising trait conformance rules to enable this among other features.

#1468: Replace the alias keyword with something else

Postponed. The committee deliberated on this, but we were not convinced that any of the current suggestions (compvar, aot, etc.) would provide a meaningful improvement over alias. In particular, compvar doesn't seem much more meaningful on its own (comp could stand for many things, "compile time" is not immediately implied). The semantics of alias are that of a "named parameter expression", and we cannot currently see a better name for this. We will revisit this decision as the language matures. In the meanwhile, suggestions on how to explain alias better in our docs are welcome!