
Lazarus і Free Pascal отримали повну підтримку динамічних пакетів
Перший випуск повної підтримки динамічних пакетів для Free Pascal Compiler та Lazarus IDE уже доступний: користувачі можуть встановлювати компоненти та елементи керування за секунди, не перебудовуючи всю IDE.
Перший випуск повної підтримки динамічних пакетів для Free Pascal Compiler та Lazarus IDE уже доступний для завантаження. Ця функція дає змогу користувачам створювати та встановлювати компоненти, елементи керування й розширення Lazarus за секунди без перебудови всієї IDE. Динамічні пакети також можна використовувати у власних програмах для розробки та розгортання плагінів, які відкривають доступ до власних класів і типів Pascal через бібліотеки динамічних пакетів.
Формат пакета та підтримка під час виконання
Динамічні пакети реалізовані як стандартні файли спільних бібліотек для Linux, Windows і macOS. Вони містять додаткові метадані, створені компілятором, які можна перевіряти та опитувати за допомогою нових модулів RTL. Середовище виконання включає механізми безпечного збереження змінних потоків і керування динамічними типами, такими як рядки та динамічні масиви, між програмами і пакетами або між кількома пакетами.
Під час розгортання програми розробники все ще можуть об’єднати все в один виконуваний файл або розділити його на кілька динамічних пакетів, які можна замінювати під час роботи програми, забезпечуючи систему плагінів.
Модуль у пакеті не може мати назву пакета, тому система пакетів тепер додає до нього слово Package. Наприклад, пакет ElectroTools.lpk створює ElectroToolsPackage.pas замість ElectroTools.pas. Назви модулів також мають бути унікальними між пакетами. Динамічні пакети більші за звичайні спільні бібліотеки, бо містять карту всього вмісту, а зменшення розміру вилучає метадані, потрібні для їхньої роботи.
Бібліотека виконання додає запис TPackageType та новий модуль DynPkgTypes.pas для читання інформації з динамічних пакетів. RTL надає функції для завантаження, перерахування, пошуку та вивантаження пакетів під час виконання.
Покращення Lazarus IDE
Нове вікно поступу може з’являтися поза межами IDE. Коли змінюється вихідний код, що належить зареєстрованому пакету, система виявляє зміни та перебудовує пакет до запуску Lazarus. У вікні показано поточну операцію та приблизний час до перезапуску IDE. Воно також з’являється, коли додавання або вилучення пакетів займає більше п’яти секунд, зокрема під час встановлення кількох пакетів одночасно.
Нове вікно Packages, закріплене справа за замовчуванням, показує нещодавно відкриті пакети, і цей список зберігається між сеансами. Файли всередині пакета можна переглядати та відкривати подвійним клацанням. Коли встановлений пакет компілюється, його елементи керування, компоненти або розширення оновлюються за секунду-дві.
Меню пакетів тепер оновлює IDE під час додавання або вилучення пакетів без перебудови. Параметри пакетів у розділі IDE Integrations дозволяють обмежити пакет певною платформою або набором віджетів. Пакет, який не відповідає поточним вимогам, не з’явиться у списку пакетів.
Нова функція перетворення форми або фрейму перетворює будь-яку форму або фрейм на встановлюваний елемент керування, що додається до палітри компонентів, із копіюванням всіх елементів керування, подій, методів та властивостей. Якщо пакет будується, поки відкрита форма його використовує, IDE спочатку попросить зберегти або закрити форму.
Доступність та підтримка
Усі інсталятори містять підтримку динамічних пакетів. Зміни до FPC і Lazarus внесено до GitLab у відгалужених гілках під назвою dynamic packages. Проблеми можна повідомляти через систему відстеження проблем GitLab, а питання можна обговорювати на форумі проєкту. Проєкт також шукає модераторів і просить пожертву Macintosh M1, щоб допомогти виготовляти збірки для macOS.
Джерела: getlazarus.org
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.