<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Apache 2.0 on RockB</title><link>https://baeseokjae.github.io/tags/apache-2.0/</link><description>Recent content in Apache 2.0 on RockB</description><image><title>RockB</title><url>https://baeseokjae.github.io/images/og-default.png</url><link>https://baeseokjae.github.io/images/og-default.png</link></image><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 01 Oct 2026 03:14:19 +0000</lastBuildDate><atom:link href="https://baeseokjae.github.io/tags/apache-2.0/index.xml" rel="self" type="application/rss+xml"/><item><title>Mojo Is Now Open Source: What Developers Should Know</title><link>https://baeseokjae.github.io/posts/mojo-open-source-developer-guide/</link><pubDate>Thu, 01 Oct 2026 03:14:19 +0000</pubDate><guid>https://baeseokjae.github.io/posts/mojo-open-source-developer-guide/</guid><description>Mojo&amp;#39;s compiler and toolchain became open source under Apache 2.0 with LLVM Exceptions on August 18, 2026. Here is what that changes for developers.</description><content:encoded><![CDATA[<p>Yes. Modular released the complete Mojo compiler and toolchain under Apache License 2.0 with LLVM Exceptions on August 18, 2026 — one week after Mojo 1.0 shipped. The language is genuinely open source now. The platform is not: MAX, Modular&rsquo;s inference engine, remains source-available under the Modular Community License.</p>
<h2 id="what-actually-changed-on-august-18-2026">What Actually Changed on August 18, 2026?</h2>
<p>Modular open-sourced the Mojo compiler and its full toolchain at ModCon 2026, publishing the source under Apache 2.0 with LLVM Exceptions (<a href="https://www.modular.com/blog/mojo-open-source">modular.com</a>). The code landed as a single pull request, <a href="https://github.com/modular/modular/pull/6904">modular/modular#6904</a>, titled simply &ldquo;Open source Mojo,&rdquo; merged at 2026-08-18T13:29:35Z. The PR body is one character sequence: <code>:)</code>.</p>
<p>The scale is worth stating plainly, because it explains why this took three years:</p>
<table>
  <thead>
      <tr>
          <th>PR #6904 metric</th>
          <th>Value</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Commits</td>
          <td>10,000</td>
      </tr>
      <tr>
          <td>Lines added</td>
          <td>561,408</td>
      </tr>
      <tr>
          <td>Files changed</td>
          <td>2,853</td>
      </tr>
      <tr>
          <td>Lines deleted</td>
          <td>0</td>
      </tr>
  </tbody>
</table>
<p>Zero deletions is the tell. This was not a rewrite or a sanitization pass — it was the accumulated private history of a compiler being published as it stood. The internal name for the Mojo compiler is <strong>KGEN</strong> (kernel generator), and the released tree includes the parser, the optimization passes, the MLIR dialects, the debugger, and the <code>mojo</code>, <code>kgen</code>, <code>kgen-opt</code> and <code>kgen-translate</code> command-line tools.</p>
<p>The sequencing matters more than most coverage admits. Modular&rsquo;s acquisition by Qualcomm closed on 2026-07-29 (<a href="https://www.modular.com/blog/qualcomm-completes-acquisition-of-modular">modular.com</a>), Mojo 1.0 shipped on 2026-08-11, and the compiler was open-sourced on 2026-08-18. Three events, three weeks, one narrative: the language was stabilized, then legally and technically handed to the public by its new owner.</p>
<p>There is a freshness trap buried here. Most articles about Mojo — and the Wikipedia entry — still describe the compiler as proprietary. Anything written before August 18, 2026 is stale, and much of it is confidently wrong in exactly the way that misleads a reader deciding whether to adopt.</p>
<h2 id="which-parts-of-mojo-were-already-open-source-before-the-compiler">Which Parts of Mojo Were Already Open Source Before the Compiler?</h2>
<p>The compiler was the last closed piece, not the first. Mojo opened in three waves over three years, and developers who were following only the headline missed two of them.</p>
<table>
  <thead>
      <tr>
          <th>Wave</th>
          <th>Component</th>
          <th>Opened</th>
          <th>License</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1</td>
          <td>Standard library (<code>mojo/stdlib</code>)</td>
          <td>2024</td>
          <td>Apache 2.0 with LLVM Exceptions</td>
      </tr>
      <tr>
          <td>2</td>
          <td>MAX kernels</td>
          <td>2025</td>
          <td>Apache 2.0 with LLVM Exceptions</td>
      </tr>
      <tr>
          <td>3</td>
          <td>Compiler and toolchain (KGEN)</td>
          <td>2026-08-18</td>
          <td>Apache 2.0 with LLVM Exceptions</td>
      </tr>
  </tbody>
