Modular heeft aangekondigd dat de Mojo-taal, inclusief de compiler en tooling, nu open source is onder de Apache 2.0-licentie. Mojo is ontworpen als een algemene programmeertaal die specifiek gericht is op het ontsluiten van de kracht van GPU's en AI-accelerators.
De belangrijkste punten uit het artikel zijn:
- Open Source status: Na het bereiken van versie 1.0 is de volledige compiler en toolchain beschikbaar in de modular GitHub-repository.
- Build-proces: Gebruikers kunnen de compiler bouwen met Bazel via specifieke commando's, waarbij zowel volledige compilatie als het gebruik van prebuilt binaire distributies mogelijk is.
- Bijdragen: Terwijl bijdragen aan de standaardbibliotheek al langer worden geaccepteerd, zijn bijdragen aan de compiler en tooling pas verwacht aan het einde van het jaar.
- Visie: Modular heeft bewust gekozen voor een gefaseerde openstelling om eerst de kern van de taal te stabiliseren voordat de volledige community betrokken werd bij de compiler.
Mojo🔥 is nu open source!
We zijn blij aan te kondigen dat de Mojo🔥-taal nu volledig open source is onder de Apache 2.0-licentie (met LLVM-uitzonderingen)! De broncode voor de Mojo-compiler, de tooling en alle overige benodigdheden om de taal te bouwen, zijn nu beschikbaar in onze modular GitHub-repository.
De Mojo-taal is een gedurfde weddenschap: een nieuwe, algemene programmeertaal die verder gaat dan oudere talen. Mojo integreert de nieuwste onderzoeken op het gebied van compilers en programmeertalen om GPU's, AI-accelerators en andere geavanceerde rekenkracht te ontsluiten. De afgelopen vier jaar is Mojo ontwikkeld met een open community, maar met een gesloten compiler. Vorige week bereikte Mojo versie 1.0 (met bronstabiliteit), en vandaag zijn we enthousiast om de volledige compiler en toolchain open source te maken.
Apache 2: Een permissieve licentie
De Apache 2.0-licentie is de gouden standaard voor programmeertalen en compilers, omdat het grote flexibiliteit biedt voor gebruik in allerlei toepassingen. De LLVM-uitbreidingen van de licentie vergroten deze vrijheden verder voor het bouwen en distribueren van binaries die met Mojo zijn gecompileerd. We willen dat je Mojo kunt adopteren en gebruiken in zoveel mogelijk toepassingen als je je kunt voorstellen.
Onze open-source-aanpak is bewust geweest: we hebben gemerkt dat kleine en hechte ontwerpteams (geen commissies) het beste zijn om de "ziel" van een taal te vinden, maar dat feedback van een bredere community essentieel is om een echokamer te vermijden.
Daarom hebben we de volgende stappen ondernomen:
- Eerst hebben we de Mojo-standaardbibliotheek open-sourced.
- Daarna hebben we honderdduizenden regels kernelcode geschreven in Mojo, samen met tools en ondersteuning, uitgebracht.
- We hebben samen gebouwd op basis van feedback uit de community en publieke ontwerpvoorstellen.
- Nu maken we de compiler open source.
We zullen onze processen verder openstellen naarmate Mojo verder rijpt.
De compiler verkrijgen en bouwen
Alle code voor de Mojo-taal is nu beschikbaar in de hoofd-repository van modular op GitHub. Clone eerst de repository lokaal:
git clone https://github.com/modular/modular.git
cd modular
Om de Mojo-compiler vervolgens vanuit de broncode te bouwen en deze uit te voeren tegen een Mojo-bestand, kun je één build-commando gebruiken:
./bazelw run --config=build-mojo KGEN:mojo -- run hello.mojo
Bij Modular gebruiken we Bazel om de complexe build-processen en caching voor Mojo en MAX te beheren. Dit ene commando downloadt of bouwt alles wat nodig is om de Mojo-compiler en de Mojo-standaardbibliotheek te bouwen. De vlag --config=build-mojo instrueert het build-systeem om alles vanaf nul te compileren, gebruikmakend van de broncode op je lokale systeem.
Dit geldt ook voor het werken met de Mojo-standaardbibliotheek; je kunt de compiler- of bibliotheekcode wijzigen en de volledige suite van tests uitvoeren via:
./bazelw test --config=build-mojo mojo/stdlib/test/...
Als je niet direct aan de compiler zelf werkt, kun je de vlag --config=prebuilt-mojo gebruiken. Het build-systeem downloadt dan de nieuwste nachtelijke binaire distributie van de compiler, wat compilatietijd bespaart. Let op: een vooraf gebouwde Mojo-compiler is vandaag de dag nog steeds noodzakelijk als je MAX-kernels of -modellen aanpast.
Bijdragen
De Mojo-standaardbibliotheek accepteert bijdragen sinds 2024, en we zijn dankbaar voor iedereen die heeft geholpen de taal vooruit te helpen. Een belangrijke les (vooral in het huidige tijdperk van AI-codering) is dat we bewust moeten omgaan met de manier waarop we bijdragen behandelen.
Om die reden zijn we op dit moment nog niet klaar om bijdragen aan de compiler en tooling te accepteren. We streven ernaar om tegen het einde van dit jaar bijdragen aan de compiler en tooling te accepteren, en we zullen meer details delen zodra dat mogelijk is.
Om vragen te stellen over de broncode van de Mojo-compiler terwijl je deze doorleest, of om te delen waar je aan werkt, nodigen we je uit om ons forum te bezoeken. Clone de broncode en laat ons weten wat je bouwt met de Mojo-taal. We zijn enthousiast om Mojo open te stellen voor de wereld en te zien hoe het groeit!
Mojo🔥 is nu open source!
We zijn blij aan te kondigen dat de Mojo🔥-taal nu volledig open source is onder de Apache 2.0-licentie (met LLVM-uitzonderingen)! De broncode voor de Mojo-compiler, de tooling en alle overige benodigdheden om de taal te bouwen, zijn nu beschikbaar in onze modular GitHub-repository.
De Mojo-taal is een gedurfde weddenschap: een nieuwe, algemene programmeertaal die verder gaat dan oudere talen. Mojo integreert de nieuwste onderzoeken op het gebied van compilers en programmeertalen om GPU's, AI-accelerators en andere geavanceerde rekenkracht te ontsluiten. De afgelopen vier jaar is Mojo ontwikkeld met een open community, maar met een gesloten compiler. Vorige week bereikte Mojo versie 1.0 (met bronstabiliteit), en vandaag zijn we enthousiast om de volledige compiler en toolchain open source te maken.
Apache 2: Een permissieve licentie
De Apache 2.0-licentie is de gouden standaard voor programmeertalen en compilers, omdat het grote flexibiliteit biedt voor gebruik in allerlei toepassingen. De LLVM-uitbreidingen van de licentie vergroten deze vrijheden verder voor het bouwen en distribueren van binaries die met Mojo zijn gecompileerd. We willen dat je Mojo kunt adopteren en gebruiken in zoveel mogelijk toepassingen als je je kunt voorstellen.
Onze open-source-aanpak is bewust geweest: we hebben gemerkt dat kleine en hechte ontwerpteams (geen commissies) het beste zijn om de "ziel" van een taal te vinden, maar dat feedback van een bredere community essentieel is om een echokamer te vermijden.
Daarom hebben we de volgende stappen ondernomen:
- Eerst hebben we de Mojo-standaardbibliotheek open-sourced.
- Daarna hebben we honderdduizenden regels kernelcode geschreven in Mojo, samen met tools en ondersteuning, uitgebracht.
- We hebben samen gebouwd op basis van feedback uit de community en publieke ontwerpvoorstellen.
- Nu maken we de compiler open source.
We zullen onze processen verder openstellen naarmate Mojo verder rijpt.
De compiler verkrijgen en bouwen
Alle code voor de Mojo-taal is nu beschikbaar in de hoofd-repository van modular op GitHub. Clone eerst de repository lokaal:
git clone https://github.com/modular/modular.git
cd modular
Om de Mojo-compiler vervolgens vanuit de broncode te bouwen en deze uit te voeren tegen een Mojo-bestand, kun je één build-commando gebruiken:
./bazelw run --config=build-mojo KGEN:mojo -- run hello.mojo
Bij Modular gebruiken we Bazel om de complexe build-processen en caching voor Mojo en MAX te beheren. Dit ene commando downloadt of bouwt alles wat nodig is om de Mojo-compiler en de Mojo-standaardbibliotheek te bouwen. De vlag --config=build-mojo instrueert het build-systeem om alles vanaf nul te compileren, gebruikmakend van de broncode op je lokale systeem.
Dit geldt ook voor het werken met de Mojo-standaardbibliotheek; je kunt de compiler- of bibliotheekcode wijzigen en de volledige suite van tests uitvoeren via:
./bazelw test --config=build-mojo mojo/stdlib/test/...
Als je niet direct aan de compiler zelf werkt, kun je de vlag --config=prebuilt-mojo gebruiken. Het build-systeem downloadt dan de nieuwste nachtelijke binaire distributie van de compiler, wat compilatietijd bespaart. Let op: een vooraf gebouwde Mojo-compiler is vandaag de dag nog steeds noodzakelijk als je MAX-kernels of -modellen aanpast.
Bijdragen
De Mojo-standaardbibliotheek accepteert bijdragen sinds 2024, en we zijn dankbaar voor iedereen die heeft geholpen de taal vooruit te helpen. Een belangrijke les (vooral in het huidige tijdperk van AI-codering) is dat we bewust moeten omgaan met de manier waarop we bijdragen behandelen.
Om die reden zijn we op dit moment nog niet klaar om bijdragen aan de compiler en tooling te accepteren. We streven ernaar om tegen het einde van dit jaar bijdragen aan de compiler en tooling te accepteren, en we zullen meer details delen zodra dat mogelijk is.
Om vragen te stellen over de broncode van de Mojo-compiler terwijl je deze doorleest, of om te delen waar je aan werkt, nodigen we je uit om ons forum te bezoeken. Clone de broncode en laat ons weten wat je bouwt met de Mojo-taal. We zijn enthousiast om Mojo open te stellen voor de wereld en te zien hoe het groeit!