Apr. 21st, 2009

uint16_t

Apr. 21st, 2009 01:41 pm
redis: (Default)
Дорвался, стало быть, мой измученный Джавой организм до языка Цэ-пэ-пэ. Дорвался и написал самостоятельно и с нуля Программный Продукт (сокращенно - пи-пи).

Проверил, протестировал, еще раз перепроверил - в связи с нелегкими временами тестера на мой продукт нет, приходится самому. Работает мой пи-пи, любо-дорого посмотреть.

Послал заказчику. Работает и у заказчика. Ну, то есть они не сразу разобрались, потом наехали по причине того, что не поняли, получили пояснение, поняли, поставили, запустили... работает! Работает пи-пи, черт его побери!

А потом вдруг хлоп-шлеп, нет, больше не работает. С одними файлами работает, с другими - не-а, не работает. Полезли разбираться. Долго ли коротко ли сказка сказывается, но разобрались. Не работает с файлами больше 10 килобайт, если верить заказчику. Ну, так они тестировали - 1 килобайт, 10, 100... Последний - не работает. Глючит пи-пи, ерунду выдает на выходе.

Полез смотреть пи-пи. Нашел проблему. Так и есть, длина файла мною объявлена как uint16_t. 64 килобайта и не килобайтом больше.

Сижу. Думаю. С чего я такой идиот-то, черт меня побери?.. Еще подумал. Вспомнил! Вспомнил и понял!

На Спектруме, при его страничной памяти на 64 килобайта, шестнадцати бит хватало для описания максимальной длины файла. Угу, на Спектруме... Да-да 15 лет тому назад... uint16_t, он же dw на ассемблере... Нет-нет, совершенно честно, в 1994-м...

Свой пи-пи я, конечно, поправил. Но интересно, сколько еще подобных неосознанных флэш-бэков в моем коде?..

Profile

redis: (Default)
redis

August 2025

S M T W T F S
      12
3 4567 89
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 8th, 2025 11:22 am
Powered by Dreamwidth Studios