</table>
<p>The wave-one and wave-two numbers are the strongest evidence that Modular&rsquo;s open-source model was functional long before the compiler landed. Since the standard library opened in 2024, roughly 200 outside contributors have landed more than 1,100 pull requests touching over 200,000 lines of code (<a href="https://www.modular.com/blog/modular-26-5-mojo-1-0-is-here">modular.com</a>). That is a real contributor base, not a cosmetic repository.</p>
<p>The practical consequence for anyone who avoided Mojo because &ldquo;the language is closed&rdquo;: you have been able to read the standard library, audit the kernels, and ship your own Mojo code for two years without a licensing problem. What changed on August 18 is narrower than the headlines suggest — but it is the piece that mattered most to compiler engineers and to anyone worried about vendor lock-in.</p>
<h2 id="what-does-the-mojo-apache-20-license-actually-let-you-do">What Does the Mojo Apache 2.0 License Actually Let You Do?</h2>
<p>Apache 2.0 with LLVM Exceptions is the same combination LLVM itself, Clang, and much of the modern systems-toolchain world use. For a working developer, the grants break down like this.</p>
<p><strong>You can fork the compiler.</strong> Apache 2.0 grants a broad copyright and patent license over the code. You may modify KGEN, retarget it to hardware Modular does not support, and distribute your version. This is the &ldquo;right to exit&rdquo; that matters when a vendor relationship sours.</p>
<p><strong>You can ship binaries you compile with Mojo, with no attribution obligation.</strong> The LLVM Exceptions are the reason. Under plain Apache 2.0, Section 4 imposes redistribution conditions — including notices — on derivative works; a compiled binary can be argued to be a derivative work of the compiler that produced it. The LLVM Exceptions waive those conditions for embedded object code, so Mojo-compiled binaries carry no toolchain attribution requirement (<a href="https://aireiter.com/blog/mojo-language-open-source-license-explained">aireiter.com</a>).</p>
<p><strong>You can combine Mojo toolchain code with GPLv2 software.</strong> The LLVM Exceptions also carve out a GPLv2 combination path, which matters if you are integrating the compiler into a GPL-licensed build or linking environment — something plain Apache 2.0 makes awkward and the LLVM Exceptions make straightforward.</p>
<h3 id="what-does-the-license-not-grant">What does the license not grant?</h3>
<p>Three things worth knowing before you plan around them.</p>
<p>First, <strong>no trademark rights.</strong> Apache 2.0 explicitly excludes trademarks. You can fork the compiler; you cannot call your fork &ldquo;Mojo&rdquo; or imply Modular certification.</p>
<p>Second, <strong>no governance rights.</strong> More on this below — it is the single most misread dimension of this release.</p>
<p>Third, <strong>no rights over MAX.</strong> The repository <code>LICENSE</code> file is Apache 2.0 with LLVM Exceptions; MAX usage and distribution are governed separately by the Modular Community License (<a href="https://github.com/modular/modular/blob/main/README.md">github.com/modular/modular</a>). If your mental model is &ldquo;Modular open-sourced everything,&rdquo; that model is wrong.</p>
<h2 id="is-max-open-source-too-understanding-the-license-split">Is MAX Open Source Too? Understanding the License Split</h2>
<p>No. MAX — the inference engine, graph compiler, runtime, and serving layer that Mojo was built to drive — is still source-available under the Modular Community License, not Apache 2.0.</p>
<p>This is the distinction that decides real engineering choices, so it is worth being blunt about the difference:</p>
<table>
  <thead>
      <tr>
          <th></th>
          <th>Mojo (language, compiler, toolchain)</th>
          <th>MAX (inference engine, serving)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>License</td>
          <td>Apache 2.0 with LLVM Exceptions</td>
          <td>Modular Community License</td>
      </tr>
      <tr>
          <td>OSI-approved open source</td>
          <td>Yes</td>
          <td>No</td>
      </tr>
      <tr>
          <td>Right to fork</td>
          <td>Yes</td>
          <td>Not under open-source terms</td>
      </tr>
      <tr>
          <td>Commercial redistribution</td>
          <td>Permitted</td>
          <td>Restricted by license terms</td>
      </tr>
      <tr>
          <td>Community contribution</td>
          <td>Bug fixes accepted since 1.1</td>
          <td>Governed separately</td>
      </tr>
  </tbody>
