Extended Pascal Component Library
Extended Pascal Component Library - это свободно распространяемая библиотека для FreePascal с открытым исходным кодом.
Она совместима с FPC 2.2.4, версией, входящей в последний стабильный релиз Lazarus. (предполагается дополнить) и кроссплатформенна. (лично буду проверять под виндой и альтлинухом. Мак, прости. Может быть, в будущем доберусь до него)
Однако EPCL - не просто библиотека, предоставляющая функционал для какой-либо узкой задачи. Основной её особенностью является то, что она пригодится практически всем и для всего. (как-то так)
Задача данной библиотеки - повысить производительность кодопроизводства, избавив его от изобретения лишних велосипедов, предоставить программисту максимум удобств и наворотов. Продвинутых и мощных, но, в то же время, простых и понятных.
Так какие же велосипеды и навороты планируются?
(практически все идеи висели в моей голове годы)
Шаблонные списки различных видов.
Знаете ли вы, что такое fgl? Этот юнит входит в состав RTL fpc и представляет собой зарождающуюся библиотеку шаблогов FPC. Однако, судя по тому, что шаблоны в FPC ввели ещё несколько лет назад, а в RTL они до сих пор не включены (в 2.2.4 fgl обрамлён {$ifdef testgenerics}), она будет расширяться сравнительно медленно. Не будем их ждать. Наделаем шаблонов на все случаи жизни. В первую очередь, шаблонные списки.
"Лёгкий шаблонный список" - базовый функционал: хранит всё и сортирует
"Тяжёлый шаблонный список" - всевозможный функционал: сериализация, преобразование в текст, ..., ..., ... (придумать) но хранит только объекты.
Усовершенствованная работа с потоками.
"Серживаемый поток" - с помощью этого класса можно сделать поток таким, чтобы он не создавал 100% нагрузку на проц путём отличным от впячивания sleep
"Глобальный список потоков" - с этим классом возможно проконтролировать в рантайме, какие потоки вы запустили, какие работают, какие стоят, присвоить каждому потоку имя. (Да, что-то такое есть уже, но то немного не то)
"Простой усовершенствованный поток" - функционал: создание потока - объекта (не путать с CreateThread) без объявления наследника TThread и возможности по передаче параметров и синхронизации (пока-что только с "корневым" потоком)
Ввод-вывод, Универсальное хранение данных, хранение их в XML, в архиве, в бинарной склейке, в собственном формате, в конце концов
Лог
Скрипты
Инсталлятор
Последние несколько "лампочек" распишу поподробнее чуть позже, также планируется дополнить новыми "идеями"