C.10 Unit loading messages.

This section lists all messages that can occur when the compiler is loading a unit from disk into memory. Many of these messages are informational messages.

Unitsearch: arg1

When you use the -vt option, the compiler tells you where it tries to find unit files.
PPU Loading arg1

When the -vt switch is used, the compiler tells you what units it loads.
PPU Name: arg1

When you use the -vu flag, the unit name is shown.
PPU Flags: arg1

When you use the -vu flag, the unit flags are shown.
PPU Crc: arg1

When you use the -vu flag, the unit CRC check is shown.
PPU Time: arg1

When you use the -vu flag, the time the unit was compiled is shown.
PPU File too short

The ppufile is too short, not all declarations are present.
PPU Invalid Header (no PPU at the begin)

A unit file contains as the first three bytes the ASCII codes of the characters PPU.
PPU Invalid Version arg1

This unit file was compiled with a different version of the compiler, and cannot be read.
PPU is compiled for another processor

This unit file was compiled for a different processor type, and cannot be read.
PPU is compiled for another target

This unit file was compiled for a different target, and cannot be read.
PPU Source: arg1

When you use the -vu flag, the unit source file name is shown.
Writing arg1

When you specify the -vu switch, the compiler will tell you where it writes the unit file.
Fatal: Can’t Write PPU-File

An error occurred when writing the unit file.
Fatal: Error reading PPU-File

This means that the unit file was corrupted, and contains invalid information. Recompilation will be necessary.
Fatal: unexpected end of PPU-File

Unexpected end of file. This may mean that the PPU file is corrupted.
Fatal: Invalid PPU-File entry: arg1

The unit the compiler is trying to read is corrupted, or generated with a newer version of the compiler.
Fatal: PPU Dbx count problem

There is an inconsistency in the debugging information of the unit.
Error: Illegal unit name: arg1 (expecting arg2)

The name of the unit does not match the file name. There might to two reasons: either there is a spelling mistake in the unit name or there is a unit with a 8.3 name where the 8 characters are equal to first 8 characters of the name of a unit with a longer name. However, this unit is not found. Example: Program contains uses mytestunit;, the unit file or source of mytestunit are not available but there is a source with the name mytestun. Then compiler tries to compile and use that one, however the expected unit name does not match.
Fatal: Too much units

Free Pascal has a limit of 1024 units in a program. You can change this behavior by changing the maxunits constant in the fmodule.pas file of the compiler, and recompiling the compiler.
Fatal: Circular unit reference between arg1 and arg2

Two units are using each other in the interface part. This is only allowed in the implementation part. At least one unit must contain the other one in the implementation section.
Fatal: Can’t compile unit arg1, no sources available

A unit was found that needs to be recompiled, but no sources are available.
Fatal: Can’t find unit arg1 used by arg2

You tried to use a unit of which the PPU file isn’t found by the compiler. Check your configuration file for the unit paths.
Warning: Unit arg1 was not found but arg2 exists

This error message is no longer used.
Fatal: Unit arg1 searched but arg2 found

dos truncation of 8 letters for unit PPU files may lead to problems when unit name is longer than 8 letters.
Warning: Compiling the system unit requires the -Us switch

When recompiling the system unit (it needs special treatment), the -Us switch must be specified.
Fatal: There were arg1 errors compiling module, stopping

When the compiler encounters a fatal error or too many errors in a module then it stops with this message.
Load from arg1 (arg2) unit arg3

When you use the -vu flag, which unit is loaded from which unit is shown.
Recompiling arg1, checksum changed for arg2

The unit is recompiled because the checksum of a unit it depends on has changed.
Recompiling arg1, source found only

When you use the -vu flag, these messages tell you why the current unit is recompiled.
Recompiling unit, static lib is older than ppufile

When you use the -vu flag, the compiler warns if the static library of the unit is older than the unit file itself.
Recompiling unit, shared lib is older than ppufile

When you use the -vu flag, the compiler warns if the shared library of the unit is older than the unit file itself.
Recompiling unit, obj and asm are older than ppufile

When you use the -vu flag, the compiler warns if the assembler or object file of the unit is older than the unit file itself.
Recompiling unit, obj is older than asm

When you use the -vu flag, the compiler warns if the assembler file of the unit is older than the object file of the unit.
Parsing interface of arg1

When you use the -vu flag, the compiler warns that it starts parsing the interface part of the unit.
Parsing implementation of arg1

When you use the -vu flag, the compiler warns that it starts parsing the implementation part of the unit.
Second load for unit arg1

