Три дня до нового бита
Всего через 4 миллиона новых точек их номера выйдут за пределы 32-битного пространства чисел, что потребует от всех программ умения обработки 64-битных идентификаторов. Пол Норман подсчитал, что это случится в субботу вечером. Предупреждали об этом аж два года назад, а в декабре Фредерик Рамм подготовил набор тестовых данных. Большинство критичных инструментов — JOSM, Potlatch, osm2pgsql, Osmium, Maperitive, — уже готовы к переходу.
Слабым звеном, как обнаружил Сергей Астахов, оказался Osmosis. Классы для хранения списка идентификаторов начнут выбрасывать ошибки из-за слишком больших чисел. Это не помешает репликации, но фильтры по тегам и по полигонам перестанут работать. Как следствие, региональные выгрузки на гис-лабе сломаются. Конечно, если авторы osmosis-а не успеют устранить ограничение, а хранители выгрузок — обновить программу.
Вики-страница 64-bit Identifiers подскажет, какие ещё программы нужно обновить до этих выходных. Для слежения за идентификаторами есть обратный отсчёт.
Слабым звеном, как обнаружил Сергей Астахов, оказался Osmosis. Классы для хранения списка идентификаторов начнут выбрасывать ошибки из-за слишком больших чисел. Это не помешает репликации, но фильтры по тегам и по полигонам перестанут работать. Как следствие, региональные выгрузки на гис-лабе сломаются. Конечно, если авторы osmosis-а не успеют устранить ограничение, а хранители выгрузок — обновить программу.
Вики-страница 64-bit Identifiers подскажет, какие ещё программы нужно обновить до этих выходных. Для слежения за идентификаторами есть обратный отсчёт.
Ну если быть точным — то за пределы 31-битного. И проблемы начнутся у программ, которые используют знаковые переменные, т. к. именно знак хранится в 32-м бите. Тогда как беззнаковые (unsigned) переменные вполне смогут хранить идентификаторы до 4294967295 включительно.
32-битная адресация памяти, 32-битный IPv4 адрес — вполне себе беззнаковые. «Почти во всех» — субъективное понятие. ;)
Там даже byte b=0; b=b+1; не компилируется т. к. byte+1 = int
а вообще да, без этих знаково-беззнаковых извращений жизнь намного проще. Кроме писателей драйверов и прочих низкоуровневых вещей, но кто такое на Java будет делать?
http://www.openstreetmap.org/browse/node/2147483648
Sat, 09 Feb 2013 09:17:24 +0000
Я бы сказал, это скорее утро, чем вечер :)