Browse Source

* Updated compiler messages

michael 24 years ago
parent
commit
7a87365454
1 changed files with 57 additions and 15 deletions
  1. 57 15
      docs/messages.tex

+ 57 - 15
docs/messages.tex

@@ -237,6 +237,13 @@
  A macro declaration has been found, but macro support is currently off,
  A macro declaration has been found, but macro support is currently off,
  so the declaration will be ignored. To turn macro support on compile with
  so the declaration will be ignored. To turn macro support on compile with
  -Sm on the commandline or add \var{\{\$MACRO ON\}} in the source
  -Sm on the commandline or add \var{\{\$MACRO ON\}} in the source
+\item [Warning: APPID is only supported for PalmOS]
+ The \var{\{\$APPID\}} directive is only supported for the PalmOS target.
+\item [Warning: APPNAME is only supported for PalmOS]
+ The \var{\{\$APPNAME\}} directive is only supported for the PalmOS target.
+\item [Error: Constant strings can't be longer than 255 chars]
+ A single string constant can contain at most 255 chars. Try splitting up the
+ string in multiple smaller parts and concatenate them with a + operator.
  \end{description}
  \end{description}
  \section{Parser messages}
  \section{Parser messages}
  This section lists all parser messages. The parser takes care of the
  This section lists all parser messages. The parser takes care of the
@@ -744,8 +751,8 @@
  Parameters are declared as call by reference using the \var{var}-directive
  Parameters are declared as call by reference using the \var{var}-directive
 \item [Error: Duplicate message label: arg1]
 \item [Error: Duplicate message label: arg1]
  A label for a message is used twice in one object/class
  A label for a message is used twice in one object/class
-\item [Error: Self can be only an explicit parameter in message handlers]
- The self parameter can be passed only explicitly in a method which
+\item [Error: Self can only be an explicit parameter in mehtods that are message handlers]
+ The self parameter can only be passed explicitly to a method which
  is declared as message method handler.
  is declared as message method handler.
 \item [Error: Threadvars can be only static or global]
 \item [Error: Threadvars can be only static or global]
  Threadvars must be static or global, you can't declare a thread
  Threadvars must be static or global, you can't declare a thread
@@ -816,6 +823,24 @@
  currently supporting export of variables is Win32.
  currently supporting export of variables is Win32.
 \item [Error: Type "arg1" can't be used as array index type]
 \item [Error: Type "arg1" can't be used as array index type]
  Types like DWord or Int64 aren't allowed as array index type
  Types like DWord or Int64 aren't allowed as array index type
+\item [Warning: Some fields coming before "arg1" weren't initialized]
+ In Delphi mode, not all fields of a typed constant record have to be
+ initialized, but the compiler warns you when it detects such situations.
+\item [Error: Some fields coming before "arg1" weren't initialized]
+ In all syntax modes but Delphi mode, you can't leave some fields uninitialized
+ in the middle of a typed constant record
+\item [Hint: Some fields coming after "arg1" weren't initialized]
+ You can leave some fields at the end of a type constant record uninitialized
+ (the compiler will initialize them to zero automatically), but then the
+ compiler gives you a hint when it detects such situations.
+\item [Error: Self must be a normal (call-by-value) parameter]
+ You can't declare self as a const or var parameter, it must always be
+ a call-by-value parameter
+\item [Error: Typed constants of the type "procedure of object" can only be initialized with NIL]
+ You can't assign the address of a method to a typed constant which has a
+ 'procedure of object' type, because such a constant requires two addresses:
+ that of the method (which is known at compile time) and that of the object or
+ class instance it operates on (which can not be known at compile time).
  \end{description}
  \end{description}
  \section{Type checking errors}
  \section{Type checking errors}
  This section lists all errors that can occur when type checking is
  This section lists all errors that can occur when type checking is
@@ -954,11 +979,23 @@
 \item [Error: Array type required]
 \item [Error: Array type required]
  If you are accessing a variable using an index '[<x>]' then
  If you are accessing a variable using an index '[<x>]' then
  the type must be an array. In FPC mode also a pointer is allowed.
  the type must be an array. In FPC mode also a pointer is allowed.
-\item [Hint: Mixing signed expressions and cardinals results in a (slower) 64bit evaluation]
- If you divide/multiply a signed number by a cardinal (or vice versa),
+\item [Warning: Mixing signed expressions and cardinals gives a 64bit result]
+ If you divide (or calculate the modulus of) a signed expression by a cardinal (or vice versa),
  or if you have overflow and/or range checking turned on and use an arithmetical
  or if you have overflow and/or range checking turned on and use an arithmetical
- expression in which both signed numbers and cardinals appear, then everything has
- to be evaluated in 64bit which is slower than normal 32bit arithmetics.
+ expression (+, -, *, div, mod) in which both signed numbers and cardinals appear,
+ then everything has to be evaluated in 64bit which is slower than normal
+ 32bit arithmetics. You can avoid this by typecasting one operand so it
+ matches the resulttype of the other one.
+\item [Warning: Mixing signed expressions and cardinals here may cause a range check error]
+ If you use a binary operator (and, or, xor) and one of
+ the operands is a cardinal while the other one is a signed expression, then,
+ if range checking is turned on, you may get a range check error because in
+ such a case both operands are converted to cardinal before the operation is
+ carried out. You can avoid this by typecasting one operand so it
+ matches the resulttype of the other one.
+\item [Error: Typecast has different size (arg1 -> arg2) in assignment]
+ Type casting to a type with a different size is not allowed when the variable is
+ used for assigning.
  \end{description}
  \end{description}
  \section{Symbol handling}
  \section{Symbol handling}
  This section lists all the messages that concern the handling of symbols.
  This section lists all the messages that concern the handling of symbols.
@@ -1259,23 +1296,23 @@
 \item [Error: Can't create archive file: arg1]
 \item [Error: Can't create archive file: arg1]
  The mentioned file can't be create. Check if you've
  The mentioned file can't be create. Check if you've
  permission to create this file
  permission to create this file
-\item [Warning: Assembler arg1 not found, switching to external assembling]
+\item [Error: Assembler arg1 not found, switching to external assembling]
 \item [Using assembler: arg1]
 \item [Using assembler: arg1]
-\item [Warning: Error while assembling exitcode arg1]
-\item [Warning: Can't call the assembler, error arg1 switching to external assembling]
+\item [Error: Error while assembling exitcode arg1]
+\item [Error: Can't call the assembler, error arg1 switching to external assembling]
 \item [Info: Assembling arg1]
 \item [Info: Assembling arg1]
 \item [Info: Assembling smartlink arg1]
 \item [Info: Assembling smartlink arg1]
 \item [Warning: Object arg1 not found, Linking may fail !]
 \item [Warning: Object arg1 not found, Linking may fail !]
 \item [Warning: Library arg1 not found, Linking may fail !]
 \item [Warning: Library arg1 not found, Linking may fail !]
-\item [Warning: Error while linking]
-\item [Warning: Can't call the linker, switching to external linking]
+\item [Error: Error while linking]
+\item [Error: Can't call the linker, switching to external linking]
 \item [Info: Linking arg1]
 \item [Info: Linking arg1]
-\item [Warning: Util arg1 not found, switching to external linking]
+\item [Error: Util arg1 not found, switching to external linking]
 \item [Using util arg1]
 \item [Using util arg1]
 \item [Error: Creation of Executables not supported]
 \item [Error: Creation of Executables not supported]
 \item [Error: Creation of Dynamic/Shared Libraries not supported]
 \item [Error: Creation of Dynamic/Shared Libraries not supported]
 \item [Info: Closing script arg1]
 \item [Info: Closing script arg1]
-\item [Warning: resource compiler not found, switching to external mode]
+\item [Error: resource compiler not found, switching to external mode]
 \item [Info: Compiling resource arg1]
 \item [Info: Compiling resource arg1]
 \item [unit arg1 can't be static linked, switching to smart linking]
 \item [unit arg1 can't be static linked, switching to smart linking]
 \item [unit arg1 can't be smart linked, switching to static linking]
 \item [unit arg1 can't be smart linked, switching to static linking]
@@ -1313,7 +1350,7 @@
  This unit file was compiled for a different processor type, and
  This unit file was compiled for a different processor type, and
  cannot be read
  cannot be read
 \item [PPU is compiled for an other target]
 \item [PPU is compiled for an other target]
- This unit file was compiled for a different processor type, and
+ This unit file was compiled for a different target, and
  cannot be read
  cannot be read
 \item [PPU Source: arg1]
 \item [PPU Source: arg1]
  When you use the \var{-vu} flag, the unit CRC check is shown.
  When you use the \var{-vu} flag, the unit CRC check is shown.
@@ -1345,6 +1382,9 @@
 \item [Fatal: Can't compile unit arg1, no sources available]
 \item [Fatal: Can't compile unit arg1, no sources available]
  A unit was found that needs to be recompiled, but no sources are
  A unit was found that needs to be recompiled, but no sources are
  available.
  available.
+\item [Warning: Can't recompile unit arg1, but found modifed include files]
+ A unit was found to have modified include files, but
+ some source files were not found, so recompilation is impossible.
 \item [Fatal: Can't find unit arg1]
 \item [Fatal: Can't find unit arg1]
  You tried to use a unit of which the PPU file isn't found by the
  You tried to use a unit of which the PPU file isn't found by the
  compiler. Check your config files for the unit pathes
  compiler. Check your config files for the unit pathes
@@ -1400,6 +1440,7 @@
  the same conditionals are set for the recompiliation. The compiler has
  the same conditionals are set for the recompiliation. The compiler has
  found a conditional that was used the last time the unit was compiled, but
  found a conditional that was used the last time the unit was compiled, but
  the conditional is currently not defined.
  the conditional is currently not defined.
+\item [Hint: File arg1 is newer than Release PPU file arg2]
  \end{description}
  \end{description}
 
 
  \section{Command-line handling errors}
  \section{Command-line handling errors}
@@ -1426,7 +1467,7 @@
  You can only nest up to 16 config files.
  You can only nest up to 16 config files.
 \item [Fatal: Unable to open file arg1]
 \item [Fatal: Unable to open file arg1]
  The option file cannot be found.
  The option file cannot be found.
-\item [Note: Reading further options from arg1]
+\item [Reading further options from arg1]
  Displayed when you have notes turned on, and the compiler switches
  Displayed when you have notes turned on, and the compiler switches
  to another options file.
  to another options file.
 \item [Warning: Target is already set to: arg1]
 \item [Warning: Target is already set to: arg1]
@@ -1468,4 +1509,5 @@
  The assembler output selected can not generate
  The assembler output selected can not generate
  object files with the correct format. Therefore, the
  object files with the correct format. Therefore, the
  default assembler for this target is used instead.
  default assembler for this target is used instead.
+\item [*** press enter ***]
 \end{description}
 \end{description}