avatar
Mobile Development by AppTractor
@apptractor
30.10.2025 20:58
Android

В статье рассказывают, как программисты из Турции обнаружили странную ошибку: сборка Kotlin-проекта выдавала сообщение «Unknown compiler message tag: INFO», и выяснилось, что дело в локали системы. Оказалось, что методы вроде toLowerCase() и capitalize() в компиляторе работали с учётом языка системы, и на турецкой раскладке буква «I» приводилась к «?» (без точки) — из-за этого часть алгоритма не находила нужные ключи. Ошибка проявлялась не сразу, но с ростом сложностей (например, при корутинах и примитивных массивах) стала серьёзной. Команда Kotlin изменила библиотеку, чтобы использовать инвариантную локаль (например, Locale.US), и в версии 1.5 баг наконец окончательно закрылся. Вывод: даже самая банальная строковая операция может оказаться уязвимой из-за языковых нюансов и настроек локали. Стоит помнить, что код работает в мире, где культура, алфавит и система имеют значение — и тестировать не только в «английской» среде.

Cahier — пример современного блокнота для Android от Google
Gradle для QA-инженера
The Country That Broke Kotlin
Under the Hood of Suspension: Tracing the State Machine Behind Kotlin Coroutines
Medium
The Country That Broke Kotlin
Logic vs language: how a Turkish alphabet bug played a years-long game of hide-and-seek inside the Kotlin compiler
? 2
? 1
4 1.7K

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram