21 сентября 2026 г.
Bend режет фичи ради контекста ИИ: ядро и компилятор заперты в 108 000 токенов
Виктор Таелин слил 5 заявок из 55 за неделю и просит присылать те, что делают код короче.

Taelin
@victortaelin
Ребята, PR'ов приходит больше, чем я успеваю разбирать. Главное: если фича работает, это ещё не повод взять и влить её. Даже будь код идеальным и без багов (а это трудно проверить), остаётся потолок по размеру. Мы уже пробили 100k ttok, и это тревожно. И даже если бы потолок не рос, каждая новая фича — это код, который нам поддерживать вечно. Сил на поддержку новых фич у нас нет (пока что). Текущий размер хорош тем, что весь kernel и компилятор влезают в контекст ИИ, и ему ещё остаётся место спокойно работать. Это очень помогает рефакторить, задавать вопросы по кодовой базе, проводить аудит и находить баги. Так что сильно дальше, чем сейчас, нам не вырасти. Ещё формализация до сих пор не догнала текущую реализацию, и мы уже ловим всякое. Каждый баг несогласованности приходил из фич, которые мы не успели формализовать (вроде шаблонов), и чем больше добавляем, тем дольше догонять. Добавить фичу нетрудно, у нас были U64 и F64, но мы их убрали, чтобы держать реализацию в узде. Возможно, правильнее всего добавлять такие вещи как расширения, отцепленные от ядра, но я не уверен, так что подожду, пока не решу. Кстати, если хотите сделать отличный вклад, который я скорее всего волью: сделайте код КОРОЧЕ. Не вырезая комментарии и не минифицируя, а найдя настоящую возможность упростить. Абстракцию, которая делает код принципиально надёжнее и лучше структурированным, уменьшает его объём и при этом не убирает ни одной фичи и не роняет ни один тест или бенчмарк. Дублирующихся понятий и глупых или неверных абстракций хватает, особенно в компиляторе. Разобраться с ними мне куда приятнее, чем получить любую фичу. PR'ов нам прислали уже несколько, и ни у одного не было отрицательного счётчика строк. Пожалуйста, присылайте отрицательные PR. Простите за стену текста, сейчас 2 часа ночи и всего слишком много, чтобы удержать в голове 😐
· 8,8 тыс. просмотров
Из 55 pull request'ов, пришедших в Bend за неделю, автор языка Виктор Таелин слил пять. Сорок один закрыл без merge.
Дело не в качестве кода. Таелин держит репозиторий в размере, при котором язык целиком влезает в контекст ИИ-модели, а каждая новая фича этот размер ломает.
Bend 2.0.0 вышел 17 сентября, за пять дней чейнджлог добрался до версии 2.0.24. У репозитория 22 186 звёзд и 651 форк, отсюда и поток заявок.
Почему Bend нельзя растить
Потолок машинный. Размер проверяет гейт gates/repo.ts: каждый отслеживаемый файл обязан стоять в allow-листе и влезать в свой кэп. Ядру bend2/bend.ts отведено 43 000 токенов, компилятору bend2/comp.ts 65 000, базовой библиотеке 32 000, CLI 10 000, README 3 000. Файл вне списка или сверх кэпа гейт помечает FAIL.
Ядро и компилятор вместе дают 108 000 токенов, и планку в 100 000 проект уже пробил. Пока весь язык с компилятором помещается в окно модели, у неё остаётся место на работу: рефакторинг, вопросы по коду, аудит и поиск багов идут по всей кодовой базе сразу.
Так уже было. U64 и F64 в языке стояли, но их убрали ради размера. 20 и 21 сентября под ту же логику попали готовые вещи: расширение для VS Code с грамматикой и форматтером, LSP компилятора, чек-лист перед заведением issue, DNS.resolve через getaddrinfo.
Второй долг лежит в доказательствах. Формализация ядра на Lean живёт в файле bend2/bend.lean и отстала от кода, о рассогласовании сказано прямо в ограничениях README. Все баги несогласованности пришли из фич, которые формализовать не успели, вроде шаблонов.
Какой вклад вольют
Отрицательный PR. Таелин просит сокращать код не вырезанием комментариев, а настоящим упрощением: абстракцией, которая делает код крепче и структурнее, уменьшает объём и не убирает ни одной фичи, не роняет ни тест, ни бенчмарк. Дублей и неудачных абстракций, по его словам, больше всего в компиляторе.
Закрытая заявка не значит выброшенный код. Два PR Мэтта Козендея закрыли без merge 21 сентября, а в чейнджлоге 2.0.24 он назван по имени: литерал свернули в один узел Lit, и 50 определений по 1000 символов теперь проверяются за 0,14 секунды и 74 МБ вместо 4 секунд и 2,6 ГБ.
Отказы у проекта сложены в файл WONTFIX.txt. В разделе CAPACITY стоит формулировка про небольшую команду, которая держит язык в размере, который может поддерживать. Туда уже отправлены Windows, Vulkan и gcc.
Ни один из присланных PR пока не уменьшил кодовую базу.
Таелин думает вынести лишние фичи в расширения, отцепленные от ядра, и решение отложил.
* Meta Platforms Inc. признана в РФ экстремистской организацией, её деятельность запрещена; Facebook и Instagram заблокированы. Meta AI и другие продукты компании — продукты этой организации.
Первоисточник
