# В Mojo 1.2 добавили сопоставление с образцом и ускорили компиляцию

> Источник: 404 Media. Канонический URL: https://404-media.ru/tehnologii/v-mojo-1-2-dobavili-sopostavlenie-s-obraztsom-i-uskorili-kompilyatsiyu

Вышли Mojo 1.2 и MAX Framework 26.7. В новой версии языка появились match/case, математические функции для CPU и GPU и ускорение сборки.

- Рубрика: Технологии (https://404-media.ru/tehnologii)
- Опубликовано: 2026-10-27T07:30:32+03:00
- HTML: https://404-media.ru/tehnologii/v-mojo-1-2-dobavili-sopostavlenie-s-obraztsom-i-uskorili-kompilyatsiyu
- Markdown: https://404-media.ru/tehnologii/v-mojo-1-2-dobavili-sopostavlenie-s-obraztsom-i-uskorili-kompilyatsiyu.md
- llms.txt: https://404-media.ru/llms.txt

![В Mojo 1.2 добавили сопоставление с образцом и ускорили компиляцию](https://storage.yandexcloud.net/404-media/media/2026/10/kcACV2Z31VfckniLyBADCOf7b0q00tE1FyGFeAGk.png)

Во второй половине октября 2026 года состоялся релиз языка программирования Mojo 1.2 и платформы MAX Framework 26.7 для разработки приложений машинного обучения. MAX Framework дополняет инструменты Mojo средствами разработки и отладки программ, работающих с моделями в форматах TensorFlow, PyTorch и ONNX.

Mojo развивается под руководством Криса Латнера — основателя и главного архитектора LLVM, а также создателя Swift. В августе 2026 года проект достиг первой стабильной мажорной версии, а выпуск Mojo 1.1 в сентябре открыл возможность принимать изменения от сторонних участников. Стабильная ветка 1.x рассчитана на создание крупных проектов без риска несовместимых изменений в языке.

## Mojo объединяет Python и системное программирование

Синтаксис Mojo основан на Python, тогда как система типов близка к C и C++. Язык позиционируется как инструмент общего назначения: он должен сохранять удобство Python для исследований и прототипирования, но при этом позволять создавать высокопроизводительные конечные [приложения](/tehnologii).

Исходный код Mojo можно выполнять через JIT-интерпретацию либо заранее компилировать в исполняемые файлы. Компилятор преобразует программы в промежуточное представление MLIR, развиваемое в рамках LLVM, и поддерживает автоматические оптимизации, кэширование и распределённую компиляцию. Для ускорения вычислений можно задействовать CPU, GPU, специализированные ускорители машинного обучения и SIMD-инструкции. В отдельных сценариях такое распараллеливание, по заявлению разработчиков, позволяет превзойти производительность приложений на C и C++.

В языке есть статическая типизация и механизмы безопасной работы с памятью, включая контроль времени жизни ссылок и заимствований, напоминающий подход Rust. Одновременно сохраняются низкоуровневые возможности: режим *unsafe*, тип *Pointer*, прямой вызов SIMD-инструкций и доступ к аппаратным расширениям вроде TensorCores и AMX.

## Главные изменения в Mojo 1.2

Ключевым нововведением стала поддержка сопоставления с образцом через конструкции *match* и *case*. В качестве образцов можно использовать литералы, несколько значений, кортежи, структуры, условия с ограничениями и шаблон *case _*. Для проверок на этапе компиляции добавлено выражение *comptime match*.

В релизе также появилась деструктуризация списков — как самостоятельная возможность и как часть проверок в *match*. В условные конструкции *if*, *elif* и *while* добавили варианты *if case* и *while case*, позволяющие одновременно проверять и извлекать данные.

Стандартная библиотека *std.math* получила более 20 математических функций, включая *atan()*, *tan()*, *cbrt()*, *erfc()*, *lgamma()*, *log10()*, *remainder()* и *hypot()*. Реализации рассчитаны на работу как с CPU, так и с GPU и не используют системную библиотеку *libm*. Для описания аппаратных ускорителей появился тип *TargetAccelerator*, объединяющий возможности *GPUInfo* и *CompilationTarget*.

Синтаксис типажей расширили конструкцией *not <Trait>*, предназначенной для отключения реализации отдельных типажей. Для проверочных выражений *where* добавили пользовательские сообщения об ошибках через конструкцию *where <condition> else <message>*. В Linux компилятор Mojo перевели на распределитель памяти jemalloc.

## Ускорение компиляции и изменения совместимости

Сборка крупных пакетов и больших ядер для GPU ускорилась на 10–13%. В качестве примера разработчики приводят пакет *nn*: его компиляция занимает 61 секунду вместо 98.

Оптимизации затронули и работу со строками. Операции выравнивания ускорились до 86 раз, повторение больших строк оператором *** — примерно вдвое. Методы *String.startswith()* и *String.endswith()* также стали быстрее, а разбор чисел с плавающей запятой через *atof()* в среднем ускорился на 20%.

При этом разработчики изменили ряд API. *StringSpan* теперь предоставляет доступ к байтам строки только для чтения. Поддержка *MutStringSpan*, *MutStringSlice* и параметра *mut*, позволявших напрямую менять строковый буфер, прекращена. Пустой кортеж *()* теперь всегда обозначает значение, а для указания его типа нужно использовать *Tuple[]*.

Ключевые слова *async* и *await* переименовали в *__async* и *__await*, чтобы обозначить их экспериментальный статус. Старые варианты пока сохраняются, но компилятор выдаёт предупреждение.

В состав платформы Mojo входят компилятор, runtime, интерактивная REPL-оболочка, отладчик, расширение для VS Code с автодополнением, форматированием и подсветкой синтаксиса, а также интеграция с Jupyter. Исходный код стандартной библиотеки опубликован под лицензией Apache 2.0 с исключениями LLVM, допускающими смешивание с кодом под GPLv2. Исходный код компилятора планируют открыть после завершения стабилизации его внутренней архитектуры.
