Free Pascal 编译器和 Lazarus IDE 现在支持动态包,允许用户创建和安装组件、控件和扩展而无需重建整个 IDE。动态包可以用于开发插件,通过动态包库暴露原生 Pascal 类和类型。它们被实现为 Linux、Windows 和 macOS 的标准共享库文件,包含编译器生成的元数据。运行时包括用于安全保存线程变量和管理动态类型(如字符串和动态数组)在程序和包之间的机制。部署程序时,用户可以将所有内容捆绑到一个可执行文件中,或将其划分为多个动态包,这些动态包可以在运行时替换,提供插件系统。限制包括跨包的单元名称冲突以及由于嵌入元数据导致的动态包比普通共享库更大。RTL 已通过新增单元 Dyn Pkg Types.pas 进行增强,以帮助读取动态包的信息。Lazarus IDE 的增强包括在包重建期间出现在 IDE 外部的新进度窗口。动态包提供了插件系统,并允许在运行时替换组件,从而改善 Lazarus 用户的开发工作流程。
来源: Hacker News · 由HeadlinesBriefing整理摘要