While in this simple application on my machine it takes a couple of extra seconds, with larger applications having many runtime packages the effect on the debugger can be fairly extreme. Here is a screenshot of the effect in the Event log (this is a single form FMX application): Now consider that most of the core Delphi BPL (rtl, vcl, fmx) have dozens and dozens of sections, and the result is libraries are loaded (and unloaded) dozens and dozens of times. Empirically, it looks like a BPL is loaded once for each segment. However this change has ended up affecting the loading of libraries with multiple sections in the export tables. Microsoft decided to rewrite the DLL loading code to make it parallel (different threads can load different libraries in parallel) to optimize applications loading. This was likely a minor linker optimization, and never had a real side effect.įast forward to Windows 10 Creators Update. Since the early days, when the Delphi compiler (and linker) generate a DLL or package library (BPL) by assembling multiple units in a single binary file, and do so by making functions and methods available by creating multiple sections in the export/import table. Any other library or executable referring to it has an import table referring to functions of that export table. In both cases, when the DLL is generated it is has a table of entry points ( export table).
#DELPHI XE10 COMPILER DIRECTIVE FULL#
On the Windows operating system, dynamic linking (DLLs) support both load-time binding and full runtime binding ( LoadLibrary). Let's start with some background information. But what is happening? The Core Issue: Optimized DLL Loading In general terms, the problem affects all applications that use runtime packages, built with any version of Delphi (recent, old, or even the early ones). In most cases, the slowdown for end user application is relatively limited, however applications with runtime packages on network shares are affected. The issue is affecting applications that use runtime packages (BPL), not applications compiled as a single executable.
#DELPHI XE10 COMPILER DIRECTIVE UPDATE#
Since Windows 10 Creators Update was released two months ago, we have started seeing reports of issues with runtime package (for example, RSP-17972, where myself, Embarcadero support and R&D have chimed in), mostly while debugging applications.