Пора перегружать …
Что-то я увлекся и перестал следить за состоянием FB3.

Выложено очередное обновление IBProvider — версия 3.36
Примечательно, что сегодня стукнуло 17 лет с начала разработки этой штуковины. Хорошо помню что и в каком (ужасном) виде было создано в первые дни.
Что касается новой версии, то за кулисами осталась безуспешная попытка создать «суперпровайдер», то есть DLL с самостоятельно живущими потоками. К сожалению, выгрузка DLL ведет себя непредсказуемым образом и не получается реализовать корректную остановку потоков.
Так что, все оставлено как было — после освобождения последнего COM-объекта в DLL прекращается любая фоновая активность.
Жаль.
На сайт выгружена новая сборка IBProvider (3.36.0.24718), в которой сделано небольшое, но важное изменение — задействована системная функция DisableThreadLibraryCalls.
Это немного улучшает работу IBProvider в многопоточных процессах (провайдер сам по себе многопоточный), но говорит «до свидания» Windows 2000, в которой данная функция не поддерживается.
Поскольку последний раз про поддержку Windows 2000 спрашивали много лет тому назад, я думаю эта платформа уже не актуальна.
До кучи, раз уж провайдер попрощался с Windows 2000, я удалил проектные файлы для VS2008. С VS2005 я попрощался уже очень давно.
Visual Studio 2010 пока поддерживается — многие клиенты предпочитают сборки именно этой студии. По всей видимости из за Windows XP.
В настоящее время основным компилятором является VC14 (VS2015), а основное тестирование выполняется на 64-битных Windows 7 и Windows 10.
Free IBProvider теперь, как и основные версии (Prof, Lite), распространяется в виде MSI-пакета.
Сегодня стукнул год с момента выпуска провайдера с собственным клиентом для FB.
После таких релизов обычно накрывает страх не удержать темп или, что еще хуже — начать считать что лучше уже не сделать 🙂
Но пока страхи не оправдываются и за прошедший год были сделаны две ключевые вещи:
1. Наконец-то побеждены VARCHAR-массивы.
2. Реализован собственный клиент для FB3
И в настоящий момент закрывается третья большая тема — (предварительная) реорганизация фундамента кодовой базы провайдера, который был заложен еще в самом начале 2000-ых. Для проекта с объемом порядка 20MB кода — это реально подвиг.
Конечным пользователям эти изменения, конечно, до лампочки. Но для проекта это достаточно важный этап, который позволит еще с десяток лет развиваться c текущими темпами. Это, конечно, если сил хватит 🙂
Надеюсь, что успею до конца года все закончить и выложить релиз v3.35.
При сравнении относительно больших файлов в Araxis Merge вылазит окно:
Пять лет не напрягало, а тут внезапно стало задалбывать. Написал в поддержку и получил следующую инструкцию:
Работает.
Проснувшись ближе к вечеру (утром задолбала попа Грамота), открыл хабр и тупо стал созерцать картинку к топику про патчи к PostgreSQL:
Набрал в поиске «element_alloc(HTAB *hashp, int nelem, in freelist_idx)» и вышел на файл postgrespro/postgres_cluster/blob/master/src/backend/utils/hash/dynahash.c.
Реально — используют int для nelem и freelist_idx.
Посмотрел что там дальше, после картинки — «есть основания полагать, что данные патчи будут интересны новичкам«.
А, ну понятно — это экскурсия для детей.
Новая версия IBProvider-а, позволяющая работать с FB3 без fbclient.dll, вышла на финишную прямую.
Вчера на firebirdnews выложили кучу ссылок на «паперсы» конференции FB в 2016-ом году.
Было интересно просмотреть доклад Firebird development process — Past, present and future.
Инфы, конечно, маловато. Это не Брукс со своим «Мифическим человеко-месяцом».
Но достаточно, чтобы задуматься.
В процессе установки FB3 на тестовый сервер, обнаружил что он там когда-то уже пытался прижиться…
Задумался… Четыре года прошло, ёлки-палки.