</table>
<p>MAX is the commercial asset. A graph compiler, a runtime, and a serving stack that turns models into tokens per second is what enterprises pay for; a programming language is what they build on top of it. Open-sourcing the language while keeping the serving layer commercial is a deliberate, coherent split — and it is the same playbook that turned Linux from a kernel into a platform while leaving the layers above it to be monetized.</p>
<p>There is a sharp practical consequence for kernel authors: <strong>customizing MAX kernels or models still requires a prebuilt Mojo compiler binary.</strong> Building the compiler from source does not remove every dependency in the pipeline (<a href="https://samcodeman.com/writing/mojo-compiler-apache-2-max-source-available">samcodeman.com</a>). If your goal was a fully-from-source Mojo-and-MAX stack, that goal is not yet achievable. If your goal was to audit, patch, or fork the compiler, it is.</p>
<h2 id="is-open-source-the-same-as-open-governance">Is Open Source the Same as Open Governance?</h2>
<p>No, and this release makes the gap unusually visible.</p>
<p>Apache 2.0 gives you a right to fork. It does not give you a vote. Modular continues to run Mojo&rsquo;s design through a small internal team, which is a stated position rather than an oversight — Chris Lattner has argued that the &ldquo;soul&rdquo; of a language comes from a small, tight-knit design group, not a committee (<a href="https://ettayeb.fr/en/devops/mojo-open-source-qualcomm-modular-2026">ettayeb.fr</a>). It is the Swift playbook: open the implementation early, keep the direction close.</p>
<p>This is a legitimate model, not an evasion. &ldquo;Accepting contributions is not required to be open source&rdquo; is correct as a matter of licensing — SQLite is the canonical counter-example, widely deployed and famously reluctant to take outside patches. But you should price in what you are and are not buying. What you get is auditability, forkability, and the ability to fix your own problems forever. What you do not get is influence over the roadmap.</p>
<h3 id="what-contribution-rules-changed-in-mojo-11">What contribution rules changed in Mojo 1.1?</h3>
<p>The rules moved once already, and this is the detail most coverage has not caught up with.</p>
<p>At launch on 2026-08-18, the compiler source was public but compiler contributions were not being accepted. That changed with Mojo 1.1 / MAX 26.6 on 2026-09-17, which began accepting external compiler contributions — <strong>bug fixes only</strong> — and migrated Modular&rsquo;s internal issue tracker to public GitHub (<a href="https://www.modular.com/blog/modular-26-6-open-compiler-contributions-audio-generation-and-expanded-model-support">modular.com</a>, confirmed by <a href="https://www.phoronix.com/news/Mojo-1.1-Released">Phoronix</a>).</p>
<p>&ldquo;Bug fixes only&rdquo; is defined precisely in the contribution areas document: diagnostics, crashes, and mis-compiles with a user-observable effect are in scope; IR, pipeline, and language-semantics changes are not (<a href="https://mojolang.org/community/contributing/contribution-areas.md">mojolang.org</a>).</p>
<p>There is also a documentation trap you should know about before writing your first PR. The docs page at <code>mojolang.org/community/contributing/compiler/</code> still says Modular is not accepting compiler contributions — it contradicts <code>contribution-areas.md</code> and reflects the August policy, not the September one. Check <code>contribution-areas</code> for the live rules, and never base a patch on the stale page.</p>
<h2 id="how-do-you-build-the-mojo-compiler-from-source">How Do You Build the Mojo Compiler From Source?</h2>
<p>If you want the compiler itself rather than a nightly binary, the documented path is Bazel:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/modular/modular.git
</span></span><span style="display:flex;"><span>cd modular
</span></span><span style="display:flex;"><span>./bazelw run --config<span style="color:#f92672">=</span>build-mojo KGEN:mojo -- run hello.mojo
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># run the standard library test suite</span>
</span></span><span style="display:flex;"><span>./bazelw test --config<span style="color:#f92672">=</span>build-mojo mojo/stdlib/test/...
</span></span></code></pre></div><p>Verify these commands against <a href="https://docs.modular.com/mojo/manual/get-started/">docs.modular.com</a> at the time you run them. The build configuration flags and the nightly version pin both move frequently, and a guide that hardcodes a nightly tag goes stale within weeks.</p>
<h3 id="should-you-build-from-source-or-use-a-prebuilt-binary">Should you build from source or use a prebuilt binary?</h3>
<p>For most developers, prebuilt. Building KGEN from source is a Bazel- and MLIR-scale undertaking: this is a 2,853-file C++ compiler with a full optimization pipeline, and a cold build is measured in tens of minutes on a fast machine and considerably longer on a laptop.</p>
<p>Build from source when you have an actual reason: you are patching a compiler bug you hit, you are retargeting to hardware Modular does not support, you are auditing the code generation path for a regulated deployment, or you are preparing a bug-fix PR under the 1.1 contribution rules. For everyone else, the nightly binary install is the correct default — the compiler being open does not mean the compiler needs to be rebuilt on your machine.</p>
<h2 id="how-do-you-try-mojo-in-15-minutes">How Do You Try Mojo in 15 Minutes?</h2>
<p>The fastest useful path, in order:</p>
<ol>
<li><strong>Install the toolchain</strong> from <a href="https://docs.modular.com/mojo/manual/get-started/">docs.modular.com</a> and run a hello-world. Note that Mojo now ships as part of the MAX/Mojo versioned release train (Mojo 1.1 pairs with MAX 26.6), so pick the release channel rather than a floating latest.</li>
<li><strong>Wire up your editor.</strong> Mojo ships an LSP implementation, and the VS Code extension is the reference client. The LSP is the difference between writing Mojo and guessing at Mojo — type checking and diagnostics arrive in the editor rather than at compile time.</li>
<li><strong>Install the AI agent skills.</strong> Modular publishes Mojo skills for AI coding assistants with <code>npx skills add modular/skills</code>. The documentation site also serves <code>.md</code> variants and an <code>llms.txt</code>, which means an agent can read the current API surface instead of hallucinating it from training data (<a href="https://docs.modular.com/mojo/manual/get-started/">docs.modular.com</a>).</li>
<li><strong>Try a community library</strong> rather than starting from scratch. Lightbug (HTTP), EmberJSON, Kelvin, and NuMojo all exist and all run on the 1.x toolchain.</li>
</ol>
<p>The 15-minute version is steps 1 and 3. The first two get you a working program and an assistant that knows the language; steps 2 and 4 are what you do in the first week.</p>
<h2 id="is-mojo-really-35000x-faster-than-python">Is Mojo Really 35,000x Faster Than Python?</h2>
<p>The 35,000x figure is real and it is also the most misleading number in Mojo&rsquo;s marketing. Here is the honest breakdown:</p>
<table>
  <thead>
      <tr>
          <th>Workload</th>
          <th>Reported speedup</th>
          <th>What is actually being compared</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Mandelbrot, hand-vectorized + parallel Mojo</td>
          <td>~35,000x</td>
          <td>vs single-threaded vanilla CPython</td>
      </tr>
      <tr>
          <td>Mandelbrot, naive same-structure port</td>
          <td>~150x</td>
          <td>vs CPython, same algorithm, no vectorization</td>
      </tr>
      <tr>
          <td>JSON pipeline workload</td>
          <td>~4.1x</td>
          <td>vs CPython on an I/O-shaped task</td>
      </tr>
      <tr>
          <td>Selected matrix operations</td>
          <td>~1.9x</td>
          <td>vs NumPy (already C and SIMD)</td>
      </tr>
  </tbody>
