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
- Fabian published the slides from his talk: One language for all AI programming!
- Benny published a blog about his new autodiff library voodoo: Optimizing Matrix Multiplication for ML with Mojo
- rd4com released a new tutorial SIMD:
SIMD
: 🔢✖️2️⃣🟰❪2️⃣,4️⃣,6️⃣,8️⃣❫ - Numeryst published two videos to kick off a Mojo tutorial series: Why Learn Mojo and How to Install Mojo
Awesome Mojo
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!