When you use the -vu flag, the compiler warns that it starts recompiling a unit for the second time. This can happen with interdependent units.
PPU Check file arg1 time arg2

When you use the -vu flag, the compiler shows the filename and date and time of the file on which a recompile depends.
Warning: Can’t recompile unit arg1, but found modified include files

A unit was found to have modified include files, but some source files were not found, so recompilation is impossible.
File arg1 is newer than the one used for creating PPU file arg2

A modified source file for a compiler unit was found.
Trying to use a unit which was compiled with a different FPU mode

Trying to compile code while using units which were not compiled with the same floating point format mode. Either all code should be compiled with FPU emulation on, or with FPU emulation off.
Loading interface units from arg1

When you use the -vu flag, the compiler warns that it is starting to load the units defined in the interface part of the unit.
Loading implementation units from arg1

When you use the -vu flag, the compiler warns that it is starting to load the units defined in the implementation part of the unit.
Interface CRC changed for unit arg1

When you use the -vu flag, the compiler warns that the CRC calculated for the interface has been changed after the implementation has been parsed.
Implementation CRC changed for unit arg1

When you use the -vu flag, the compiler warns that the CRC calculated has been changed after the implementation has been parsed.
Finished compiling unit arg1

When you use the -vu flag, the compiler warns that it has finished compiling the unit.
Adding dependency: arg1 depends on arg2

When you use the -vu flag, the compiler warns that it has added a dependency between the two units.
No reload, is caller: arg1

When you use the -vu flag, the compiler warns that it will not reload the unit because it is the unit that wants to load this unit.
No reload, already in second compile: arg1

When you use the -vu flag, the compiler warns that it will not reload the unit because it is already in a second recompile.
Flag for reload: arg1

When you use the -vu flag, the compiler warns that it has to reload the unit.
Forced reloading

When you use the -vu flag, the compiler warns that it is reloading the unit because it was required.
Previous state of arg1: arg2

When you use the -vu flag, the compiler shows the previous state of the unit.
Already compiling arg1, setting second compile

When you use the -vu flag, the compiler warns that it is starting to recompile a unit for the second time. This can happen with interdependent units.
Loading unit arg1

When you use the -vu flag, the compiler warns that it starts loading the unit.
Finished loading unit arg1

When you use the -vu flag, the compiler warns that it finished loading the unit.
Registering new unit arg1

When you use the -vu flag, the compiler warns that it has found a new unit and is registering it in the internal lists.
Re-resolving unit arg1

When you use the -vu flag, the compiler warns that it has to recalculate the internal data of the unit.
Skipping re-resolving unit arg1, still loading used units

When you use the -vu flag, the compiler warns that it is skipping the recalculation of the internal data of the unit because there is no data to recalculate.
Unloading resource unit arg1 (not needed)

When you use the -vu flag, the compiler warns that it is unloading the resource handling unit, since no resources are used.
Error: Unit arg1 was compiled using a different whole program optimization feedback input (arg2, arg3); recompile it without wpo or use the same wpo feedback input file for this compilation invocation

When a unit has been compiled using a particular whole program optimization (wpo) feedback file (-FW<x> -OW<x>), this compiled version of the unit is specialised for that particular compilation scenario and cannot be used in any other context. It has to be recompiled before you can use it in another program or with another wpo feedback input file.
Indirect interface (objects/classes) CRC changed for unit arg1

When you use the -vu flag, the compiler warns that the indirect CRC calculated for the unit (this is the CRC of all classes/objects/interfaces/ in the interfaces of units directly or indirectly used by this unit in the interface) has been changed after the implementation has been parsed.
PPU is compiled for another i8086 memory model

This unit file was compiled for a different i8086 memory model and cannot be read.
Loading unit arg1 from package arg2

The unit is loaded from a package.
Fatal: Internal type ”arg1” was not found. Check if you use the correct run time library.

The compiler expects that the runtime library contains certain types. If you see this error and you didn’t change the runtime library code, it’s very likely that the runtime library you’re using doesn’t match the compiler in use. If you changed the runtime library this error means that you removed a type which the compiler needs for internal use.
Fatal: Internal type ”arg1” does not look as expected. Check if you use the correct run time library.

The compiler expects that the runtime library contains certain types. If you see this error and you didn’t change the runtime library code, it’s very likely that the runtime library you’re using doesn’t match the compiler in use. If you changed the runtime library this error means that you changed a type which the compiler needs for internal use and which needs to have a certain structure.