</table>
<p>Every number in that table is defensible; the 35,000x headline is the one that compares the best possible Mojo implementation against the worst plausible Python baseline (<a href="https://betterstack.com/community/guides/ai/mojo">betterstack.com</a>). The realistic range for a same-shape port is roughly 4x to 150x, and the honest framing is that Mojo&rsquo;s gain comes from three separate sources you can adopt independently: static types and AOT compilation, SIMD and explicit parallelism, and the removal of the interpreter loop.</p>
<p>There is a zero-speedup trap worth naming explicitly. If your hot path calls into a CPython library, Mojo does not make that library faster. It makes the code around it faster. The migration that pays off is rewriting the loop, not wrapping it.</p>
<p>Against NumPy — the comparison that actually decides whether a data engineer switches — Mojo&rsquo;s edge on some matrix operations is around 1.9x. That is a genuine win, and a much smaller one than the headlines imply. Judge it on your workload, not on Mandelbrot.</p>
<h2 id="is-mojo-still-a-python-superset">Is Mojo Still a Python Superset?</h2>
<p>No, and the change was deliberate. Mojo was originally pitched as a superset of Python; around August 2025 Modular stopped promising that, and the current framing is a Python-inspired, GPU-first systems language (<a href="https://simonwillison.net/2026/Aug/18/mojo-is-now-open-source/">simonwillison.net</a>). Simon Willison&rsquo;s reading is the accurate one: Python-inspired syntax tuned for GPU programming, not Python compatibility.</p>
<p>What survives is interoperability, and it is substantial. Mojo calls Python and C directly, with <code>ffi</code>, <code>@export</code>, and <code>abi(&quot;C&quot;)</code> handling the boundaries in both directions. That changes your migration strategy in a way you should not skip:</p>
<p><strong>Do not port whole projects.</strong> Port hot paths. Keep your Python orchestration, your test suite, your data loading, and your ecosystem glue where they are, and rewrite the compute kernel — the loop that runs a million times — in Mojo. The interop boundary has a cost, so you want to cross it a few times per unit of work, not once per iteration.</p>
<p>That incremental path is the reason the superset pivot is less damaging than it sounds. If Mojo had been a full superset, the migration story would be &ldquo;move everything.&rdquo; Because it is a Python-inspired sibling with a calling convention, the migration story is &ldquo;move the 5% that burns 95% of the cycles&rdquo; — which is what most teams actually want.</p>
<h2 id="why-did-qualcomm-buy-modular-and-open-source-mojo">Why Did Qualcomm Buy Modular and Open-Source Mojo?</h2>
<p>Qualcomm announced an all-stock acquisition of Modular on 2026-06-24 at roughly $3.92 billion, and completed it on 2026-07-29 (<a href="https://dev.to/jamilxt/mojo-vs-python-what-qualcomms-open-source-release-actually-changes-for-developers-51eg">dev.to</a>).</p>
<p>Read the open-sourcing through that lens and the strategy is legible. A chip vendor sells silicon; software that makes its silicon easy to program is a complement to the chip, not a profit center of its own. Commoditizing the complement — making the language free, auditable, and forkable — lowers the adoption barrier for every developer choosing where to deploy inference. Qualcomm&rsquo;s interest is in the layer below the language and the layer above it.</p>
<p>ModCon 2026 made the hardware ambition explicit alongside the license change: Modular Cloud reached general availability, serving billions of tokens per minute with MiniMax as a flagship customer, and platform support expanded to AWS Trainium, Google TPUs, Qualcomm Cloud AI 100 Ultra, and Dragonfly (<a href="https://www.modular.com/blog/modcon-announcements">modular.com</a>). The pitch is a CUDA alternative: one language, many accelerators, no lock-in to a single vendor&rsquo;s toolchain. Open-sourcing the compiler is what makes that pitch credible to an engineering team that has been burned before.</p>
<h2 id="who-should-adopt-mojo-now-and-who-should-wait">Who Should Adopt Mojo Now, and Who Should Wait?</h2>
<p>The honest answer depends on what you are optimizing for.</p>
<table>
  <thead>
      <tr>
          <th>Your situation</th>
          <th>Recommendation</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Compute-bound hot path in an existing Python service</td>
          <td>Adopt now — rewrite the kernel, keep the rest</td>
      </tr>
      <tr>
          <td>Compiler or toolchain engineer</td>
          <td>Adopt now — this is the moment the source became actionable</td>
      </tr>
      <tr>
          <td>Team on heterogeneous accelerators (NVIDIA, AMD, Trainium, TPU)</td>
          <td>Evaluate now — the multi-target story is the differentiator</td>
      </tr>
      <tr>
          <td>Regulated environment needing auditability of the toolchain</td>
          <td>Adopt now — Apache 2.0 with LLVM Exceptions clears the license review</td>
      </tr>
      <tr>
          <td>Greenfield general-purpose backend service</td>
          <td>Wait — Mojo is not a better Go or Rust for CRUD</td>
      </tr>
      <tr>
          <td>Team needing a deep third-party library ecosystem</td>
          <td>Wait — the ecosystem is real but young</td>
      </tr>
      <tr>
          <td>Team that needs a Python superset with drop-in compatibility</td>
          <td>Wait — that promise was withdrawn</td>
      </tr>
  </tbody>
