Firebird Foundation, при поддержке компаний iBase, RedSoft и IBPhoenix, объявляет о программе Firebird Internship.
Программа международная, в скором времени объявление появится и на firebirdsql.org.
Цель программы — увеличить количество разработчиков Firebird всех уровней — как профессионалов, так и просто любителей повозиться с кодом и разобраться с тем, как работает Firebird, на глубоком уровне.
Полный текст
Dmitry Kovalenko on 12 декабря, 2019 | 1 Comment
До последнего момента отлаживал PHP «методом пристального взгляда».
На самом деле это не сложно, если код нормально структурирован.
Но сегодня что-то я устал и решил изучить тему нормальной отладки.
Через 15 минут отладчик был прикручен (Win7, Apache x64, PHP5.6, xDebug, VS Code).
И осторожно подумалось — наверное же и для Firebird/InterBase такое можно сделать.
Один товарищ, на курс старше меня учился, лет 12 назад мне говорил, что (в принципе) знает как такое делается…
Мда Ээхх…
Привет.
Про баги
Меня иногда посещает мысль — вместо прогона одних и тех же тестов в течении стольких лет, надо покупать лотерейные билеты и вписывать один и тот же набор цифр. В новостях иногда проскакивает, что такая схема работает.
Неделю назад, утром в субботу, разблокировал компьютер и узрел окно с ошибкой в тестах. При тестировании отладочной 32-битной сборки сработал assert.
Я так удивился, что сразу начал делать screenshot-ы этого чуда и делать дампы памяти процесса. (далее…)
Завершена работа над новым обновлением IBProvider — v5.9. Сборка 33077, загруженная на сайт, с очень высокой долей вероятности уйдет в релиз. Одновременно будет выпущено обновление LCPI OLE DB Services v1.12.
Основное изменение — в сборках vc16 (VS2019) пул потоков выделен в самостоятельную DLL, которую будут одновременно использовать и IBProvider и сервисы OLE DB.
Пожалуй, здесь стоит перечислить, для каких задач используются потоки. (далее…)
Реорганизация исходных текстов, затеянная (по факту) три года назад, вышла на … очередную финишную прямую 🙂
1. Из каталога lib/structure выделены базовые конструкции и перемещены в каталог cpp/public/lcpi/infrastructure/core/structure. Это типа фундамент всего и вся. Кстати, не очень большой. Список файлов:
t_err_record.h
t_err_records_r.h
t_err_records_w.h
t_exception.h
t_explicit.h
t_lcid.h
t_not_null_ptr.h
t_smart_interface.h
t_smart_object_ptr.cc
t_smart_object_ptr.h
Это уже попало в выпущенные IBProvider v5.8 и LCPI OLE DB Services v1.11.
2. Буквально вчера реорганизовал вершину каталога с проектом IBProvider. Достаточно важная веха в истории проекта. Файл readme.txt из корня старого каталога содержит следующее:
Проект IBProvider [v3]
— OLEDB Provider for InterBase/Firebird SQL Servers
Коваленко Дмитрий. 21 октября 2003 года. Поехали.
Время бежит, да.
Закачал очередное обновление IBProvider в личные кабинеты клиентов и залип на таблице:
Дело к зиме идет, а он худеть начал 🙂
Привет всем.
1. Выложен новый триал IBProvider v5.8 (сборка 32840). В этой сборке продолжены анализ и зачистка кода. Бинарники еще немного похудели.
2. Не то чтобы размер бинарных файлов очень сильно напрягал, но уже пришлось переместить архив со всеми ранее выпущенными версиями (финальными и промежуточными) на отдельный 2TB диск. Четверть диска пока свободна, но исходя из текущих планов, это свободное место будет выжираться немного бодрее.
3. Время от времени приходится напоминать себе конечный пункт этих самых планов. Потому что, когда «топчешься на месте» четвертый месяц, забываешь ради чего все затевалось. Сейчас это делать стало немного проще, поскольку появилась такая картинка:
Привет всем.
1. Выложено обновление IBProvider v5.7. Нулевое число предупреждений 4-го уровня (VS2019, Release), Карл. Осилил.
2. Размышляя над исправлениями v5.7, пришел к выводу, что надо бы обновить и IBProvider Free. Чисто на всякий случай.
3. Решил, что пришло время завязать с VS2013 и VS2015. С 2020 года. Дорогие Россияне, я устал.
4. Теперь можно заняться по настоящему интересными задачами.
—
PS. Чисто для развлечения. Вчера в libtommath закоммитили исправление, предложенное более чем три года назад. Это все, что вам нужно знать про Open Source проекты.
Сегодня обновил свою VS2019 до версии 16.3.3 и обнаружил занятную вещь — 64-битные бинарники IBProvider реально очень сильно «похудели».
32-битные бинарники тоже «сбросили в весе», но не так сильно.
Платформа | VS2019 v16.2.5 | VS2019 v16.3.3 | Разница |
32 бита | 5 686 272 байт | 5 678 592 байт | -7 680 байт |
64 бита | 6 889 984 байт | 6 276 608 байт | -613 376 байт |
Прогнал номинальные тесты 64-битного бинарника — работают без проблем.
Интересно.
Dmitry Kovalenko on 9 октября, 2019 | 1 Comment
Выпуск следующего обновления IBP v5.7 немного затянулся. Что-то я закопался с устранением мелких проблем, в которые меня тыкает компилятор.
Изменений внесено достаточно много, но как обычно — помнишь только последнее.
Последним было решение проблем компиляции IBProvider (vc16/vs2019) с включенным злобным режимом «Conformance Mode=Yes». Спасибо коллективному разуму и rg45 лично.
Пока писал, вспомнил про другие глобальные изменения.
1. Переезд «сборочного процесса» с make.exe (борланд/эмбаркадера) на msbuild.
2. Обнаружил и задействовал опцию компилятора «Enable Function-Level Linking» (/Gy). Бинарники ощутимо похудели. На производительности вроде не отразилось.
3. Вместе с провайдером будут еще обновлены «LCPI Ole Db Services».
Релиз v5.7 будет через неделю. Максимум через две. Пора уже закругляться 🙂