</table>
<p>The asymmetry is this: Mojo&rsquo;s value is concentrated in compute-heavy, accelerator-shaped workloads, and it is close to zero in the ordinary service code that makes up most of a codebase. Adopting it as a general-purpose language today means absorbing a young ecosystem&rsquo;s friction for no benefit. Adopting it for a numerically hot inner loop means measuring a 4x-to-150x win on hardware you are already paying for.</p>
<p>For contributors specifically, the calculus flips: compiler bug fixes are now in scope, the issue tracker is public, and the 1.1 contribution policy is the first genuinely open door. Contributors who show up now are shaping a language that a $3.92 billion acquisition just placed at the center of a heterogeneous-silicon strategy.</p>
<h2 id="what-should-you-watch-next">What Should You Watch Next?</h2>
<p>Three signals will tell you whether the open-source release becomes an open-source project.</p>
<p><strong>Whether outside compiler PRs actually get merged.</strong> The policy says bug fixes are accepted; the policy has been in force since 2026-09-17. The merge rate on external compiler PRs over the next two quarters is the single best predictor of whether this is real community development or a licensing gesture. The repository shows 1,163 open issues as of 2026-10-01 (<a href="https://api.github.com/repos/modular/modular">api.github.com</a>) — the throughput on those issues is the number to track.</p>
<p><strong>The ecosystem alliance program.</strong> Modular has signaled an alliance program toward the end of 2026. If it materializes with real partner hardware vendors and real community governance, the open-governance critique weakens considerably.</p>
<p><strong>Native Windows support.</strong> Announced at ModCon and not yet shipped. Windows support is less about developer convenience than about whether Mojo can leave the Linux-and-CUDA-shaped niche where most GPU work currently lives.</p>
<p>Track the repository itself, not the coverage: <code>modular/modular</code> at 29,909 stars, 3,190 forks, with Mojo as the primary language, is the ground truth — and for the contribution policy, <code>contribution-areas.md</code> is the live document, not the compiler contributing page.</p>
<h2 id="faq">FAQ</h2>
<h3 id="is-mojo-fully-open-source-now">Is Mojo fully open source now?</h3>
<p>The Mojo compiler and toolchain are fully open source under Apache 2.0 with LLVM Exceptions as of August 18, 2026. The broader Modular platform is not: MAX, the inference engine and serving layer, remains source-available under the Modular Community License. &ldquo;Mojo is open source&rdquo; is a true claim about the language and a false one about the platform.</p>
<h3 id="can-i-fork-the-mojo-compiler-and-ship-my-own-version">Can I fork the Mojo compiler and ship my own version?</h3>
<p>Yes. Apache 2.0 grants you the right to modify and redistribute the compiler, including retargeting it to hardware Modular does not support. You cannot use the Mojo trademark for your fork, and you cannot claim Modular certification. The LLVM Exceptions also mean binaries you compile with Mojo carry no toolchain attribution obligation.</p>
<h3 id="can-i-contribute-to-the-mojo-compiler">Can I contribute to the Mojo compiler?</h3>
<p>Yes, with limits. Since Mojo 1.1 / MAX 26.6 on September 17, 2026, Modular accepts external compiler contributions — bug fixes only. Diagnostics, crashes, and mis-compiles with user-observable effects are in scope; changes to IR, compilation pipelines, or language semantics are not. Check <code>contribution-areas.md</code> rather than the compiler contributing page, which still carries the older, more restrictive policy.</p>
<h3 id="do-i-need-to-build-the-mojo-compiler-from-source-to-use-mojo">Do I need to build the Mojo compiler from source to use Mojo?</h3>
<p>No. Prebuilt nightly binaries remain the recommended path for anyone who is not modifying the compiler. Build from source when you are patching a compiler bug, retargeting to unsupported hardware, auditing code generation, or preparing a contribution — the build is a Bazel-based C++ compile of a 2,853-file tree and is not something to do casually.</p>
<h3 id="is-mojo-worth-learning-in-2026">Is Mojo worth learning in 2026?</h3>
<p>It depends entirely on your workload. Mojo is worth learning now if you have compute-bound code you would otherwise write in C++, CUDA, or Rust, or if you are working across multiple accelerator vendors and want one language for all of them. It is not worth learning as a general-purpose backend language: the Python-superset promise was withdrawn, and the third-party ecosystem is young. Realistic speedups on a same-shape port run from roughly 4x to 150x — the 35,000x figure compares vectorized parallel Mojo against single-threaded CPython and is not a migration estimate.</p>
]]></content:encoded></item></channel></rss>