From d802842ecf6401ae806e1894bc7ae568d63b8e17 Mon Sep 17 00:00:00 2001 From: michael Date: Fri, 17 Apr 2015 12:19:13 +0000 Subject: [PATCH] =?UTF-8?q?*=20Committed=20working=20patches=20to=20error?= =?UTF-8?q?=20message=20files=20from=20St=C3=A9phane=20Aulery?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: trunk@30617 - --- compiler/msg/errorda.msg | 1470 ++++++++++++++++++++++++++++++++++- compiler/msg/errordu.msg | 59 +- compiler/msg/errores.msg | 1545 +++++++++++++++++++++++++++++++++++-- compiler/msg/errorfi.msg | 1475 +++++++++++++++++++++++++++++++++-- compiler/msg/errorheu.msg | 1206 ++++++++++++++++++++++++++++- compiler/msg/errorid.msg | 1259 ++++++++++++++++++++++++++++-- compiler/msg/errorn.msg | 1459 ++++++++++++++++++++++++++++++++-- compiler/msg/errorptu.msg | 523 ++++++++++++- compiler/msg/errorru.msg | 967 ++++++++++++++++++++++- compiler/msg/errorues.msg | 1545 +++++++++++++++++++++++++++++++++++-- 10 files changed, 11141 insertions(+), 367 deletions(-) diff --git a/compiler/msg/errorda.msg b/compiler/msg/errorda.msg index cef8bcb45a..57d33c19ff 100644 --- a/compiler/msg/errorda.msg +++ b/compiler/msg/errorda.msg @@ -1,3 +1,5 @@ +%%% Reordering of errorda.msg respective to errore.msg +%%% Contains all comments from errorda.msg #$ # $Id: errorda.msg 621 2006-07-02 15:44:03Z chrivers # This file is part of the Free Pascal Compiler @@ -129,6 +131,32 @@ general_f_compilation_aborted=01018_F_Compilering afbrudt % reserved words, strings, etc. It also takes care of directives and % conditional compiling handling. % \begin{description} +general_text_bytes_code=01019_bytes code +% The size of the generated executable code, in bytes. +general_text_bytes_data=01020_bytes data +% The size of the generated program data, in bytes. +general_i_number_of_warnings=01021_I_$1 warning(s) issued +% Total number of warnings issued during compilation. +general_i_number_of_hints=01022_I_$1 hint(s) issued +% Total number of hints issued during compilation. +general_i_number_of_notes=01023_I_$1 note(s) issued +% Total number of notes issued during compilation. +general_f_ioerror=01024_F_I/O error: $1 +% During compilation an I/O error happened which allows no further compilation. +general_f_oserror=01025_F_Operating system error: $1 +% During compilation an operating system error happened which allows no further compilation. +% \end{description} +# +# Scanner +# +# 02098 is the last used one +# +% \section{Scanner messages.} +% This section lists the messages that the scanner emits. The scanner takes +% care of the lexical structure of the pascal file, i.e. it tries to find +% reserved words, strings, etc. It also takes care of directives and +% conditional compilation handling. +% \begin{description} scan_f_end_of_file=02000_F_Slutning af fil fundet mod forventning % this typically happens in one of the following cases : % \begin{itemize} @@ -348,6 +376,83 @@ scan_n_app_type_not_support=02073_N_APPTYPE understøttes ikke af mål-operativs % semantics of you language, i.e. it determines if your pascal constructs % are correct. % \begin{description} +scan_e_illegal_optimization_specifier=02074_E_Illegal optimization specified "$1" +% You specified an optimization with the \var{\{\$OPTIMIZATION xxx\}} directive, +% and the compiler didn't recognize the optimization you specified. +scan_w_setpeflags_not_support=02075_W_SETPEFLAGS is not supported by the target OS +% The \var{\{\$SETPEFLAGS\}} directive is not supported by the target OS. +scan_w_imagebase_not_support=02076_W_IMAGEBASE is not supported by the target OS +% The \var{\{\$IMAGEBASE\}} directive is not supported by the target OS. +scan_w_minstacksize_not_support=02077_W_MINSTACKSIZE is not supported by the target OS +% The \var{\{\$MINSTACKSIZE\}} directive is not supported by the target OS. +scan_w_maxstacksize_not_support=02078_W_MAXSTACKSIZE is not supported by the target OS +% The \var{\{\$MAXSTACKSIZE\}} directive is not supported by the target OS. +scanner_e_illegal_warn_state=02079_E_Illegal state "$1" for $WARN directive +% Only ON and OFF can be used as state with a \var{\{\$WARN\}} compiler directive. +scan_e_only_packset=02080_E_Illegal set packing value +% Only 0, 1, 2, 4, 8, DEFAULT and NORMAL are allowed as packset parameters. +scan_w_pic_ignored=02081_W_PIC directive or switch ignored +% Several targets, such as \windows, do not support nor need PIC, +% so the PIC directive and switch are ignored. +scan_w_unsupported_switch_by_target=02082_W_The switch "$1" is not supported by the currently selected target +% Some compiler switches like \$E are not supported by all targets. +scan_w_frameworks_darwin_only=02084_W_Framework-related options are only supported for Darwin/Mac OS X +% Frameworks are not a known concept, or at least not supported by FPC, +% on operating systems other than Darwin/Mac OS X. +scan_e_illegal_minfpconstprec=02085_E_Illegal minimal floating point constant precision "$1" +% Valid minimal precisions for floating point constants are default, 32 and 64, +% which mean respectively minimal (usually 32 bit), 32 bit and 64 bit precision. +scan_w_multiple_main_name_overrides=02086_W_Overriding name of "main" procedure multiple times, was previously set to "$1" +% The name for the main entry procedure is specified more than once. Only the last +% name will be used. +scanner_w_illegal_warn_identifier=02087_W_Illegal identifier "$1" for $WARN directive +% Identifier is not known by a \var{\{\$WARN\}} compiler directive. +scanner_e_illegal_alignment_directive=02088_E_Illegal alignment directive +% The alignment directive is not valid. Either the alignment type is not known or the alignment +% value is not a power of two. +scanner_f_illegal_utf8_bom=02089_F_It is not possible to include a file that starts with an UTF-8 BOM in a module that uses a different code page +% All source code that is part of a single compilation entity (program, library, unit) must be encoded +% in the same code page +scanner_w_directive_ignored_on_target=02090_W_Directive "$1" is ignored for the current target platform +% Some directives are ignored for certain targets, such as changing the +% packrecords and packenum settings on managed platforms. +scan_w_unavailable_system_codepage=02091_W_Current system codepage "$1" is not available for the compiler. Switching default codepage back to "$2". +% The current system codepage is not known by the compiler. +% The compiler is compiled with support for several codepages built-in. +% The codepage of the operation system is not in that list. You will need to recompile +% the compiler with support for this codepage. +scan_w_setpeoptflags_not_support=02092_W_SETPEOPTFLAGS is not supported by the target OS +% The \var{\{\$SETPEOPTFLAGS\}} directive is not supported by the target OS. +scan_e_illegal_peflag=02093_E_Illegal argument for SETPEFLAGS +% The given argument for SETPEFLAGS is neither a correct named value nor an +% ordinal value +scan_e_illegal_peoptflag=02094_E_Illegal argument for SETPEOPTFLAGS +% The given argument for SETPEOPTFLAGS is neither a correct named value nor an +% ordinal value +scan_e_unsupported_switch=02095_E_Directive $1 is not supported on this target +% Not all compiler directives are supported on all targets. +scan_w_invalid_stacksize=02096_W_The specified stack size is not within the valid range for the platform. Setting the stack size ignored. +% The valid range for the stack size is 1024 - 67107839 on 32-bit and 64-bit +% platforms and 1024 - 65520 on 16-bit platforms. Additionally, for Turbo Pascal 7 +% compatibility reasons, specifying a stack size of 65521 on 16-bit platforms +% actually sets the stack size to 65520. +scan_w_heapmax_lessthan_heapmin=02097_W_The specified HeapMax value is smaller than the HeapMin value. Setting HeapMax ignored. +% The HeapMax value (if specified) must be greater than or equal to the HeapMin +% value. Otherwise, the HeapMax value is ignored. +scan_e_illegal_hugepointernormalization=02098_E_Illegal argument for HUGEPOINTERNORMALIZATION +% The only allowed values for HUGEPOINTERNORMALIZATION are BORLANDC, MICROSOFTC +% and WATCOMC. +% \end{description} +# +# Parser +# +# 03339 is the last used one +# +% \section{Parser messages} +% This section lists all parser messages. The parser takes care of the +% semantics of you language, i.e. it determines if your Pascal constructs +% are correct. +% \begin{description} parser_e_syntax_error=03000_E_Parser - syntaxfejl % An error against the Turbo Pascal language was encountered. This happens % typically when an illegal character is found in the sources file. @@ -365,6 +470,7 @@ parser_e_export_ordinal_double=03009_E_Funktionsindex $1 er angivet flere gange parser_e_export_invalid_index=03010_E_Ugyldigt index for eksporteret funktion % DLL function index must be in the range \var{1..\$FFFF} parser_w_parser_reloc_no_debug=03011_W_Relokérbar DLL eller program $1 har ikke-fungerende debug-info. Slået fra. +% It is currently not possible to include debug information in a relocatable DLL. parser_w_parser_win32_debug_needs_WN=03012_W_For at tillade debugging i win32-kode, skal relokérbarhed slås fra med -WN % Stabs info is wrong for relocatable DLL or EXES use -WN % if you want to debug win32 executables. @@ -488,7 +594,7 @@ parser_e_fail_only_in_constructor=03051_E_FAIL kan kun bruges i en constructor parser_e_no_paras_for_destructor=03052_E_En destructor kan ikke have parametre % You are declaring a destructor with a parameter list. Destructor methods % cannot have parameters. -parser_e_only_class_methods_via_class_ref=03053_E_Kun klassemetoder kan refereres med en klassereference +parser_e_only_class_members_via_class_ref=03053_E_Only class methods, class properties and class variables can be referred with class references % This error occurs in a situation like the following: % \begin{verbatim} % Type : @@ -502,9 +608,9 @@ parser_e_only_class_methods_via_class_ref=03053_E_Kun klassemetoder kan referere % \end{verbatim} % \var{Free} is not a class method and hence cannot be called with a class % reference. -parser_e_only_class_methods=03054_E_Kun klassemetoder kan tilgås i klassemetoder +parser_e_only_class_members=03054_E_Only class methods, class properties and class variables can be accessed in class methods % This is related to the previous error. You cannot call a method of an object -% from a inside a class method. The following code would produce this error: +% from inside a class method. The following code would produce this error: % \begin{verbatim} % class procedure tobject.x; % @@ -640,22 +746,14 @@ parser_e_mix_of_classes_and_objects=03093_E_Det er ikke gyldigt at blande forske % a class cannot have an object as parent and vice versa. parser_w_unknown_proc_directive_ignored=03094_W_Ukendt procedure-direktev blev ignoreret: "$1" % The procedure directive you specified is unknown. -parser_e_absolute_only_one_var=03095_E_Absolute kan kun associere én variabel -% You cannot specify more than one variable before the \var{absolute} directive. -% Thus, the following construct will provide this error: +parser_e_directive_only_one_var=03095_E_$1 can be associated with only one variable +% You cannot specify more than one variable before the \var{absolute}, \var{export}, \var{external}, +% \var{weakexternal}, \var{public} and \var{cvar} directives. +% As a result, for example the following construct will provide this error: % \begin{verbatim} % Var Z : Longint; % X,Y : Longint absolute Z; % \end{verbatim} -% \item [ absolute can only be associated a var or const ] -% The address of a \var{absolute} directive can only point to a variable or a -% typed constant. Therefore, the following code will produce this error: -% \begin{verbatim} -% Procedure X; -% -% var p : longint absolute x; -% \end{verbatim} -% parser_e_absolute_only_to_var_or_const=03096_E_Absolute kan kun associeres med én variabel eller konstant % The address of a \var{absolute} directive can only point to a variable or % constant. Therefore, the following code will produce this error: @@ -743,7 +841,7 @@ parser_e_function_already_declared_public_forward=03120_E_Funktionen "$1" er all % declaration in the \var{implmentation} section. parser_e_not_external_and_export=03121_E_Kan ikke bruge både EXPORT og EXTERNAL % These two procedure directives are mutually exclusive -parser_H_not_supported_for_inline=03123_H_Deklarationen "$1" er endnu ikke understøttet i inline procedurer/funktioner +parser_h_not_supported_for_inline=03123_H_Deklarationen "$1" er endnu ikke understøttet i inline procedurer/funktioner % Inline procedures don't support this declaration. parser_h_inlining_disabled=03124_H_Inlining slået fra % Inlining of procedures is disabled. @@ -837,10 +935,10 @@ parser_e_ill_property_storage_sym=03155_E_Dette symbol er ikke tilladt som stora % You can't use this type of symbol as storage specifier in property % declaration. You can use only methods with the result type boolean, % boolean class fields or boolean constants -parser_e_only_publishable_classes_can__be_published=03156_E_Kun klasser der er kompileret i med {$M+}-indstillingen kan bruge published -% In the published section of a class can be only class as fields used which -% are compiled in \var{\{\$M+\}} or which are derived from such a class. Normally -% such a class should be derived from TPersitent +parser_e_only_publishable_classes_can_be_published=03156_E_Only classes which are compiled in $M+ mode can be published +% A class-typed field in the published section of a class can only be a class which was +% compiled in \var{\{\$M+\}} or which is derived from such a class. Normally +% such a class should be derived from \var{TPersistent}. parser_e_proc_directive_expected=03157_E_Procedure-direktiv forventet % When declaring a procedure in a const block you used a ; after the % procedure declaration after which a procedure directive must follow. @@ -870,7 +968,14 @@ parser_e_no_export_with_index_for_target=03163_E_Kan ikke eksportere med index u parser_e_no_export_of_variables_for_target=03164_E_Eksport af variabler ikke understøttet af målsystemet $1 % Exporting of variables is not supported on this target. parser_e_improper_guid_syntax=03165_E_Ugyldig GUID-syntax +% The GUID indication does not have the proper syntax. It should be of the form +% \begin{verbatim} +% {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} +% \end{verbatim} +% Where each \var{X} represents a hexadecimal digit. parser_w_interface_mapping_notfound=03168_W_En procedure kaldet $1 der kan implementere $2 blev ikke fundet. $3 +% The compiler cannot find a suitable procedure which implements the given method of an interface. +% A procedure with the same name is found, but the arguments do not match. parser_e_interface_id_expected=03169_E_Interface-navn krævet % This happens when the compiler scans a \var{class} declaration that contains % \var{interface} function name mapping code like this: @@ -928,7 +1033,17 @@ parser_e_no_procvarobj_const=03183_E_Konstanter af typen "procedure of object" k % 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). parser_e_default_value_only_one_para=03184_E_Default-værdi kan kun tildeles én parameter +% It is not possible to specify a default value for several parameters at once. +% The following is invalid: +% \begin{verbatim} +% Procedure MyProcedure (A,B : Integer = 0); +% \end{verbatim} +% Instead, this should be declared as +% \begin{verbatim} +% Procedure MyProcedure (A : Integer = 0; B : Integer = 0); +% \end{verbatim} parser_e_default_value_expected_for_para=03185_E_Default-værdi krævet for parameter "$1" +% The specified parameter requires a default value. parser_w_unsupported_feature=03186_W_Feature ikke understøttet % You're trying to force the compiler into doing something it cannot do yet. parser_h_c_arrays_are_references=03187_H_C-arrays videregives som reference @@ -1066,6 +1181,422 @@ parser_w_overridden_methods_not_same_ret=03218_W_Metoder med "override" skal hav % This section lists all errors that can occur when type checking is % performed. % \begin{description} +parser_e_dispid_must_be_ord_const=03219_E_Dispatch IDs must be ordinal constants +% The \var{dispid} keyword must be followed by an ordinal constant (the dispid index). +parser_e_array_range_out_of_bounds=03220_E_The range of the array is too large +% Regardless of the size taken up by its elements, an array cannot have more +% than high(ptrint) elements. Additionally, the range type must be a subrange +% of ptrint. +parser_e_packed_element_no_var_addr=03221_E_The address cannot be taken of bit packed array elements and record fields +% If you declare an array or record as \var{packed} in Mac Pascal mode +% (or as \var{packed} in any mode with \var{\{\$bitpacking on\}}), it will +% be packed at the bit level. This means it becomes impossible to take addresses +% of individual array elements or record fields. The only exception to this rule +% is in the case of packed arrays elements whose packed size is a multiple of 8 bits. +parser_e_packed_dynamic_open_array=03222_E_Dynamic arrays cannot be packed +% Only regular (and possibly in the future also open) arrays can be packed. +parser_e_packed_element_no_loop=03223_E_Bit packed array elements and record fields cannot be used as loop variables +% If you declare an array or record as \var{packed} in Mac Pascal mode +% (or as \var{packed} in any mode with \var{\{\$bitpacking on\}}), it will +% be packed at the bit level. For performance reasons, they cannot be +% used as loop variables. +parser_e_type_var_const_only_in_records_and_classes=03224_E_VAR, TYPE and CONST are allowed only in records, objects and classes +% The usage of VAR, TYPE and CONST to declare new types inside an object is allowed only inside +% records, objects and classes. +parser_e_cant_create_generics_of_this_type=03225_E_This type cannot be a generic +% Only Classes, Objects, Interfaces and Records are allowed to be used as generic. +parser_w_no_lineinfo_use_switch=03226_W_Don't load LINEINFO unit manually, Use the -gl compiler switch instead +% Do not use the \file{lineinfo} unit directly, Use the \var{-gl} switch which +% automatically adds the correct unit for reading the selected type of debugging +% information. The unit that needs to be used depends on the type of +% debug information used when compiling the binary. +parser_e_no_funcret_specified=03227_E_No function result type specified for function "$1" +% The first time you declare a function you have to declare it completely, +% including all parameters and the result type. +parser_e_special_onlygenerics=03228_E_Specialization is only supported for generic types +% Types which are not generics cannot be specialized. +parser_e_no_generics_as_params=03229_E_Generics cannot be used as parameters when specializing generics +% When specializing a generic, only non-generic types can be used as parameters. +parser_e_type_object_constants=03230_E_Constants of objects containing a VMT are not allowed +% If an object requires a VMT either because it contains a constructor or virtual methods, +% it's not allowed to create constants of it. In TP and Delphi mode this is allowed +% for compatibility reasons. +parser_e_label_outside_proc=03231_E_Taking the address of labels defined outside the current scope isn't allowed +% It isn't allowed to take the address of labels outside the +% current procedure. +parser_e_initialized_not_for_external=03233_E_Cannot initialize variables declared as external +% Variables declared as external cannot be initialized with a default value. +parser_e_illegal_function_result=03234_E_Illegal function result type +% Some types like file types cannot be used as function result. +parser_e_no_common_type=03235_E_No common type possible between "$1" and "$2" +% To perform an operation on integers, the compiler converts both operands +% to their common type, which appears to be an invalid type. To determine the +% common type of the operands, the compiler takes the minimum of the minimal values +% of both types, and the maximum of the maximal values of both types. The common +% type is then minimum..maximum. +parser_e_no_generics_as_types=03236_E_Generics without specialization cannot be used as a type for a variable +% Generics must be always specialized before being used as variable type. +parser_w_register_list_ignored=03237_W_Register list is ignored for pure assembler routines +% When using pure assembler routines, the list with modified registers is ignored. +parser_e_implements_must_be_class_or_interface=03238_E_Implements property must have class or interface type +% A property which implements an interface must be of type class or interface. +parser_e_implements_must_have_correct_type=03239_E_Implements-property must implement interface of correct type, found "$1" expected "$2" +% A property which implements an interface actually implements a different interface. +parser_e_implements_must_read_specifier=03240_E_Implements-property must have read specifier +% A property which implements an interface must have at least a read specifier. +parser_e_implements_must_not_have_write_specifier=03241_E_Implements-property must not have write-specifier +% A property which implements an interface may not have a write specifier. +parser_e_implements_must_not_have_stored_specifier=03242_E_Implements-property must not have stored-specifier +% A property which implements an interface may not have a stored specifier. +parser_e_implements_uses_non_implemented_interface=03243_E_Implements-property used on unimplemented interface: "$1" +% The interface which is implemented by a property is not an interface implemented by the class. +parser_e_unsupported_real=03244_E_Floating point not supported for this target +% The compiler parsed a floating point expression, but it is not supported. +parser_e_class_doesnt_implement_interface=03245_E_Class "$1" does not implement interface "$2" +% The delegated interface is not implemented by the class given in the implements clause. +parser_e_class_implements_must_be_interface=03246_E_Type used by implements must be an interface +% The \var{implements} keyword must be followed by an interface type. +parser_e_cant_export_var_different_name=03247_E_Variables cannot be exported with a different name on this target, add the name to the declaration using the "export" directive (variable name: $1, declared export name: $2) +% On most targets it is not possible to change the name under which a variable +% is exported inside the \var{exports} statement of a library. +% In that case, you have to specify the export name at the point where the +% variable is declared, using the \var{export} and \var{alias} directives. +parser_e_weak_external_not_supported=03248_E_Weak external symbols are not supported for the current target +% A "weak external" symbol is a symbol which may or may not exist at (either static +% or dynamic) link time. This concept may not be available (or implemented yet) +% on the current cpu/OS target. +parser_e_forward_mismatch=03249_E_Forward type definition does not match +% Classes and interfaces being defined forward must have the same type +% when being implemented. A forward interface cannot be changed into a class. +parser_n_ignore_lower_visibility=03250_N_Virtual method "$1" has a lower visibility ($2) than parent class $3 ($4) +% The virtual method overrides an method that is declared with a higher visibility. This might give +% unexpected results. E.g., in case the new visibility is private then a call to ``inherited'' in a +% new child class will call the higher-visible method in a parent class and ignores the private method. +parser_e_field_not_allowed_here=03251_E_Fields cannot appear after a method or property definition, start a new visibility section first +% Once a method or property has been defined in a class or object, you cannot define any fields afterwards +% without starting a new visibility section (such as \var{public}, \var{private}, etc.). The reason is +% that otherwise the source code can appear ambiguous to the compiler, since it is possible to use modifiers +% such as \var{default} and \var{register} also as field names. +parser_e_no_local_para_def=03252_E_Parameters or result types cannot contain local type definitions. Use a separate type definition in a type block. +% In Pascal, types are not considered to be identical simply because they are semantically equivalent. +% Two variables or parameters are only considered to be of the same type if they refer to the +% same type definition. +% As a result, it is not allowed to define new types inside parameter lists, because then it is impossible to +% refer to the same type definition in the procedure headers of the interface and implementation of a unit +% (both procedure headers would define a separate type). Keep in mind that expressions such as +% ``file of byte'' or ``string[50]'' also define a new type. +parser_e_abstract_and_sealed_conflict=03253_E_ABSTRACT and SEALED conflict +% ABSTRACT and SEALED cannot be used together in one declaration +parser_e_sealed_descendant=03254_E_Cannot create a descendant of the sealed class "$1" +% Sealed means that class cannot be derived by another class. +parser_e_sealed_class_cannot_have_abstract_methods=03255_E_SEALED class cannot have an ABSTRACT method +% Sealed means that class cannot be derived. Therefore no one class is able to override an abstract method in a sealed class. +parser_e_only_virtual_methods_final=03256_E_Only virtual methods can be final +% You are declaring a method as final, when it is not declared to be +% virtual. +parser_e_final_can_no_be_overridden=03257_E_Final method cannot be overridden: "$1" +% You are trying to \var{override} a virtual method of a parent class that does +% not exist. +parser_e_multiple_messages=03258_E_Only one message can be used per method. +% It is not possible to associate multiple messages with a single method. +parser_e_invalid_enumerator_identifier=03259_E_Invalid enumerator identifier: "$1" +% Only "MoveNext" and "Current" enumerator identifiers are supported. +parser_e_enumerator_identifier_required=03260_E_Enumerator identifier required +% "MoveNext" or "Current" identifier must follow the \var{enumerator} modifier. +parser_e_enumerator_movenext_is_not_valid=03261_E_Enumerator MoveNext pattern method is not valid. Method must be a function with the Boolean return type and no required arguments. +% "MoveNext" enumerator pattern method must be a function with Boolean return type and no required arguments +parser_e_enumerator_current_is_not_valid=03262_E_Enumerator Current pattern property is not valid. Property must have a getter. +% "Current" enumerator pattern property must have a getter +parser_e_only_one_enumerator_movenext=03263_E_Only one enumerator MoveNext method is allowed per class/object +% Class or Object can have only one enumerator MoveNext declaration. +parser_e_only_one_enumerator_current=03264_E_Only one enumerator Current property is allowed per class/object +% Class or Object can have only one enumerator Current declaration. +parser_e_for_in_loop_cannot_be_used_for_the_type=03265_E_For in loop cannot be used for the type "$1" +% For in loop can be used not for all types. For example it cannot be used for the enumerations with jumps. +parser_e_objc_requires_msgstr=03266_E_Objective-C messages require their Objective-C selector name to be specified using the "message" directive. +% Objective-C messages require their Objective-C name (selector name) to be specified using the \var{message `someName:'} procedure directive. +% While bindings to other languages automatically generate such names based on the identifier you use (by replacing +% all underscores with colons), this is unsafe since nothing prevents an Objective-C method name to contain actual +% colons. +parser_e_objc_no_constructor_destructor=03267_E_Objective-C does not have formal constructors nor destructors. Use the alloc, initXXX and dealloc messages. +% The Objective-C language does not have any constructors or destructors. While there are some messages with a similar +% purpose (such as \var{init} and \var{dealloc}), these cannot be identified using automatic parsers and do not +% guarantee anything like Pascal constructors/destructors (e.g., you have to take care of only calling ``designated'' +% inherited ``constructors''). For these reasons, we have opted to follow the standard Objective-C patterns for +% instance creation/destruction. +parser_e_message_string_too_long=03268_E_Message name is too long (max. 255 characters) +% Due to compiler implementation reasons, message names are currently limited to 255 characters. +parser_e_objc_message_name_too_long=03269_E_Objective-C message symbol name for "$1" is too long +% Due to compiler implementation reasons, mangled message names (i.e., the symbol names used in the assembler +% code) are currently limited to 255 characters. +parser_h_no_objc_parent=03270_H_Defining a new Objective-C root class. To derive from another root class (e.g., NSObject), specify it as the parent class. +% If no parent class is specified for an Object Pascal class, then it automatically derives from TObject. +% Objective-C classes however do not automatically derive from NSObject, because one can have multiple +% root classes in Objective-C. For example, in the Cocoa framework both NSObject and NSProxy are root classes. +% Therefore, you have to explicitly define a parent class (such as NSObject) if you want to derive your +% Objective-C class from it. +parser_e_no_objc_published=03271_E_Objective-C classes cannot have published sections. +% In Object Pascal, ``published'' determines whether or not RTTI is generated. Since the Objective-C runtime always needs +% RTTI for everything, this specified does not make sense for Objective-C classes. +parser_f_need_objc=03272_F_This module requires an Objective-C mode switch to be compiled +% This error indicates the use of Objective-C language features without an Objective-C mode switch +% active. Enable one via the -M command line switch, or the {\$modeswitch x} directive. +parser_e_must_use_override=03273_E_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1) +parser_h_should_use_override=03274_H_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1). +% It is not possible to \var{reintroduce} methods in Objective-C or Java like in Object Pascal. Methods with the same +% name always map to the same virtual method entry. In order to make this clear in the source code, +% the compiler always requires the \var{override} directive to be specified when implementing overriding +% Objective-C or Java methods in Pascal. If the implementation is external, this rule is relaxed because Objective-C and Java +% do not have any \var{override}-style keyword (since it's the default and only behaviour in these languages), +% which makes it hard for automated header conversion tools to include it everywhere. +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory in case of Objective-C. +parser_e_objc_message_name_changed=03275_E_Message name "$1" in inherited class is different from message name "$2" in current class. +% An overriding Objective-C method cannot have a different message name than an inherited method. The reason +% is that these message names uniquely define the message to the Objective-C runtime, which means that +% giving them a different message name breaks the ``override'' semantics. +parser_e_unique_unsupported=03276_E_It is not yet possible to make unique copies of Objective-C or Java types +% Duplicating an Objective-C or Java type using \var{type x = type y;} is not yet supported. You may be able to +% obtain the desired effect using \var{type x = objcclass(y) end;} resp.{} \var{type x = class(y) end;} instead. +parser_e_no_category_as_types=03277_E_Objective-C categories and Object Pascal class helpers cannot be used as types +% It is not possible to declare a variable as an instance of an Objective-C +% category or an Object Pascal class helper. A category/class helper adds +% methods to the scope of an existing class, but does not define a type by +% itself. An exception of this rule is when inheriting an Object Pascal class +% helper from another class helper. +parser_e_no_category_override=03278_E_Categories do not override, but replace methods. Use "reintroduce" instead. +parser_e_must_use_reintroduce_objc=03279_E_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +parser_h_should_use_reintroduce_objc=03280_H_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +% A category replaces an existing method in an Objective-C class, rather than that it overrides it. +% Calling an inherited method from an category method will call that method in +% the extended class' parent, not in the extended class itself. The +% replaced method in the original class is basically lost, and can no longer be +% called or referred to. This behaviour corresponds somewhat more closely to +% \var{reintroduce} than to \var{override} (although in case of \var{reintroduce} +% in Object Pascal, hidden methods are still reachable via inherited). +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory. +parser_e_implements_getter_not_default_cc=03281_E_Getter for implements interface must use the target's default calling convention. +% Interface getters are called via a helper in the run time library, and hence +% have to use the default calling convention for the target (\var{register} on +% i386 and x86\_64, \var{stdcall} on other architectures). +parser_e_no_refcounted_typed_file=03282_E_Typed files cannot contain reference-counted types. +% The data in a typed file cannot be of a reference counted type (such as +% \var{ansistring} or a record containing a field that is reference counted). +parser_e_operator_not_overloaded_2=03283_E_Operator is not overloaded: $2 "$1" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_operator_not_overloaded_3=03284_E_Operator is not overloaded: "$1" $2 "$3" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_more_array_elements_expected=03285_E_Expected another $1 array elements +% When declaring a typed constant array, you provided to few elements to initialize the array +parser_e_string_const_too_long=03286_E_String constant too long while ansistrings are disabled +% Only when a piece of code is compiled with ansistrings enabled (\var{\{\$H+\}}), string constants +% longer than 255 characters are allowed. +parser_e_invalid_univ_para=03287_E_Type cannot be used as univ parameter because its size is unknown at compile time: "$1" +% \var{univ} parameters are compatible with all values of the same size, but this +% cannot be checked in case a parameter's size is unknown at compile time. +parser_e_only_one_class_constructor_allowed=03288_E_Only one class constructor can be declared in class: "$1" +% You are trying to declare more than one class constructor but only one class constructor can be declared. +parser_e_only_one_class_destructor_allowed=03289_E_Only one class destructor can be declared in class: "$1" +% You are trying to declare more than one class destructor but only one class destructor can be declared. +parser_e_no_paras_for_class_constructor=03290_E_Class constructors cannot have parameters +% You are declaring a class constructor with a parameter list. Class constructor methods +% cannot have parameters. +parser_e_no_paras_for_class_destructor=03291_E_Class destructors cannot have parameters +% You are declaring a class destructor with a parameter list. Class destructor methods +% cannot have parameters. +parser_f_modeswitch_objc_required=03292_F_This construct requires the \{\$modeswitch objectivec1\} mode switch to be active +% Objective-Pascal constructs are not supported when \{\$modeswitch ObjectiveC1\} +% is not active. +parser_e_widestring_to_ansi_compile_time=03293_E_Unicodechar/string constants cannot be converted to ansi/shortstring at compile-time +% It is not possible to use unicodechar and unicodestring constants in +% constant expressions that have to be converted into an ansistring or shortstring +% at compile time, for example inside typed constants. The reason is that the +% compiler cannot know what the actual ansi encoding will be at run time. +parser_e_objc_enumerator_2_0=03294_E_For-in Objective-Pascal loops require \{\$modeswitch ObjectiveC2\} to be active +% Objective-C ``fast enumeration'' support was added in Objective-C 2.0, and +% hence the appropriate modeswitch has to be activated to expose this feature. +% Note that Objective-C 2.0 programs require Mac OS X 10.5 or later. +parser_e_objc_missing_enumeration_defs=03295_E_The compiler cannot find the NSFastEnumerationProtocol or NSFastEnumerationState type in the CocoaAll unit +% Objective-C for-in loops (fast enumeration) require that the compiler can +% find a unit called CocoaAll that contains definitions for the +% NSFastEnumerationProtocol and NSFastEnumerationState types. If you get this +% error, most likely the compiler is finding and loading an alternate CocoaAll +% unit. +parser_e_no_procvarnested_const=03296_E_Typed constants of the type 'procedure is nested' can only be initialized with NIL and global procedures/functions +% A nested procedural variable consists of two components: the address of the +% procedure/function to call (which is always known at compile time), and also +% a parent frame pointer (which is never known at compile time) in case the +% procedural variable contains a reference to a nested procedure/function. +% Therefore such typed constants can only be initialized with global +% functions/procedures since these do not require a parent frame pointer. +parser_f_no_generic_inside_generic=03297_F_Declaration of generic class inside another generic class is not allowed +% At the moment, scanner supports recording of only one token buffer at the time +% (guarded by internal error 200511173 in tscannerfile.startrecordtokens). +% Since generics are implemented by recording tokens, it is not possible to +% have declaration of generic class inside another generic class. +parser_e_forward_intf_declaration_must_be_resolved=03298_E_Forward declaration "$1" must be resolved before a class can conform to or implement it +% An Objective-C protocol or Java Interface must be fully defined before classes can conform to it. +% This error occurs in the following situation (example for Objective-C, but the same goes for Java interfaces): +% \begin{verbatim} +% Type MyProtocol = objcprotoocl; +% ChildClass = Class(NSObject,MyProtocol) +% ... +% end; +% \end{verbatim} +% where \var{MyProtocol} is declared but not defined. +parser_e_no_record_published=03299_E_Record types cannot have published sections +% Published sections can be used only inside classes. +parser_e_no_destructor_in_records=03300_E_Destructors are not allowed in records or helpers +% Destructor declarations are not allowed in records or helpers. +parser_e_class_methods_only_static_in_records=03301_E_Class methods must be static in records +% Class methods declarations are not allowed in records without static modifier. +% Records have no inheritance and therefore non static class methods have no sense for them. +parser_e_no_parameterless_constructor_in_records=03302_E_Parameterless constructors are not allowed in records or record/type helpers +% Constructor declarations with no arguments are not allowed in records or record/type helpers. +parser_e_at_least_one_argument_must_be_of_type=03303_E_Either the result or at least one parameter must be of type "$1" +% It is required that either the result of the routine or at least one of its parameters be of the specified type. +% For example class operators either take an instance of the structured type in which they are defined, or they return one. +parser_e_cant_use_type_parameters_here=03304_E_Type parameters may require initialization/finalization - cannot be used in variant records +% Type parameters may be specialized with types which (e.g. \var{ansistring}) need initialization/finalization +% code which is implicitly generated by the compiler. +parser_e_externals_no_section=03305_E_Variables being declared as external cannot be in a custom section +% A section directive is not valid for variables being declared as external. +parser_e_section_no_locals=03306_E_Non-static and non-global variables cannot have a section directive +% A variable placed in a custom section is always statically allocated so it must be either a static or global variable. +parser_e_not_allowed_in_helper=03307_E_"$1" is not allowed in helper types +% Some directives and specifiers like "virtual", "dynamic", "override" are not +% allowed inside helper types in mode ObjFPC (they are ignored in mode Delphi), +% because they have no meaning within helpers. Also "abstract" isn't allowed in +% either mode. +parser_e_no_class_constructor_in_helpers=03308_E_Class constructors are not allowed in helpers +% Class constructor declarations are not allowed in helpers. +parser_e_inherited_not_in_record=03309_E_The use of "inherited" is not allowed in a record +% As records don't support inheritance the use of "inherited" is prohibited for +% these as well as for record helpers (in mode "Delphi" only). +parser_e_no_types_in_local_anonymous_records=03310_E_Type declarations are not allowed in local or anonymous records +% Records with types must be defined globally. Types cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_duplicate_implements_clause=03311_E_Duplicate implements clause for interface "$1" +% A class may delegate an interface using the "implements" clause only to a single property. Delegating it multiple times +% is a error. +parser_e_mapping_no_implements=03312_E_Interface "$1" cannot be delegated by "$2", it already has method resolutions +% Method resolution clause maps a method of an interface to a method of the current class. Therefore the current class +% has to implement the interface directly. Delegation is not possible. +parser_e_implements_no_mapping=03313_E_Interface "$1" cannot have method resolutions, "$2" already delegates it +% Method resolution is only possible for interfaces that are implemented directly, not by delegation. +parser_e_invalid_codepage=03314_E_Invalid codepage +% When declaring a string with a given codepage, the range of valid codepages values is limited +% to 0 to 65535. +parser_e_final_only_const_var=03315_E_Only fields (var-sections) and constants can be final in object types +% A final (class) field must be assigned a single value in the (class) constructor, and cannot +% be overwritten afterwards. A final (typed) constant is read-only. +parser_e_final_only_external=03316_E_Final fields are currently only supported for external classes +% Support for final fields in non-external classes requires a full data flow +% analysis implementation in FPC, which it currently still lacks. +parser_e_no_typed_const=03317_E_Typed constants are not allowed here, only formal constants are +% Java interfaces define a namespace in which formal constant can be defined, +% but since they define no storage it is not possible to define typed constants +% in them (those are more or less the same as initialised class fields). +parser_e_java_no_inherited_constructor=03318_E_Constructors are not automatically inherited in the JVM; explicitly add a constructor that calls the inherited one if you need it +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% For compatibility with external Java code, FPC does the same. If you require access to the same +% constructors in a child class, define them in the child class and call the inherited one from +% there. +parser_d_internal_parser_string=03319_D_Parsing internally generated code: $1 +% The compiler sometimes internally constructs Pascal code that is subsequently +% injected into the program. These messages display such code, in order to help +% with debugging errors in them. +parser_e_feature_unsupported_for_vm=03320_E_This language feature is not supported on managed VM targets +% Certain language features are not supported on targets that are managed virtual machines. +parser_e_jvm_invalid_virtual_constructor_call=03321_E_Calling a virtual constructor for the current instance inside another constructor is not possible on the JVM target +% The JVM does not natively support virtual constructor. Unforunately, we are not aware of a way to +% emulate them in a way that makes it possible to support calling virtual constructors +% for the current instance inside another constructor. +parser_e_method_lower_visibility=03322_E_Overriding method "$1" cannot have a lower visibility ($2) than in parent class $3 ($4) +% The JVM does not allow lowering the visibility of an overriding method. +parser_e_nostackframe_without_assembler=03323_E_Procedure/Function declared with call option NOSTACKFRAME but without ASSEMBLER +% nostackframe call modifier is supposed to be used in conjunction with assembler. +parser_e_nostackframe_with_locals=03324_E_Procedure/Function declared with call option NOSTACKFRAME but local stack size is $1 +% nostackframe call modifier used without assembler modifier +% might still generate local stack needs. +parser_e_cannot_generate_property_getter_setter=03325_E_Cannot generate property getter/setter $1 because its name clashes with existing identifier $2 +% Automatically generated getters/setters cannot have the same name as existing +% identifiers, because this may change the behaviour of existing code. +parser_w_overriding_property_getter_setter=03326_W_Automatically generated property getter/setter $1 overrides the same-named getter/setter in class $2 +% Automatically generated property getters/setters on the JVM platform are virtual methods, because +% the JVM does not support non-virtual methods that can be changed in child classes. This means +% that if a child class changes an inherited property definition, the behaviour of that property +% can change compared to native targets since even if a variable is declared as the parent type, +% by calling the virtual method the getter from the child will be used. This is different from +% the behaviour on native targets or when not activating automatically generated setters/getters, +% because in that case only the declared type of a variable influences the property behaviour. +parser_w_case_difference_auto_property_getter_setter_prefix=03327_W_Case mismatch between declared property getter/setter $1 and automatically constructed name $2, not changing declared name +% If a property's specified getter/setter already corresponded to the naming convention specified +% by the automatic getter/setter generation setting except in terms of upper/lowercase, the +% compiler will print a warning because it cannot necessarily change that other declaration itself +% not can it add one using the correct case (it could conflict with the original declaration). +% Manually correct the case of the getter/setter to conform to the desired coding rules. +% \var{TChild} overrides +parser_e_no_consts_in_local_anonymous_records=03328_E_Constants declarations are not allowed in local or anonymous records +% Records with constants must be defined globally. Constants cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_methods_in_local_anonymous_records=03329_E_Method declarations are not allowed in local or anonymous records +% Records with methods must be defined globally. Methods cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_properties_in_local_anonymous_records=03330_E_Property declarations are not allowed in local or anonymous records +% Records with properties must be defined globally. Properties cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_class_in_local_anonymous_records=03331_E_Class member declarations are not allowed in local or anonymous records +% Records with class members must be defined globally. Class members cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_not_allowed_in_record=03332_E_Visibility section "$1" not allowed in records +% The visibility sections \var(protected) and \var(strict protected) are only +% useful together with inheritance. Since records do not support that they are +% forbidden. +parser_e_dir_not_allowed=03333_E_Directive "$1" not allowed here +% This directive is not allowed in the given context. E.g. "static" +% is not allowed for instance methods or class operators. +parser_e_no_assembler_in_generic=03334_E_Assembler blocks not allowed inside generics +% The use of assembler blocks/routines is not allowed inside generics. +parser_e_property_only_sgr=03335_E_Properties can be only static, global or inside structured types +% Properties cannot be declared local, only global, using the static +% directive or inside structured types. +parser_e_overloaded_have_same_mangled_name=03336_E_Overloaded routines have the same mangled name +% Some platforms, such as the JVM platform, encode the parameters in the routine name in +% a prescribed way, and this encoding may map different Pascal types to the same encoded +% (a.k.a.\ ``mangled'') name. This error can only be solved by removing or changing the +% conflicting definitions' parameter declarations or routine names. +parser_e_default_value_val_const=03337_E_Default values can only be specified for value, const and constref parameters +% A default parameter value allows you to not specify a value for this parameter +% when calling the routine, and the compiler will instead pass the specified +% default (constant) value. As a result, default values can only be specified +% for parameters that can accept constant values. +parser_w_ptr_type_ignored=03338_W_Pointer type "$1" ignored +% The specified pointer type modifier is ignored, because it is not supported on +% the current platform. This happens, for example, when a far pointer is +% declared on a non-x86 platform. +parser_e_global_generic_references_static=03339_E_Global Generic template references static symtable +% A generic declared in the interface section of a unit must not reference symbols that belong +% solely to the implementation section of that unit. +parser_u_already_compiled=03340_UL_Unit $1 has been already compiled meanwhile. +% This tells you that the recursive reading of the uses clauses triggered already +% a compilation of the current unit, so the current compilation can be aborted. +% +% +% +% \end{description} +% +# Type Checking +# +# 04123 is the last used one +# +% \section{Type checking errors} +% This section lists all errors that can occur when type checking is +% performed. +% \begin{description} type_e_mismatch=04000_E_Typefejl % This can happen in many cases: % \begin{itemize} @@ -1199,13 +1730,19 @@ type_e_array_required=04033_E_Array-type krævet % If you are accessing a variable using an index '[]' then % the type must be an array. In FPC mode also a pointer is allowed. type_e_interface_type_expected=04034_E_interface-type forventet, men "$1" fundet -type_w_mixed_signed_unsigned=04035_W_Blanding af fortegnsudtryk og fortegnsfri udtryk giver 64-bit resultat +% The compiler expected to encounter an interface type name, but got something else. +% The following code would produce this error: +% \begin{verbatim} +% Type +% TMyStream = Class(TStream,Integer) +% \end{verbatim} +type_h_mixed_signed_unsigned=04035_H_Mixing signed expressions and longwords gives a 64bit result % If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), % or if you have overflow and/or range checking turned on and use an arithmetic % expression (+, -, *, div, mod) in which both signed numbers and longwords appear, -% then everything has to be evaluated in 64bit which is slower than normal -% 32bit arithmetic. You can avoid this by typecasting one operand so it -% matches the resulttype of the other one. +% then everything has to be evaluated in 64-bit arithmetic which is slower than normal +% 32-bit arithmetic. You can avoid this by typecasting one operand so it +% matches the result type of the other one. type_w_mixed_signed_unsigned2=04036_W_Blanding af fortegnsudtryk og fortegnsfri udtryk her kan give værdiområdefejl % If you use a binary operator (and, or, xor) and one of % the operands is a longword while the other one is a signed expression, then, @@ -1230,18 +1767,23 @@ type_w_classes_not_related=04040_W_Klasse- eller objekt-typerne "$1" og "$2" er % There is a typecast from one class or object to another while the class/object % are not related. This will probably lead to errors type_e_class_or_interface_type_expected=04041_E_Klasse eller interface-type forventet, men "$1" fundet +% The compiler expected a class or interface name, but got another type or identifier. type_e_type_is_not_completly_defined=04042_E_Typen "$1" er ikke fuldt ud defineret +% This error occurs when a type is not complete: i.e. a pointer type which points to +% an undefined type. type_w_string_too_long=04043_W_Strengkonstant har flere karakterer end længden af en kort streng % The size of the constant string, which is assigned to a shortstring, % is longer than the maximum size of the shortstring -type_w_signed_unsigned_always_false=04044_W_Sammenligning er altid falsk, grundet værdiernes rækkevidde -% There is a comparison between an unsigned value and a signed constant which is -% less than zero. Because of type promotion, the statement will always evaluate to -% false. Exlicitly typecast the constant to the correct range to avoid this problem. -type_w_signed_unsigned_always_true=04045_W_Sammenligning er altid sand, grundet værdiernes rækkevidde -% There is a comparison between an unsigned value and a signed constant which is -% less than zero. Because of type promotion, the statement will always evaluate to -% true. Exlicitly typecast the constant to the correct range to avoid this problem. +type_w_comparison_always_false=04044_W_Comparison might be always false due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% false. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. +type_w_comparison_always_true=04045_W_Comparison might be always true due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% true. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. type_w_instance_with_abstract=04046_W_Konstruerer klassen "$1" med abstrakte metoder % An instance of a class is created which contains non-implemented abstract % methods. This will probably lead to a runtime error 211 in the code if that @@ -1260,9 +1802,9 @@ type_h_smaller_possible_range_check=04049_H_Forskel i typestørrelser. Muligt da % this may cause a range-check error, or may lead to possible loss of data. type_e_cant_take_address_of_abstract_method=04050_E_Kan ikke beregne adressen af en abstrakt metode % An abstract method has no body, so the address of an abstract method can't be taken. -type_e_operator_not_allowed=04051_E_Operatoren kan ikke bruges på denne operand-type -% You are trying an operator that is not available for the type of the -% operands +type_e_assignment_not_allowed=04051_E_Assignments to formal parameters and open arrays are not possible +% You are trying to assign a value to a formal (untyped var, const or out) +% parameter, or to an open array. type_e_constant_expr_expected=04052_E_Konstant udtryk forventet % The compiler expects an constant expression, but gets a variable expression. type_e_operator_not_supported_for_types=04053_E_Operationen "$1" ikke understøttet for typerne "$2" og "$3" @@ -1295,6 +1837,213 @@ type_e_illegal_count_var=04058_E_Ugyldig tællevariabel % This section lists all the messages that concern the handling of symbols. % This means all things that have to do with procedurek and variable names. % \begin{description} +type_w_double_c_varargs=04059_W_Converting constant real value to double for C variable argument, add explicit typecast to prevent this. +% In C, constant real values are double by default. For this reason, if you +% pass a constant real value to a variable argument part of a C function, FPC +% by default converts this constant to double as well. If you want to prevent +% this from happening, add an explicit typecast around the constant. +type_e_class_or_cominterface_type_expected=04060_E_Class or COM interface type expected, but got "$1" +% Some operators, such as the AS operator, are only applicable to classes or COM interfaces. +type_e_no_const_packed_array=04061_E_Constant packed arrays are not yet supported +% You cannot declare a (bit)packed array as a typed constant. +type_e_got_expected_packed_array=04062_E_Incompatible type for arg no. $1: Got "$2" expected "(Bit)Packed Array" +% The compiler expects a (bit)packed array as the specified parameter. +type_e_got_expected_unpacked_array=04063_E_Incompatible type for arg no. $1: Got "$2" expected "(not packed) Array" +% The compiler expects a regular (i.e., not packed) array as the specified parameter. +type_e_no_packed_inittable=04064_E_Elements of packed arrays cannot be of a type which need to be initialised +% Support for packed arrays of types that need initialization +% (such as ansistrings, or records which contain ansistrings) is not yet implemented. +type_e_no_const_packed_record=04065_E_Constant packed records and objects are not yet supported +% You cannot declare a (bit)packed array as a typed constant at this time. +type_w_untyped_arithmetic_unportable=04066_W_Arithmetic "$1" on untyped pointer is unportable to {$T+}, suggest typecast +% Addition/subtraction from an untyped pointer may work differently in \var{\{\$T+\}}. +% Use a typecast to a typed pointer. +type_e_cant_take_address_of_local_subroutine=04076_E_Can't take address of a subroutine marked as local +% The address of a subroutine marked as local cannot be taken. +type_e_cant_export_local=04077_E_Can't export subroutine marked as local from a unit +% A subroutine marked as local cannot be exported from a unit. +type_e_not_automatable=04078_E_Type is not automatable: "$1" +% Only byte, integer, longint, smallint, currency, single, double, ansistring, +% widestring, tdatetime, variant, olevariant, wordbool and all interfaces are automatable. +type_h_convert_add_operands_to_prevent_overflow=04079_H_Converting the operands to "$1" before doing the add could prevent overflow errors. +% Adding two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the addition. +type_h_convert_sub_operands_to_prevent_overflow=04080_H_Converting the operands to "$1" before doing the subtract could prevent overflow errors. +% Subtracting two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the subtraction. +type_h_convert_mul_operands_to_prevent_overflow=04081_H_Converting the operands to "$1" before doing the multiply could prevent overflow errors. +% Multiplying two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the multiplication. +type_w_pointer_to_signed=04082_W_Converting pointers to signed integers may result in wrong comparison results and range errors, use an unsigned type instead. +% The virtual address space on 32-bit machines runs from \$00000000 to \$ffffffff. +% Many operating systems allow you to allocate memory above \$80000000. +% For example both \windows and \linux allow pointers in the range \$0000000 to \$bfffffff. +% If you convert pointers to signed types, this can cause overflow and range check errors, +% but also \$80000000 < \$7fffffff. This can cause random errors in code like "if p>q". +type_e_interface_has_no_guid=04083_E_Interface type $1 has no valid GUID +% When applying the as-operator to an interface or class, the desired interface (i.e. the right operand of the +% as-operator) must have a valid GUID. +type_e_invalid_objc_selector_name=04084_E_Invalid selector name "$1" +% An Objective-C selector cannot be empty, must be a valid identifier or a single colon, +% and if it contains at least one colon it must also end in one. +type_e_expected_objc_method_but_got=04085_E_Expected Objective-C method, but got $1 +% A selector can only be created for Objective-C methods, not for any other kind +% of procedure/function/method. +type_e_expected_objc_method=04086_E_Expected Objective-C method or constant method name +% A selector can only be created for Objective-C methods, either by specifying +% the name using a string constant, or by using an Objective-C method identifier +% that is visible in the current scope. +type_e_no_type_info=04087_E_No type info available for this type +% Type information is not generated for some types, such as enumerations with gaps +% in their value range (this includes enumerations whose lower bound is different +% from zero). +type_e_ordinal_or_string_expr_expected=04088_E_Ordinal or string expression expected +% The expression must be an ordinal or string type. +type_e_string_expr_expected=04089_E_String expression expected +% The expression must be a string type. +type_w_zero_to_nil=04090_W_Converting 0 to NIL +% Use NIL rather than 0 when initialising a pointer. +type_e_protocol_type_expected=04091_E_Objective-C protocol type expected, but got "$1" +% The compiler expected a protocol type name, but found something else. +type_e_objc_type_unsupported=04092_E_The type "$1" is not supported for interaction with the Objective-C and the blocks runtime. +% Objective-C and Blocks make extensive use of run time type information (RTTI). This format +% is defined by the maintainers of the run time and can therefore not be adapted +% to all possible Object Pascal types. In particular, types that depend on +% reference counting by the compiler (such as ansistrings and certain kinds of +% interfaces) cannot be used as fields of Objective-C classes, cannot be +% directly passed to Objective-C methods or Blocks, and cannot be encoded using \var{objc\_encode}. +type_e_class_or_objcclass_type_expected=04093_E_Class or objcclass type expected, but got "$1" +% It is only possible to create class reference types of \var{class} and \var{objcclass} +type_e_objcclass_type_expected=04094_E_Objcclass type expected +% The compiler expected an \var{objcclass} type +type_w_procvar_univ_conflicting_para=04095_W_Coerced univ parameter type in procedural variable may cause crash or memory corruption: $1 to $2 +% \var{univ} parameters are implicitly compatible with all types of the same size, +% also in procedural variable definitions. That means that the following code is +% legal, because \var{single} and \var{longint} have the same size: +% \begin{verbatim} +% {$mode macpas} +% Type +% TIntProc = procedure (l: univ longint); +% +% procedure test(s: single); +% begin +% writeln(s); +% end; +% +% var +% p: TIntProc; +% begin +% p:=test; +% p(4); +% end. +% \end{verbatim} +% This code may however crash on platforms that pass integers in registers and +% floating point values on the stack, because then the stack will be unbalanced. +% Note that this warning will not flag all potentially dangerous situations. +% when \var{test} returns. +type_e_generics_cannot_reference_itself=04096_E_Type parameters of specializations of generics cannot reference the currently specialized type +% Recursive specializations of generics like \var{Type MyType = specialize MyGeneric;} are not possible. +type_e_type_parameters_are_not_allowed_here=04097_E_Type parameters are not allowed on non-generic class/record/object procedure or function +% Type parameters are only allowed for methods of generic classes, records or objects +type_e_generic_declaration_does_not_match=04098_E_Generic declaration of "$1" differs from previous declaration +% Generic declaration does not match the previous declaration +type_e_helper_type_expected=04099_E_Helper type expected +% The compiler expected a \var{class helper} type. +type_e_record_type_expected=04100_E_Record type expected +% The compiler expected a \var{record} type. +type_e_class_helper_must_extend_subclass=04101_E_Derived class helper must extend a subclass of "$1" or the class itself +% If a class helper inherits from another class helper the extended class must +% extend either the same class as the parent class helper or a subclass of it +type_e_record_helper_must_extend_same_record=04102_E_Derived record or type helper must extend "$1" +% If a record helper inherits from another record helper it must extend the same +% record that the parent record helper extended. +type_e_procedures_return_no_value=04103_E_Invalid assignment, procedures return no value +% This error occurs when one tries to assign the result of a procedure or destructor call. +% A procedure or destructor returns no value so this is not +% possible. +type_w_implicit_string_cast=04104_W_Implicit string type conversion from "$1" to "$2" +% An implicit type conversion from an ansi string type to an unicode string type is +% encountered. To avoid this warning perform an explicit type conversion. +type_w_implicit_string_cast_loss=04105_W_Implicit string type conversion with potential data loss from "$1" to "$2" +% An implicit type conversion from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. +type_w_explicit_string_cast=04106_-W_Explicit string typecast from "$1" to "$2" +% An explicit typecast from an ansi string type to an unicode string type is +% encountered. This warning is off by default. You can turn it on to see all suspicious string conversions. +type_w_explicit_string_cast_loss=04107_-W_Explicit string typecast with potential data loss from "$1" to "$2" +% An explicit typecast from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. This warning is off by default. You can turn it on to see all the places with lossy string +% conversions. +type_w_unicode_data_loss=04108_W_Unicode constant cast with potential data loss +% Conversion from a WideChar to AnsiChar can lose data since now all unicode characters may be represented in the current +% system codepage +% You can nest function definitions only 31 levels deep. +type_e_range_check_error_bounds=04109_E_range check error while evaluating constants ($1 must be between $2 and $3) +type_w_range_check_error_bounds=04110_W_range check error while evaluating constants ($1 must be between $2 and $3) +% The constants are outside their allowed range. +type_e_type_not_allowed_for_default=04111_E_This type is not supported for the Default() intrinsic +% Some types like for example Text and File Of X are not supported by the Default intrinsic. +type_e_java_class_method_not_static_virtual=04112_E_JVM virtual class methods cannot be static +% Virtual class methods cannot be static when targeting the JVM platform, because +% the self pointer is required for correct dispatching. +type_e_invalid_final_assignment=04113_E_Final (class) fields can only be assigned in their class' (class) constructor +% It is only possible to assign a value to a final (class) field inside a (class) constructor of its owning class. +type_e_no_managed_formal_assign_typecast=04114_E_It is not possible to typecast untyped parameters on managed platforms, simply assign a value to them instead. +% On managed platforms, untyped parameters are translated by the compiler into +% the equivalent of \var{var x: BaseClassType}. Non-class-based types passed to +% such parameters are automatically wrapped (or boxed) in a class, and after the +% call the potentially modified value is assigned back to the original variable. +% On the caller side, changing untyped var/out parameters happens by simply assigning +% values to them (either class-based or primitive ones). On the caller side, +% they will be extracted and if their type does not match the original variable's, +% an exception will be raised. +type_e_no_managed_assign_generic_typecast=04115_E_The assignment side of an expression cannot be typecasted to a supertype on managed platforms +% Managed platforms guarantee type safety at the bytecode level. This means that the virtual machine must be able +% to statically determine that no type-unsafe assignments or operations occur. By assigning a parent class type to a +% variable of a child type by typecasting the assignment side to the parent class type, the type safety would no +% longer be guaranteed and the generated code would fail verification at run time time. +type_w_interface_lower_visibility=04116_-W_The interface method "$1" raises the visibility of "$2" to public when accessed via an interface instance +type_e_interface_lower_visibility=04117_E_The interface method "$1" has a higher visibility (public) than "$2" +% All methods in an interface have always public visibility. That means that if +% an interface method is implemented using a (strict) protected or private method, +% this method is actually publicly accessible via the interface. On the JVM +% target this situation results in an error because the JVM rejects such +% attempts to circumvent the visibility rules. On other targets this is a +% warning that is disabled by default because such situations are common +% practice, but it can be enabled in case you are concerned with keeping your +% code compilable for the JVM target. +type_e_typeof_requires_vmt=04118_E_TYPEOF can only be used on object types with VMT +% Typeof() intrinsic returns pointer to VMT of its argument. It cannot be used on object types that do not have VMT. +type_e_invalid_default_value=04119_E_It is not possible to define a default value for a parameter of type "$1" +% Parameters declared as structured types, such as files, variants, non-dynamic +% arrays and TP-style objects, cannot have a default value. +type_e_type_not_allowed_for_type_helper=04120_E_Type "$1" cannot be extended by a type helper +% Types like procedural variables cannot be extended by type helpers +type_e_procedure_must_be_far=04121_E_Procedure or function must be far in order to allow taking its address: "$1" +% In certain i8086 memory models (medium, large and huge), procedures and functions +% have to be declared 'far' in order to allow their address to be taken. +type_w_instance_abstract_class=04122_W_Creating an instance of abstract class "$1" +% The specified class is declared as \var{abstract} and thus no instance of this class +% should be created. This is merely a warning for Delphi compatibility. +type_e_function_reference_kind=04123_E_Subroutine references cannot be declared as "of object" or "is nested", they can always refer to any kind of subroutine +% Subroutine references can refer to any kind of subroutine and hence do not +% require specialisation for methods or nested subroutines. +type_e_anonymous_function_unsupported=04999_E_Function references are not yet supported, only blocks (add "cdecl;" at the end) +% Remove this error message once Delphi-style anonymous are implemented. It has +% number 4999 so as not to result in a gap in the error message numbering once +% it's removed. +% \end{description} +# +# Symtable +# +# 05095 is the last used one +# +% \section{Symbol handling} +% This section lists all the messages that concern the handling of symbols. +% This means all things that have to do with procedure and variable names. +% \begin{description} sym_e_id_not_found=05000_E_Ukendt navn: "$1" % The compiler doesn't know this symbol. Usually happens when you misspel % the name of a variable or procedure, or when you forgot to declare a @@ -1369,8 +2118,11 @@ sym_n_local_identifier_only_set=05027_N_Lokal variabel "$1" er tildelt, men aldr sym_h_local_symbol_not_used=05028_H_Lokal $1 "$2" aldrig brugt % A local symbol is never used. sym_n_private_identifier_not_used=05029_N_Private-feltet "$1.$2" aldrig brugt +% The indicated private field is defined, but is never used in the code. sym_n_private_identifier_only_set=05030_N_Private-feltet "$1.$2" tildelt men aldrig brugt +% The indicated private field is declared and assigned to, but never read. sym_n_private_method_not_used=05031_N_Private-metoden "$1.$2" aldrig brugt +% The indicated private method is declared but is never used in the code. sym_e_set_expected=05032_E_Set-type forventet % The variable or expression is not of type \var{set}. This happens in an % \var{in} statement. @@ -1467,6 +2219,165 @@ sym_w_identifier_only_read=05061_W_Variablen "$1" bliver læst men aldrig tildel % This section lists all messages that can be displayed if the code % generator encounters an error condition. % \begin{description} +sym_h_abstract_method_list=05062_H_Found abstract method: $1 +% When getting a warning about constructing a class/object with abstract methods +% you get this hint to assist you in finding the affected method. +sym_w_experimental_symbol=05063_W_Symbol "$1" is experimental +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{experimental} is used. Experimental symbols +% might disappear or change semantics in future versions. Usage of this symbol +% should be avoided as much as possible. +sym_w_forward_not_resolved=05064_W_Forward declaration "$1" not resolved, assumed external +% This happens if you declare a function in the \var{interface} of a unit in macpas mode, +% but do not implement it. +sym_w_library_symbol=05065_W_Symbol "$1" is belongs to a library +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{library} is used. Library symbols may not be +% available in other libraries. +sym_w_deprecated_symbol_with_msg=05066_W_Symbol "$1" is deprecated: "$2" +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{deprecated} is used. Deprecated symbols may no longer +% be available in newer versions of the unit / library. Use of this symbol +% should be avoided as much as possible. +sym_e_no_enumerator=05067_E_Cannot find an enumerator for the type "$1" +% This means that compiler cannot find an appropriate enumerator to use in the for-in loop. +% To create an enumerator you need to define an operator enumerator or add a public or published +% GetEnumerator method to the class or object definition. +sym_e_no_enumerator_move=05068_E_Cannot find a "MoveNext" method in enumerator "$1" +% This means that compiler cannot find a public MoveNext method with the Boolean return type in +% the enumerator class or object definition. +sym_e_no_enumerator_current=05069_E_Cannot find a "Current" property in enumerator "$1" +% This means that compiler cannot find a public Current property in the enumerator class or object +% definition. +sym_e_objc_para_mismatch=05070_E_Mismatch between number of declared parameters and number of colons in message string. +% In Objective-C, a message name automatically contains as many colons as parameters. +% In order to prevent mistakes when specifying the message name in FPC, the compiler +% checks whether this is also the case here. Note that in case of messages taking a +% variable number of arguments translated to FPC via an \var{array of const} parameter, +% this final \var{array of const} parameter is not counted. Neither are the hidden +% \var{self} and \var{\_cmd} parameters. +sym_n_private_type_not_used=05071_N_Private type "$1.$2" never used +% The indicated private type is declared but is never used in the code. +sym_n_private_const_not_used=05072_N_Private const "$1.$2" never used +% The indicated private const is declared but is never used in the code. +sym_n_private_property_not_used=05073_N_Private property "$1.$2" never used +% The indicated private property is declared but is never used in the code. +sym_w_deprecated_unit=05074_W_Unit "$1" is deprecated +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_deprecated_unit_with_msg=05075_W_Unit "$1" is deprecated: "$2" +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_non_portable_unit=05076_W_Unit "$1" is not portable +% This means that a unit which is +% declared as \var{platform} is used. This unit use +% and availability is platform specific and should not be used +% if the source code must be portable. +sym_w_library_unit=05077_W_Unit "$1" is belongs to a library +% This means that a unit which is +% declared as \var{library} is used. Library units may not be +% available in other libraries. +sym_w_non_implemented_unit=05078_W_Unit "$1" is not implemented +% This means that a unit which is +% declared as \var{unimplemented} is used. This unit is defined, +% but is not yet implemented on this specific platform. +sym_w_experimental_unit=05079_W_Unit "$1" is experimental +% This means that a unit which is +% declared as \var{experimental} is used. Experimental units +% might disappear or change semantics in future versions. Usage of this unit +% should be avoided as much as possible. +sym_e_formal_class_not_resolved=05080_E_No complete definition of the formally declared class "$1" is in scope +% Objecive-C and Java classes can be imported formally, without using the unit in which it is fully declared. +% This enables making forward references to such classes and breaking circular dependencies amongst units. +% However, as soon as you wish to actually do something with an entity of this class type (such as +% access one of its fields, send a message to it, or use it to inherit from), the compiler requires the full definition +% of the class to be in scope. +sym_e_interprocgoto_into_init_final_code_not_allowed=05081_E_Gotos into initialization or finalization blocks of units are not allowed +% Gotos into initialization or finalization blockse of units are not allowed. +sym_e_external_class_name_mismatch1=05082_E_Invalid external name "$1" for formal class "$2" +sym_e_external_class_name_mismatch2=05083_E_Complete class definition with external name "$1" here +% When a class is declared using a formal external definition, the actual external +% definition (if any) must specify the same external name as the formal definition +% (since both definitions refer to the same actual class type). +sym_w_library_overload=05084_W_Possible library conflict: symbol "$1" from library "$2" also found in library "$3" +% Some OS do not have library specific namespaces, for those +% OS, the function declared as "external 'libname' name 'funcname'", +% the 'libname' part is only a hint, funcname might also be loaded +% by another library. This warning appears if 'funcname' is used twice +% with two different library names. +sym_e_duplicate_id_create_java_constructor=05085_E_Cannot add implicit constructor 'Create' because identifier already used by "$1" +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. In Java, constructors are nameless, +% but in FPC they are all called ``Create''. Therefore, if you do not add a constructor to +% a Java class and furthermore use the ``Create'' identifier for another entity (e.g., a field, +% or a parameterless method), the compiler cannot satisfy this requirement. +sym_e_no_matching_inherited_parameterless_constructor=05086_E_Cannot generate default constructor for class, because parent has no parameterless constructor +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. This compiler must then call +% the parameterless constructor from the parent class inside this added constructor. +% This is however impossible if the parent class does not declare such a constructor. +% In this case you must add a valid constructor yourself. +sym_d_adding_helper_for=05087_D_Adding helper for $1 +% A helper for the mentioned type is added to the current scope +sym_e_param_list=05088_E_Found declaration: $1 +% This message shows all overloaded declarations in case of an error. +sym_w_uninitialized_managed_local_variable=05089_W_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_uninitialized_managed_variable=05090_W_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_local_variable=05091_H_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. it did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_variable=05092_H_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. t did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_managed_function_result_uninitialized=05093_W_function result variable of a managed type does not seem to initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. before it appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_managed_function_result_uninitialized=05094_H_Function result variable of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. it appears in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_duplicate_id=05095_W_Duplicate identifier "$1" +% The identifier was already declared in an Objective-C category that's in the +% same scope as the current identifier. This is a warning instead of an error, +% because while this hides the identifier from the category, there are often +% many unused categories in scope. +% \end{description} +# +# Codegenerator +# +# 06049 is the last used one +# +% \section{Code generator messages} +% This section lists all messages that can be displayed if the code +% generator encounters an error condition. +% \begin{description} cg_e_parasize_too_big=06009_E_Den samlede parameterstørrelse overstiger 64KB % The I386 processor limits the parameter list to 65535 bytes (the \var{RET} % instruction causes this) @@ -1591,6 +2502,49 @@ cg_f_unknown_compilerproc=06046_F_Ukendt compilerfunktion "$1". Undersøg om du # # 07097 is the last used one # +cg_f_unknown_system_type=06047_F_Cannot find system type "$1". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_h_inherited_ignored=06048_H_Inherited call to abstract method ignored +% This message appears only in Delphi mode when you call an abstract method +% of a parent class via \var{inherited;}. The call is then ignored. +cg_e_goto_label_not_found=06049_E_Goto label "$1" not defined or optimized away +% The label used in the goto definition is not defined or optimized away by the +% unreachable code elemination. +cg_f_unknown_type_in_unit=06050_F_Cannot find type "$1" in unit "$2". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_e_interprocedural_goto_only_to_outer_scope_allowed=06051_E_Interprocedural gotos are allowed only to outer subroutines +% Gotos between subroutines are only allowed if the goto jumps from an inner to an outer subroutine or +% from a subroutine to the main program +cg_e_labels_cannot_defined_outside_declaration_scope=06052_E_Label must be defined in the same scope as it is declared +% In ISO mode, labels must be defined in the same scope as they are declared. +cg_e_goto_across_procedures_with_exceptions_not_allowed=06053_E_Leaving procedures containing explicit or implicit exceptions frames using goto is not allowed +% Non-local gotos might not be used to leave procedures using exceptions either implicitly or explicitly. Procedures +% which use automated types like ansistrings or class constructurs are affected by this too. +cg_e_mod_only_defined_for_pos_quotient=06054_E_In ISO mode, the mod operator is defined only for positive quotient +% In ISO pascal, only positive values are allowed for the quotient: \var{n mod m} is only valid if \var{m>0}. +cg_d_autoinlining=06055_DL_Auto inlining: $1 +% Due to auto inlining turned on, the compiler auto inlines this subroutine. +cg_e_function_not_support_by_selected_instruction_set=06056_E_The function used, is not supported by the selected instruction set: $1 +% Some functions cannot be implemented efficiently for certain instruction sets, one example is fused multiply/add. +% To avoid very inefficient code, the compiler complains in this case, so either select another instruction set +% or replace the function call by alternative code +cg_f_max_units_reached=06057_F_Maximum number of units ($1) reached for the current target +% Depending of target architecture, the number of units is limited. This limit +% has been reached. A unit counts only if it contains initialization or finalization count. +% +% \end{description} +# EndOfTeX +# +# Assembler reader +# +# 07125 is the last used one +# asmr_d_start_reading=07000_DL_Begynder assembler-parsing ($1) % This informs you that an assembler block is being parsed asmr_d_finish_reading=07001_DL_Afslutter assembler-parsing ($1) @@ -1816,6 +2770,96 @@ asmr_e_illegal_shifterop_syntax=07099_E_Syntaxfejl under parsning af skifteroper # # 08018 is the last used one # +asmr_e_packed_element=07100_E_Address of packed component is not at a byte boundary +% Packed components (record fields and array elements) may start at an arbitrary +% bit inside a byte. On CPU which do not support bit-addressable memory (which +% includes all currently supported CPUs by FPC) you will therefore get an error +% message when trying to index arrays with elements whose size is not a multiple +% of 8 bits. The same goes for accessing record fields with such an address. +% multiple of 8 bits. +asmr_w_unable_to_determine_reference_size_using_byte=07101_W_No size specified and unable to determine the size of the operands, using BYTE as default +% You should specify explicitly a size for the reference, because +% the compiler is unable to determine what size (byte,word,dword,etc.) it +% should use for the reference. This warning is only used in Delphi mode where +% it falls back to use BYTE as default. +asmr_w_no_direct_ebp_for_parameter=07102_W_Use of +offset(%ebp) for parameters invalid here +% Using direct 8(%ebp) reference for function/procedure parameters is invalid +% if parameters are in registers. +asmr_w_direct_ebp_for_parameter_regcall=07103_W_Use of +offset(%ebp) is not compatible with regcall convention +% Using direct 8(%ebp) reference for function/procedure parameters is invalid +% if parameters are in registers. +asmr_w_direct_ebp_neg_offset=07104_W_Use of -offset(%ebp) is not recommended for local variable access +% Using -8(%ebp) to access a local variable is not recommended +asmr_w_direct_esp_neg_offset=07105_W_Use of -offset(%esp), access may cause a crash or value may be lost +% Using -8(%esp) to access a local stack is not recommended, as +% this stack portion can be overwritten by any function calls or interrupts. +asmr_e_no_vmtoffset_possible=07106_E_VMTOffset must be used in combination with a virtual method, and "$1" is not virtual +% Only virtual methods have VMT offsets +asmr_e_need_pic_ref=07107_E_Generating PIC, but reference is not PIC-safe +% The compiler has been configured to generate position-independent code +% (PIC), but there are position-dependent references in the current +% handwritten assembler instruction. +asmr_e_mixing_regtypes=07108_E_All registers in a register set must be of the same kind and width +% Instructions on the ARM architecture that take a register set as argument require that all registers +% in this set are of the same kind (e.g., integer, vfp) and width (e.g., single precision, double precision). +asmr_e_empty_regset=07109_E_A register set cannot be empty +% Instructions on the ARM architecture that take a register set as argument require that such a set +% contains at least one register. +asmr_w_useless_got_for_local=07110_W_@GOTPCREL is useless and potentially dangerous for local symbols +% The use of @GOTPCREL supposes an extra indirection that is +% not present if the symbol is local, which might lead to wrong assembler code +asmr_w_general_segment_with_constant=07111_W_Constant with general purpose segment register +% General purpose register should not have constant offsets +% as OS memory allocation might not be compatible with that. +asmr_e_bad_seh_directive_offset=07112_E_Invalid offset value for $1 +% Win64 SEH directives have certain restrictions on possible offset values, e.g. they should +% be positive and have 3 or 4 low bits clear. +asmr_e_bad_seh_directive_register=07113_E_Invalid register for $1 +% Win64 SEH directives accept only 64-bit integer registers or XMM registers. +asmr_e_seh_in_pure_asm_only=07114_E_SEH directives are allowed only in pure assembler procedures +% Win64 SEH directives are allowed only in pure assembler procedures, not in assembler +% blocks of regular procedures. +asmr_e_unsupported_directive=07115_E_Directive "$1" is not supported for the current target +asmr_e_complex_function_result_location=07116_E_This function's result location cannot be encoded directly in a single operand when "nostackframe" is used +% Functions declared with the \var{nostackframe} modifier do not have a stack frame, and hence +% do not have a local variable to hold the temporary function result. Accesses to the function +% result in such routines directly go to the registers or memory location that will be used +% to return their result to the caller. In some cases this result may be spread over multiple +% registers, in which case it is not possible to access the location via its symbolic name. +% You have to directly use the appropriate register names in this case. +asmr_e_wrong_gotpcrel_intel_syntax=07117_E_GOTPCREL references in Intel assembler syntax cannot contain a base or index register, and their offset must 0. +% The syntax for a gotpcrel PIC memory expression in Intel assembler syntax is +% \verb*[global_symbol wrt ..gotpcrel]* +asmr_e_no_gotpcrel_support=07118_E_The current target does not support GOTPCREL relocations +% Not all targets support position-independent code using a global offset table. +% Use a different way to access symbols in a position-indepent way in these cases. +asmr_w_global_access_without_got=07119_W_Exported/global symbols should be accessed via the GOT +% Global symbols (symbols from the unit interface, or defined in a program +% or library) should be accessed via the GOT when generating position-indepent code. +asmr_w_check_mem_operand_size=07120_W_Check size of memory operand "$1" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size3=07121_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size_offset=07122_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits + $4 byte offset]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_negative_offset=07123_W_Check "$1: offset of memory operand is negative "$2 byte" +% The offset of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_automap_multiple_size=07124_W_Check "$1: size of memory operand is empty, but es exists different definitions of the memory size =>> map to $2 (smallest option)" +% The size of memory operand is empty and we have different definitions of possible memory sizes. Check it! +asmr_e_invalid_ref_register=07125_E_Invalid register used in memory reference expression: "$1" +% FPU, vector and sometimes integer registers cannot be used in memory reference +% expressions, due to limitations of the cpu architecture or simple because +% it is not meaningful. + +# +# Assembler/binary writers +# +# 08029 is the last used one +# asmw_f_too_many_asm_files=08000_F_For mange assemblerfiler (forsøg uden smartlinking) % With smartlinking enabled, there are too many assembler % files generated. Disable smartlinking. @@ -1851,8 +2895,47 @@ asmw_e_invalid_register=08019_E_Asm: Ugyldigt register $1 % This section lists errors that occur when the compiler is processing the % command line or handling the configuration files. % \begin{description} +asmw_e_16bit_32bit_not_supported=08020_E_Asm: 16 or 32 Bit references not supported +asmw_e_64bit_not_supported=08021_E_Asm: 64 Bit operands not supported +asmw_e_bad_reg_with_rex=08022_E_Asm: AH,BH,CH or DH cannot be used in an instruction requiring REX prefix +% x86_64 only: instruction encoding of this platform does not allow using +% 8086 high byte registers (AH,BH,CH or DH) together with REX prefix in a single instruction. +% The REX prefix is required whenever the instruction operand size is 64 bits, or +% when it uses one of extended x86_64 registers (R8-R15 or XMM8-XMM15). +asmw_e_missing_endprologue=08023_E_Missing .seh_endprologue directive +% x86_64-win64 only: Normally, SEH directives are handled internally by compiler. +% However, in pure assembler procedures .seh_endprologue directive is required +% if other SEH directives are present. +asmw_e_prologue_too_large=08024_E_Function prologue exceeds 255 bytes +% x86_64-win64: .seh_prologue directive must be placed within 255 bytes from function start. +asmw_e_handlerdata_no_handler=08025_E_.seh_handlerdata directive without preceding .seh_handler +% x86_64-win64: If .seh_handlerdata directive is used, then a .seh_handler directive must be +% present earlier in the same function. +asmw_f_too_many_relocations=08026_F_Relocation count for section $1 exceeds 65535 +% Legacy COFF targets limit number of relocations per section to 65535 because they use a 2-byte field +% to store the relocation count. Targets using newer PECOFF format do not have this limitation. +asmw_w_changing_bind_type=08027_N_Change of bind type of symbol $1 from $2 to $3 after use +asmw_h_changing_bind_type=08028_H_Change of bind type of symbol $1 from $2 to $3 after use +% An assembler symbol bind type has been altered after use, which can lead to wrong code. +% First version is reserved for changig to local label, which is the most probable cause +% of wrong code generation, but currently set to Note level as it appears inside +% the compiler compilation. +asmw_e_32bit_not_supported=08029_E_Asm: 32 Bit references not supported +# +# Executing linker/assembler +# +# 09035 is the last used one +# +# BeginOfTeX +% +% \section{Errors of assembling/linking stage} +% This section lists errors that occur when the compiler is processing the +% command line or handling the configuration files. +% \begin{description} exec_w_source_os_redefined=09000_W_Kilde-operativsystem redefineret +% The source operating system is redefined. exec_i_assembling_pipe=09001_I_Assembler (pipe) $1 +% Assembling using a pipe to an external assembler. exec_d_cant_create_asmfile=09002_E_Kan ikke oprette assemblerfil: $1 % The mentioned file can't be created. Check if you have got % access permissions to create this file @@ -1863,14 +2946,21 @@ exec_e_cant_create_archivefile=09004_E_Kan ikke oprette arkivfil: $1 % The mentioned file can't be created. Check if you've % access permissions to create this file exec_e_assembler_not_found=09005_E_Assembler $1 ikke fundet, skifter til ekstern assembler +% The assembler program was not found. The compiler will produce a script that +% can be used to assemble and link the program. exec_t_using_assembler=09006_T_Bruger assembler: $1 +% An informational message saying which assembler is being used. exec_e_error_while_assembling=09007_E_Fejl under assembling (returkode $1) % There was an error while assembling the file using an external assembler. % Consult the documentation of the assembler tool to find out more information % on this error. exec_e_cant_call_assembler=09008_E_Kan ikke kalde assembleren, fejl $1 under skift til ekstern assembler +% An error occurred when calling an external assembler. The compiler will produce a script that +% can be used to assemble and link the program. exec_i_assembling=09009_I_Assembler $1 +% An informational message stating which file is being assembled. exec_i_assembling_smart=09010_I_Assembler med smartlinking $1 +% An informational message stating which file is being assembled using smartlinking. exec_w_objfile_not_found=09011_W_Objektet $1 ikke fundet - linkningen kan fejle! % One of the object file is missing, and linking will probably fail. % Check your paths. @@ -1880,18 +2970,39 @@ exec_w_libfile_not_found=09012_W_Biblioteket $1 blev ikke fundet - linkningen ka exec_e_error_while_linking=09013_E_Fejl under linkning % Generic error while linking. exec_e_cant_call_linker=09014_E_Kan ikke starte linkeren, skifter til ekstern linker +% An error occurred when calling an external linker. The compiler will produce a script that +% can be used to assemble and link the program. exec_i_linking=09015_I_Linker $1 +% An informational message, showing which program or library is being linked. exec_e_util_not_found=09016_E_Hjælpeprogram $1 ikke fundet, skifter til ekstern linker +% An external tool was not found. The compiler will produce a script that +% can be used to assemble and link or postprocess the program. exec_t_using_util=09017_T_Bruger hjælpeprogram $1 +% An informational message, showing which external program (usually a postprocessor) is being used. exec_e_exe_not_supported=09018_E_Programbygning ikke understøttet +% Creating executable programs is not supported for this platform, because it was +% not yet implemented in the compiler. exec_e_dll_not_supported=09019_E_Dynamisk/Delt bibliotek-bygning ikke understøttet +% Creating dynamically loadable libraries is not supported for this platform, because it was +% not yet implemented in the compiler. +exec_e_static_lib_not_supported=09035_E_Creation of Static Libraries not supported +% Creating static libraries is not supported for this platform, because it was +% not yet implemented in the compiler. exec_i_closing_script=09020_I_Lukker script $1 +% Informational message showing when writing of the external assembling and linking script is finished. exec_e_res_not_found=09021_E_resourcecompiler ikke fundet, skifter til ekstern +% An external resource compiler was not found. The compiler will produce a script that +% can be used to assemble, compile resources and link or postprocess the program. exec_i_compilingresource=09022_I_Compilerer resourcen $1 +% An informational message, showing which resource is being compiled. exec_t_unit_not_static_linkable_switch_to_smart=09023_T_unit $1 kan ikke linkes statisk. Skifter til smartlinking +% Static linking was requested, but a unit which is not statically linkable was used. exec_t_unit_not_smart_linkable_switch_to_static=09024_T_unit $1 kan ikke smartlinkes. Skifter til statisk linking +% Smart linking was requested, but a unit which is not smart-linkable was used. exec_t_unit_not_shared_linkable_switch_to_static=09025_T_unit $1 kan ikke linkes delt, skifter til statisk linking +% Shared linking was requested, but a unit which is not shared-linkable was used. exec_e_unit_not_smart_or_static_linkable=09026_E_unit $1 kan ikke linkes smart eller statisk +% Smart or static linking was requested, but a unit which cannot be used for either was used. exec_e_unit_not_shared_or_static_linkable=09027_E_unit $1 kan ikke linkes delt eller statisk %\end{description} # EndOfTeX @@ -1906,12 +3017,47 @@ exec_d_resbin_params=09028_D_Kalder resourcecompiler "$1" med "$2" som kommandol # # Executable information # +exec_e_error_while_compiling_resources=09029_E_Error while compiling resources +% The resource compiler or converter returned an error. +exec_e_cant_call_resource_compiler=09030_E_Can't call the resource compiler "$1", switching to external mode +% An error occurred when calling a resource compiler. The compiler will produce +% a script that can be used to assemble, compile resources and link or +% postprocess the program. +exec_e_cant_open_resource_file=09031_E_Can't open resource file "$1" +% An error occurred resource file cannot be opened. +exec_e_cant_write_resource_file=09032_E_Can't write resource file "$1" +% An error occurred resource file cannot be written. +exec_n_backquote_cat_file_not_found=09033_N_File "$1" not found for backquoted cat command +% The compiler did not find the file that should be expanded into linker parameters +exec_w_init_file_not_found=09034_W_"$1" not found, this will probably cause a linking failure +% The compiler adds certain startup code files to the linker only when they are found. +% If they are not found, they are not added and this might cause a linking failure. +% +%\end{description} +# EndOfTeX + +# +# Executable information +# +# 09134 is the last used one +# +# BeginOfTeX +% \section{Executable information messages.} +% This section lists all messages that the compiler emits when an executable program is produced, +% and only when the internal linker is used. +% \begin{description} execinfo_f_cant_process_executable=09128_F_Can't post process executable $1 +% Fatal error when the compiler is unable to post-process an executable. execinfo_f_cant_open_executable=09129_F_Kan ikke åbne programmet $1 +% Fatal error when the compiler cannot open the file for the executable. execinfo_x_codesize=09130_X_Størrelsen af koden: $1 bytes +% Informational message showing the size of the produced code section. execinfo_x_initdatasize=09131_X_Størrelse af initialiseret data: $1 bytes +% Informational message showing the size of the initialized data section. execinfo_x_uninitdatasize=09132_X_Størrelse af uinitialiseret data: $1 bytes +% Informational message showing the size of the uninitialized data section. execinfo_x_stackreserve=09133_X_Reserveret stakstørrelse: $1 bytes +% Informational message showing the stack size that the compiler reserved for the executable. execinfo_x_stackcommit=09134_X_Brugt stakstørrelse: $1 bytes # @@ -1925,6 +3071,26 @@ execinfo_x_stackcommit=09134_X_Brugt stakstørrelse: $1 bytes % loading a unit from disk into memory. Many of these messages are % informational messages. % \begin{description} +link_f_executable_too_big=09200_F_Executable image size is too big for $1 target. +% Fatal error when resulting executable is too big. +link_w_32bit_absolute_reloc=09201_W_Object file "$1" contains 32-bit absolute relocation to symbol "$2". +% Warning when 64-bit object file contains 32-bit absolute relocations. +% In such case an executable image can be loaded into lower 4Gb of +% address space only. +%\end{description} +# EndOfTeX + +# +# Unit loading +# +# 10062 is the last used one +# +# BeginOfTeX +% \section{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. +% \begin{description} unit_t_unitsearch=10000_T_Leder efter unit: $1 % When you use the \var{-vt}, the compiler tells you where it tries to find % unit files. @@ -1987,6 +3153,7 @@ unit_f_cant_find_ppu=10022_F_Kan ikke finde unit'en $1 % 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 unit_w_unit_name_error=10023_W_Unit $1 blev ikke fundet, men $2 findes +% This error message is no longer used. unit_f_unit_name_error=10024_F_Unit $1 blev eftersøgt, men $2 fundet % Dos truncation of 8 letters for unit PPU files % may lead to problems when unit name is longer than 8 letters. @@ -2000,6 +3167,8 @@ unit_u_load_unit=10027_U_Indlæser fra $1 ($2) unit $3 % When you use the \var{-vu} flag, which unit is loaded from which unit is % shown. unit_u_recompile_crc_change=10028_U_Gencompilerer $1, checksum ændret for $2 +% The unit is recompiled because the checksum of a unit it depends on has +% changed. unit_u_recompile_source_found_alone=10029_U_Gencompilerer $1, kun kilden fundet % When you use the \var{-vu} flag, these messages tell you why the current % unit is recompiled. @@ -2031,10 +3200,8 @@ unit_u_check_time=10037_U_PPU Check filen $1 tid $2 unit_w_cant_compile_unit_with_changed_incfile=10040_W_Kan ikke gencompilere unit $1, men der blev fundet ændrede includefiler % A unit was found to have modified include files, but % some source files were not found, so recompilation is impossible. -unit_h_source_modified=10041_H_Filen $1 er nyere end PPU-filen $2 (Release-udgave) -% A modified source file for a unit was found that was compiled with the -% release flag (-Ur). The unit will not implicitly be recompiled because -% this release flag is set. +unit_u_source_modified=10041_U_File $1 is newer than the one used for creating PPU file $2 +% A modified source file for a compiler unit was found. unit_u_ppu_invalid_fpumode=10042_U_Bruger en unit der der ikke er compileret i den korrekte 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 @@ -2103,6 +3270,29 @@ unit_u_skipping_reresolving_unit=10059_U_Springer genberegning over for unit $1, # # 11039 is the last used one # +unit_u_unload_resunit=10060_U_Unloading resource unit $1 (not needed) +% When you use the \var{-vu} flag, the compiler warns that it is unloading the +% resource handling unit, since no resources are used. +unit_e_different_wpo_file=10061_E_Unit $1 was compiled using a different whole program optimization feedback input ($2, $3); 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 (\var{-FW} \var{-OW}), +% 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. +unit_u_indirect_crc_changed=10062_U_Indirect interface (objects/classes) CRC changed for unit $1 +% When you use the \var{-vu} flag, the compiler warns that the +% indirect CRC calculated for the unit (this is the CRC of all classes/objects/interfaces/$\ldots$ +% in the interfaces of units directly or indirectly used by this unit in the interface) has been changed after the +% implementation has been parsed. +unit_u_ppu_invalid_memory_model=10063_U_PPU is compiled for another i8086 memory model +% This unit file was compiled for a different i8086 memory model and +% cannot be read. +% \end{description} +# EndOfTeX + +# +# Options +# +# 11057 is the last used one +# option_usage=11000_O_$1 [indstillinger] [indstillinger] # BeginOfTeX % @@ -2179,14 +3369,21 @@ option_using_env=11027_T_Læser indstillinger fra environment $1 option_handling_option=11028_D_Håndterer indstilling "$1" % Debug info that an option is found and will be handled option_help_press_enter=11029__*** tryk enter *** +% Message shown when help is shown page per page. When pressing the ENTER +% Key, the next page of help is shown. If you press q and then ENTER, the +% compiler exits. option_start_reading_configfile=11030_H_Begynder at læse konfigurationsfil $1 % Starting of config file parsing. option_end_reading_configfile=11031_H_Er færdig med at læse konfigurationsfil $1 % End of config file parsing. option_interpreting_option=11032_D_fortolker indstilling "$1" +% The compiler is interpreting an option option_interpreting_firstpass_option=11036_D_fortolker indstilling til første gennemløb "$1" +% The compiler is interpreting an option for the first time. option_interpreting_file_option=11033_D_fortolker filindstilling "$1" +% The compiler is interpreting an option which it read from the configuration file. option_read_config_file=11034_D_Læser konfigurationsfil "$1" +% The compiler is starting to read the configuration file. option_found_file=11035_D_fandt kildefilen "$1" % Additional infos about options, displayed % when you have debug option turned on. @@ -2202,6 +3399,134 @@ option_config_is_dir=11040_F_Konfigurationsfilen $1 er et directory %\end{description} # EndOfTeX +# +# Logo (option -l) +# +option_confict_asm_debug=11041_W_Assembler output selected "$1" cannot generate debug info, debugging disabled +% The selected assembler output cannot generate +% debugging information, debugging option is therefore disabled. +option_ppc386_deprecated=11042_W_Use of ppc386.cfg is deprecated, please use fpc.cfg instead +% Using ppc386.cfg is still supported for historical reasons, however, for a multiplatform +% system the naming makes no sense anymore. Please continue to use fpc.cfg instead. +option_else_without_if=11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DEF found +% An \var{\#ELSE} statement was found in the options file without a matching \var{\#IF(N)DEF} statement. +option_unsupported_target=11044_F_Option "$1" is not, or not yet, supported on the current target platform +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is incompatible with the currently selected target platform. +option_unsupported_target_for_feature=11045_F_The feature "$1" is not, or not yet, supported on the selected target platform +% Not all features are supported or implemented for all target platforms. This message informs you that a chosen +% feature is incompatible with the currently selected target platform. +option_dwarf_smart_linking=11046_N_DWARF debug information cannot be used with smart linking on this target, switching to static linking +% Smart linking is currently incompatible with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_ignored_target=11047_W_Option "$1" is ignored for the current target platform. +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is ignored for the currently selected target platform. +option_debug_external_unsupported=11048_W_Disabling external debug information because it is unsupported for the selected target/debug format combination. +% Not all debug formats can be stored in an external file on all platforms. In particular, on +% Mac OS X only DWARF debug information can be stored externally. +option_dwarf_smartlink_creation=11049_N_DWARF debug information cannot be used with smart linking with external assembler, disabling static library creation. +% Smart linking is currently incompatble with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_invalid_macosx_deployment_target=11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variable: $1 +option_invalid_iphoneos_deployment_target=11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment variable: $1 +% On Mac OS X, the MACOSX\_DEPLOYMENT\_TARGET/IPHONEOS\_DEPLOYMENT\_TARGET environment variable can be +% used to set the default target OS version. In case of Mac OS X, it has to be of the format +% XY.Z or XY.Z.AB with X, Y,Z , A and B all digits from 0-9. +% In case of iOS, it has to be X.Z.A, where X, Z and A can all be either 1 or 2 +% digits from 0-9. +option_illegal_fpu_eabihf=11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when using the EABIHF ABI target +% The EABIHF (VFP hardfloat) ABI target can only be used with VFP FPUs. +option_w_unsupported_debug_format=11053_W_The selected debug format is not supported on the current target, not changing the current setting +% Not all targets support all debug formats (in particular, Stabs is not supported on 64 bit targets). +option_missing_arg=11054_E_argument to "$1" is missing +% Displayed when parameter must be followed by an argument. +option_malformed_para=11055_E_malformed parameter: $1 +% Given argument is not valid for parameter. +option_smart_link_requires_external_linker=11056_W_Smart linking requires external linker +option_com_files_require_tiny_model=11057_E_Creating .COM files is not supported in the current memory model. Only the tiny memory model supports making .COM files. + + +%\end{description} +# EndOfTeX + +# +# Whole program optimization +# +# 12019 is the last used one +# +# BeginOfTeX +% +% \section{Whole program optimization messages} +% This section lists errors that occur when the compiler is performing +% whole program optimization. +% \begin{description} +wpo_cant_find_file=12000_F_Cannot open whole program optimization feedback file "$1" +% The compiler cannot open the specified feedback file with whole program optimization information. +wpo_begin_processing=12001_D_Processing whole program optimization information in wpo feedback file "$1" +% The compiler starts processing whole program optimization information found in the named file. +wpo_end_processing=12002_D_Finished processing the whole program optimization information in wpo feedback file "$1" +% The compiler has finished processing the whole program optimization information found in the named file. +wpo_expected_section=12003_E_Expected section header, but got "$2" at line $1 of wpo feedback file +% The compiler expected a section header in the whole program optimization file (starting with \%), +% but did not find it. +wpo_no_section_handler=12004_W_No handler registered for whole program optimization section "$2" at line $1 of wpo feedback file, ignoring +% The compiler has no handler to deal with the mentioned whole program optimization information +% section, and will therefore ignore it and skip to the next section. +wpo_found_section=12005_D_Found whole program optimization section "$1" with information about "$2" +% The compiler encountered a section with whole program optimization information, and according +% to its handler this section contains information usable for the mentioned purpose. +wpo_no_input_specified=12006_F_The selected whole program optimizations require a previously generated feedback file (use -Fw to specify) +% The compiler needs information gathered during a previous compilation run to perform the selected +% whole program optimizations. You can specify the location of the feedback file containing this +% information using the -Fw switch. +wpo_not_enough_info=12007_E_No collected information necessary to perform "$1" whole program optimization found +% While you pointed the compiler to a file containing whole program optimization feedback, it +% did not contain the information necessary to perform the selected optimizations. You most likely +% have to recompile the program using the appropriate -OWxxx switch. +wpo_no_output_specified=12008_F_Specify a whole program optimization feedback file to store the generated info in (using -FW) +% You have to specify the feedback file in which the compiler has to store the whole program optimization +% feedback that is generated during the compilation run. This can be done using the -FW switch. +wpo_output_without_info_gen=12009_E_Not generating any whole program optimization information, yet a feedback file was specified (using -FW) +% The compiler was instructed to store whole program optimization feedback into a file specified using -FW, +% but not to actually generated any whole program optimization feedback. The classes of to be +% generated information can be specified using -OWxxx. +wpo_input_without_info_use=12010_E_Not performing any whole program optimizations, yet an input feedback file was specified (using -Fw) +% The compiler was not instructed to perform any whole program optimizations (no -Owxxx parameters), +% but nevertheless an input file with such feedback was specified (using -Fwyyy). Since this can +% indicate that you forgot to specify an -Owxxx parameter, the compiler generates an error in this case. +wpo_skipping_unnecessary_section=12011_D_Skipping whole program optimization section "$1", because not needed by the requested optimizations +% The whole program optimization feedback file contains a section with information that is not +% required by the selected whole program optimizations. +wpo_duplicate_wpotype=12012_W_Overriding previously read information for "$1" from feedback input file using information in section "$2" +% The feedback file contains multiple sections that provide the same class of information (e.g., +% information about which virtual methods can be devirtualized). In this case, the information in last encountered +% section is used. Turn on debugging output (-vd) to see which class of information is provided by each section. +wpo_cannot_extract_live_symbol_info_strip=12013_E_Cannot extract symbol liveness information from program when stripping symbols, use -Xs- +% Certain symbol liveness collectors extract the symbol information from the linked program. If the symbol information +% is stripped (option -Xs), this is not possible. +wpo_cannot_extract_live_symbol_info_no_link=12014_E_Cannot extract symbol liveness information from program when when not linking +% Certain symbol liveness collectors extract the symbol information from the linked program. If the program is not +% linked by the compiler, this is not possible. +wpo_cannot_find_symbol_progs=12015_F_Cannot find "$1" or "$2" to extract symbol liveness information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% This helper program is normally 'nm', which is part of the GNU binutils. +wpo_error_reading_symbol_file=12016_E_Error during reading symbol liveness information produced by "$1" +% An error occurred during the reading of the symbol liveness file that was generated using the 'nm' or 'objdump' program. The reason +% can be that it was shorter than expected, or that its format was not understood. +wpo_error_executing_symbol_prog=12017_F_Error executing "$1" (exitcode: $2) to extract symbol information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% The helper program produced the reported error code when it was run on the linked program. +wpo_symbol_live_info_needs_smart_linking=12018_E_Collection of symbol liveness information can only help when using smart linking, use -CX -XX +% Whether or not a symbol is live is determined by looking whether it exists in the final linked program. +% Without smart linking/dead code stripping, all symbols are always included, regardless of whether they are +% actually used or not. So in that case all symbols will be seen as live, which makes this optimization ineffective. +wpo_cant_create_feedback_file=12019_E_Cannot create specified whole program optimisation feedback file "$1" +% The compiler is unable to create the file specified using the -FW parameter to store the whole program optimisation information. +%\end{description} +# EndOfTeX + + # # Logo (option -l) # @@ -2497,3 +3822,70 @@ P*2WT_Vælg værktøjsapplikation (MPW tool, MacOS only) %%% option_undefining_symbol=11038_D_Fjerner symbolet $1 % Additional infos about options, displayed % when you have debug option turned on. +%%% parser_e_only_class_methods_via_class_ref=03053_E_Kun klassemetoder kan refereres med en klassereference +% This error occurs in a situation like the following: +% \begin{verbatim} +% Type : +% Tclass = Class of Tobject; +% +% Var C : TClass; +% +% begin +% ... +% C.free +% \end{verbatim} +% \var{Free} is not a class method and hence cannot be called with a class +% reference. +%%% parser_e_only_class_methods=03054_E_Kun klassemetoder kan tilgås i klassemetoder +% This is related to the previous error. You cannot call a method of an object +% from a inside a class method. The following code would produce this error: +% \begin{verbatim} +% class procedure tobject.x; +% +% begin +% free +% \end{verbatim} +% Because free is a normal method of a class it cannot be called from a class +% method. +%%% parser_e_absolute_only_one_var=03095_E_Absolute kan kun associere én variabel +% You cannot specify more than one variable before the \var{absolute} directive. +% Thus, the following construct will provide this error: +% \begin{verbatim} +% Var Z : Longint; +% X,Y : Longint absolute Z; +% \end{verbatim} +% \item [ absolute can only be associated a var or const ] +% The address of a \var{absolute} directive can only point to a variable or a +% typed constant. Therefore, the following code will produce this error: +% \begin{verbatim} +% Procedure X; +% +% var p : longint absolute x; +% \end{verbatim} +% +%%% parser_e_only_publishable_classes_can__be_published=03156_E_Kun klasser der er kompileret i med {$M+}-indstillingen kan bruge published +% In the published section of a class can be only class as fields used which +% are compiled in \var{\{\$M+\}} or which are derived from such a class. Normally +% such a class should be derived from TPersitent +%%% type_w_mixed_signed_unsigned=04035_W_Blanding af fortegnsudtryk og fortegnsfri udtryk giver 64-bit resultat +% If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), +% or if you have overflow and/or range checking turned on and use an arithmetic +% expression (+, -, *, div, mod) in which both signed numbers and longwords appear, +% then everything has to be evaluated in 64bit which is slower than normal +% 32bit arithmetic. You can avoid this by typecasting one operand so it +% matches the resulttype of the other one. +%%% type_w_signed_unsigned_always_false=04044_W_Sammenligning er altid falsk, grundet værdiernes rækkevidde +% There is a comparison between an unsigned value and a signed constant which is +% less than zero. Because of type promotion, the statement will always evaluate to +% false. Exlicitly typecast the constant to the correct range to avoid this problem. +%%% type_w_signed_unsigned_always_true=04045_W_Sammenligning er altid sand, grundet værdiernes rækkevidde +% There is a comparison between an unsigned value and a signed constant which is +% less than zero. Because of type promotion, the statement will always evaluate to +% true. Exlicitly typecast the constant to the correct range to avoid this problem. +%%% type_e_operator_not_allowed=04051_E_Operatoren kan ikke bruges på denne operand-type +% You are trying an operator that is not available for the type of the +% operands +%%% unit_h_source_modified=10041_H_Filen $1 er nyere end PPU-filen $2 (Release-udgave) +% A modified source file for a unit was found that was compiled with the +% release flag (-Ur). The unit will not implicitly be recompiled because +% this release flag is set. diff --git a/compiler/msg/errordu.msg b/compiler/msg/errordu.msg index 2dde74a310..5113823178 100644 --- a/compiler/msg/errordu.msg +++ b/compiler/msg/errordu.msg @@ -1,3 +1,5 @@ +%%% Reordering of errordu.msg respective to errore.msg +%%% Contains all comments from errordu.msg # # German (UTF-8) Language File for Free Pascal # Latest updates contributed by Karl-Michael Schindler aka mischi @@ -2464,6 +2466,17 @@ cg_e_function_not_support_by_selected_instruction_set=06056_E_Die verwendete Fun % \end{description} # EndOfTeX +# +# Assembler reader +# +# 07125 is the last used one +# +cg_f_max_units_reached=06057_F_Maximum number of units ($1) reached for the current target +% Depending of target architecture, the number of units is limited. This limit +% has been reached. A unit counts only if it contains initialization or finalization count. +% +% \end{description} +# EndOfTeX # # Assembler reader # @@ -2829,6 +2842,18 @@ asmw_h_changing_bind_type=08028_H_Änderung des Bind-Typs des Symbols $1 von $2 % \end{description} # EndOfTeX +# +# Executing linker/assembler +# +# 09035 is the last used one +# +# BeginOfTeX +% +% \section{Errors of assembling/linking stage} +% This section lists errors that occur when the compiler is processing the +% command line or handling the configuration files. +% \begin{description} +asmw_e_32bit_not_supported=08029_E_Asm: 32 Bit references not supported # # Executing linker/assembler # @@ -2893,6 +2918,23 @@ exec_e_exe_not_supported=09018_E_Erzeugen von ausführbaren Dateien nicht unters exec_e_dll_not_supported=09019_E_Dynamische Bibliotheken nicht unterstützt % Creating dynamically loadable libraries is not supported for this platform, because it was % not yet implemented in the compiler. +exec_e_static_lib_not_supported=09035_E_Statische Bibliotheken nicht unterstützt +% Creating static libraries is not supported for this platform, because it was +% not yet implemented in the compiler. +% +% \end{description} +# EndOfTeX + +# +# Executable information +# +# 09134 is the last used one +# +# BeginOfTeX +% \section{Executable information messages.} +% This section lists all messages that the compiler emits when an executable program is produced, +% and only when the internal linker is used. +% \begin{description} exec_i_closing_script=09020_I_Schliesse Skript $1 % Informational message showing when writing of the external assembling and linking script is finished. exec_e_res_not_found=09021_E_Resource-Compiler "$1" nicht gefunden, schalte um auf externen Modus @@ -2927,23 +2969,6 @@ exec_n_backquote_cat_file_not_found=09033_N_Die Datei "$1" wurde mit dem Kommand exec_w_init_file_not_found=09034_W_"$1" nicht gefunden; dies wird wahrscheinlich zu einem Fehler beim Linken führen % The compiler adds certain startup code files to the linker only when they are found. % If they are not found, they are not added and this might cause a linking failure. -exec_e_static_lib_not_supported=09035_E_Statische Bibliotheken nicht unterstützt -% Creating static libraries is not supported for this platform, because it was -% not yet implemented in the compiler. -% -% \end{description} -# EndOfTeX - -# -# Executable information -# -# 09134 is the last used one -# -# BeginOfTeX -% \section{Executable information messages.} -% This section lists all messages that the compiler emits when an executable program is produced, -% and only when the internal linker is used. -% \begin{description} execinfo_f_cant_process_executable=09128_F_Kann ausführbare Datei nicht nachbearbeiten: $1 % Fatal error when the compiler is unable to post-process an executable. execinfo_f_cant_open_executable=09129_F_Kann ausführbare Datei nicht öffnen: $1 diff --git a/compiler/msg/errores.msg b/compiler/msg/errores.msg index a525562547..cd8fe5c9b0 100644 --- a/compiler/msg/errores.msg +++ b/compiler/msg/errores.msg @@ -1,3 +1,5 @@ +%%% Reordering of errores.msg respective to errore.msg +%%% Contains all comments from errores.msg # **************** don't edit! ******************* # edit erroresu.msg and convert it to iso-8859-15 # by e.g. @@ -117,18 +119,33 @@ general_i_hint=01016_I_Consejo: % Prefix for Hints general_e_path_does_not_exist=01017_E_La ruta "$1" no existe % The specified path does not exist. -general_e_compilation_aborted=01018_E_Compilacin abortada +general_f_compilation_aborted=01018_F_Compilation aborted +% Compilation was aborted. +general_text_bytes_code=01019_bytes code +% The size of the generated executable code, in bytes. +general_text_bytes_data=01020_bytes data +% The size of the generated program data, in bytes. +general_i_number_of_warnings=01021_I_$1 warning(s) issued +% Total number of warnings issued during compilation. +general_i_number_of_hints=01022_I_$1 hint(s) issued +% Total number of hints issued during compilation. +general_i_number_of_notes=01023_I_$1 note(s) issued +% Total number of notes issued during compilation. +general_f_ioerror=01024_F_I/O error: $1 +% During compilation an I/O error happened which allows no further compilation. +general_f_oserror=01025_F_Operating system error: $1 +% During compilation an operating system error happened which allows no further compilation. % \end{description} # # Scanner # -# 02063 is the last used one +# 02098 is the last used one # % \section{Scanner messages.} % This section lists the messages that the scanner emits. The scanner takes % care of the lexical structure of the pascal file, i.e. it tries to find % reserved words, strings, etc. It also takes care of directives and -% conditional compiling handling. +% conditional compilation handling. % \begin{description} scan_f_end_of_file=02000_F_Final de fichero inesperado % this typically happens in one of the following cases : @@ -172,12 +189,14 @@ scan_f_cannot_open_input=02012_F_No se puede abrir el fichero "$1" scan_f_cannot_open_includefile=02013_F_No se puede abrir el fichero de inclusion "$1" % \fpc cannot find the source file you specified in a \var{\{\$include ..\}} % statement. -scan_w_only_pack_records=02015_W_Los campos de los registros pueden ser alineados solo a 1, 2, 4 o 16 bytes -% You are specifying the \var{\{\$PACKRECORDS n\} } with an illegal value for -% \var{n}. Only 1, 2, 4, 8, 16 and 32 are valid in this case. -scan_w_only_pack_enum=02016_W_Los tipos enumerados solo pueden ser almacenados en 1, 2 o 4 bytes +scan_e_illegal_pack_records=02015_E_Illegal record alignment specifier "$1" +% You are specifying \var{\{\$PACKRECORDS n\} } or \var{\{\$ALIGN n\} } +% with an illegal value for \var{n}. For \$PACKRECORDS valid alignments are 1, 2, 4, 8, 16, 32, C, +% NORMAL, DEFAULT, and for \$ALIGN valid alignments are 1, 2, 4, 8, 16, 32, ON, +% OFF. Under mode MacPas \$ALIGN also supports MAC68K, POWER and RESET. +scan_e_illegal_pack_enum=02016_E_Illegal enum minimum-size specifier "$1" % You are specifying the \var{\{\$PACKENUM n\}} with an illegal value for -% \var{n}. Only 1,2 or 4 are valid in this case. +% \var{n}. Only 1,2,4, NORMAL or DEFAULT is valid here. scan_e_endif_expected=02017_E_$1 esperado para $2 definido en la lnea $3 % Your conditional compilation statements are unbalanced. scan_e_preproc_syntax_error=02018_E_Error de sintaxis mientras se procesaba una expresin de compilacin condicional @@ -206,7 +225,7 @@ scan_e_keyword_cant_be_a_macro=02028_E_Palabra clave redefinida como macro no ti % You cannot redefine keywords with macros. scan_f_macro_buffer_overflow=02029_F_Desbordamiento del buffer de macro durante la lextura o expansin % Your macro or its result was too long for the compiler. -can_w_macro_too_deep=02030_W_La expansin de macros excede una profundidad de 16. +scan_w_macro_too_deep=02030_W_Expanding of macros exceeds a depth of 16. % When expanding a macro, macros have been nested to a level of 16. % The compiler will expand no further, since this may be a sign that % recursion is used. @@ -325,6 +344,94 @@ scan_e_error_macro_undefined=02068_E_Variable en tiempo de compilaci % semantics of you language, i.e. it determines if your pascal constructs % are correct. % \begin{description} +scan_e_utf8_bigger_than_65535=02069_E_UTF-8 code greater than 65535 found +% \fpc handles UTF-8 strings internally as widestrings, i.e. the char codes are limited to 65535. +scan_e_utf8_malformed=02070_E_Malformed UTF-8 string +% The given string isn't a valid UTF-8 string. +scan_c_switching_to_utf8=02071_C_UTF-8 signature found, using UTF-8 encoding +% The compiler found a UTF-8 encoding signature (\$ef, \$bb, \$bf) at the beginning of a file, +% so it interprets it as a UTF-8 file. +scan_e_compile_time_typeerror=02072_E_Compile time expression: Wanted $1 but got $2 at $3 +% The type-check of a compile time expression failed. +scan_n_app_type_not_support=02073_N_APPTYPE is not supported by the target OS +% The \var{\{\$APPTYPE\}} directive is supported by certain operating systems only. +scan_e_illegal_optimization_specifier=02074_E_Illegal optimization specified "$1" +% You specified an optimization with the \var{\{\$OPTIMIZATION xxx\}} directive, +% and the compiler didn't recognize the optimization you specified. +scan_w_setpeflags_not_support=02075_W_SETPEFLAGS is not supported by the target OS +% The \var{\{\$SETPEFLAGS\}} directive is not supported by the target OS. +scan_w_imagebase_not_support=02076_W_IMAGEBASE is not supported by the target OS +% The \var{\{\$IMAGEBASE\}} directive is not supported by the target OS. +scan_w_minstacksize_not_support=02077_W_MINSTACKSIZE is not supported by the target OS +% The \var{\{\$MINSTACKSIZE\}} directive is not supported by the target OS. +scan_w_maxstacksize_not_support=02078_W_MAXSTACKSIZE is not supported by the target OS +% The \var{\{\$MAXSTACKSIZE\}} directive is not supported by the target OS. +scanner_e_illegal_warn_state=02079_E_Illegal state "$1" for $WARN directive +% Only ON and OFF can be used as state with a \var{\{\$WARN\}} compiler directive. +scan_e_only_packset=02080_E_Illegal set packing value +% Only 0, 1, 2, 4, 8, DEFAULT and NORMAL are allowed as packset parameters. +scan_w_pic_ignored=02081_W_PIC directive or switch ignored +% Several targets, such as \windows, do not support nor need PIC, +% so the PIC directive and switch are ignored. +scan_w_unsupported_switch_by_target=02082_W_The switch "$1" is not supported by the currently selected target +% Some compiler switches like \$E are not supported by all targets. +scan_w_frameworks_darwin_only=02084_W_Framework-related options are only supported for Darwin/Mac OS X +% Frameworks are not a known concept, or at least not supported by FPC, +% on operating systems other than Darwin/Mac OS X. +scan_e_illegal_minfpconstprec=02085_E_Illegal minimal floating point constant precision "$1" +% Valid minimal precisions for floating point constants are default, 32 and 64, +% which mean respectively minimal (usually 32 bit), 32 bit and 64 bit precision. +scan_w_multiple_main_name_overrides=02086_W_Overriding name of "main" procedure multiple times, was previously set to "$1" +% The name for the main entry procedure is specified more than once. Only the last +% name will be used. +scanner_w_illegal_warn_identifier=02087_W_Illegal identifier "$1" for $WARN directive +% Identifier is not known by a \var{\{\$WARN\}} compiler directive. +scanner_e_illegal_alignment_directive=02088_E_Illegal alignment directive +% The alignment directive is not valid. Either the alignment type is not known or the alignment +% value is not a power of two. +scanner_f_illegal_utf8_bom=02089_F_It is not possible to include a file that starts with an UTF-8 BOM in a module that uses a different code page +% All source code that is part of a single compilation entity (program, library, unit) must be encoded +% in the same code page +scanner_w_directive_ignored_on_target=02090_W_Directive "$1" is ignored for the current target platform +% Some directives are ignored for certain targets, such as changing the +% packrecords and packenum settings on managed platforms. +scan_w_unavailable_system_codepage=02091_W_Current system codepage "$1" is not available for the compiler. Switching default codepage back to "$2". +% The current system codepage is not known by the compiler. +% The compiler is compiled with support for several codepages built-in. +% The codepage of the operation system is not in that list. You will need to recompile +% the compiler with support for this codepage. +scan_w_setpeoptflags_not_support=02092_W_SETPEOPTFLAGS is not supported by the target OS +% The \var{\{\$SETPEOPTFLAGS\}} directive is not supported by the target OS. +scan_e_illegal_peflag=02093_E_Illegal argument for SETPEFLAGS +% The given argument for SETPEFLAGS is neither a correct named value nor an +% ordinal value +scan_e_illegal_peoptflag=02094_E_Illegal argument for SETPEOPTFLAGS +% The given argument for SETPEOPTFLAGS is neither a correct named value nor an +% ordinal value +scan_e_unsupported_switch=02095_E_Directive $1 is not supported on this target +% Not all compiler directives are supported on all targets. +scan_w_invalid_stacksize=02096_W_The specified stack size is not within the valid range for the platform. Setting the stack size ignored. +% The valid range for the stack size is 1024 - 67107839 on 32-bit and 64-bit +% platforms and 1024 - 65520 on 16-bit platforms. Additionally, for Turbo Pascal 7 +% compatibility reasons, specifying a stack size of 65521 on 16-bit platforms +% actually sets the stack size to 65520. +scan_w_heapmax_lessthan_heapmin=02097_W_The specified HeapMax value is smaller than the HeapMin value. Setting HeapMax ignored. +% The HeapMax value (if specified) must be greater than or equal to the HeapMin +% value. Otherwise, the HeapMax value is ignored. +scan_e_illegal_hugepointernormalization=02098_E_Illegal argument for HUGEPOINTERNORMALIZATION +% The only allowed values for HUGEPOINTERNORMALIZATION are BORLANDC, MICROSOFTC +% and WATCOMC. +% \end{description} +# +# Parser +# +# 03339 is the last used one +# +% \section{Parser messages} +% This section lists all parser messages. The parser takes care of the +% semantics of you language, i.e. it determines if your Pascal constructs +% are correct. +% \begin{description} parser_e_syntax_error=03000_E_Analizador - Error de sintaxis % An error against the Turbo Pascal language was encountered. This happens % typically when an illegal character is found in the sources file. @@ -342,6 +449,7 @@ parser_e_export_ordinal_double=03009_E_Indice de funcion exportada "$1" duplicad parser_e_export_invalid_index=03010_E_Indice de funcion exportada invlido % DLL function index must be in the range \var{1..\$FFFF} parser_w_parser_reloc_no_debug=03011_W_La informacion de depurado $1 para ejecutables o DLLs reubicables no funciona. Desactivado. +% It is currently not possible to include debug information in a relocatable DLL. parser_w_parser_win32_debug_needs_WN=03012_W_Para permitir el depurado en win32 las reubicaciones deben ser desactivadas con la opcion -WN % Stabs info is wrong for relocatable DLL or EXES use -WN % if you want to debug win32 executables. @@ -465,7 +573,7 @@ parser_e_fail_only_in_constructor=03051_E_FAIL solo puede ser usado en construct parser_e_no_paras_for_destructor=03052_E_Los destructores no pueden tener parmetros % You are declaring a destructor with a parameter list. Destructor methods % cannot have parameters. -parser_e_only_class_methods_via_class_ref=03053_E_Solo los mtodos de clases pueden ser referidos con referencias de clase +parser_e_only_class_members_via_class_ref=03053_E_Only class methods, class properties and class variables can be referred with class references % This error occurs in a situation like the following: % \begin{verbatim} % Type : @@ -479,9 +587,9 @@ parser_e_only_class_methods_via_class_ref=03053_E_Solo los m % \end{verbatim} % \var{Free} is not a class method and hence cannot be called with a class % reference. -parser_e_only_class_methods=03054_E_Los mtodos de clase solo pueden ser acceder a otros mtodos de clase +parser_e_only_class_members=03054_E_Only class methods, class properties and class variables can be accessed in class methods % This is related to the previous error. You cannot call a method of an object -% from a inside a class method. The following code would produce this error: +% from inside a class method. The following code would produce this error: % \begin{verbatim} % class procedure tobject.x; % @@ -617,22 +725,14 @@ parser_e_mix_of_classes_and_objects=03093_E_No se permite la mezcla de objetos d % a class cannot have an object as parent and vice versa. parser_w_unknown_proc_directive_ignored=03094_W_Directiva de procedimiento desconocida fue ignorada: "$1" % The procedure directive you specified is unknown. -parser_e_absolute_only_one_var=03095_E_absolute solo puede estar asociado a una variable -% You cannot specify more than one variable before the \var{absolute} directive. -% Thus, the following construct will provide this error: +parser_e_directive_only_one_var=03095_E_$1 can be associated with only one variable +% You cannot specify more than one variable before the \var{absolute}, \var{export}, \var{external}, +% \var{weakexternal}, \var{public} and \var{cvar} directives. +% As a result, for example the following construct will provide this error: % \begin{verbatim} % Var Z : Longint; % X,Y : Longint absolute Z; % \end{verbatim} -% \item [ absolute can only be associated a var or const ] -% The address of a \var{absolute} directive can only point to a variable or a -% typed constant. Therefore, the following code will produce this error: -% \begin{verbatim} -% Procedure X; -% -% var p : longint absolute x; -% \end{verbatim} -% parser_e_absolute_only_to_var_or_const=03096_E_absolute solo puede ser asociado con var o const % The address of a \var{absolute} directive can only point to a variable or % constant. Therefore, the following code will produce this error: @@ -814,10 +914,10 @@ parser_e_ill_property_storage_sym=03155_E_Este s % You can't use this type of symbol as storage specifier in property % declaration. You can use only methods with the result type boolean, % boolean class fields or boolean constants -parser_e_only_publishable_classes_can__be_published=03156_E_Solo clases compiladas en $M+ pueden ser publicadas -% In the published section of a class can be only class as fields used which -% are compiled in \var{\{\$M+\}} or which are derived from such a class. Normally -% such a class should be derived from TPersitent +parser_e_only_publishable_classes_can_be_published=03156_E_Only classes which are compiled in $M+ mode can be published +% A class-typed field in the published section of a class can only be a class which was +% compiled in \var{\{\$M+\}} or which is derived from such a class. Normally +% such a class should be derived from \var{TPersistent}. parser_e_proc_directive_expected=03157_E_Directiva de procedimiento esperada % When declaring a procedure in a const block you used a ; after the % procedure declaration after which a procedure directive must follow. @@ -847,7 +947,14 @@ parser_e_no_export_with_index_for_target=03163_E_No se pueden exportar funciones parser_e_no_export_of_variables_for_target=03164_E_Exportar variables no esta soportado en $1 % Exporting of variables is not supported on this target. parser_e_improper_guid_syntax=03165_E_Sintaxis de GUID incorrecta +% The GUID indication does not have the proper syntax. It should be of the form +% \begin{verbatim} +% {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} +% \end{verbatim} +% Where each \var{X} represents a hexadecimal digit. parser_w_interface_mapping_notfound=03168_W_No se encontro el procedimiento de nombre "$1" apropiado para implementar $2.$3 +% The compiler cannot find a suitable procedure which implements the given method of an interface. +% A procedure with the same name is found, but the arguments do not match. parser_e_interface_id_expected=03169_E_identificador de interfaz esperado % This happens when the compiler scans a \var{class} declaration that contains % \var{interface} function name mapping code like this: @@ -905,7 +1012,17 @@ parser_e_no_procvarobj_const=03183_E_constantes con tipo de tipo Procedure/Funct % 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). parser_e_default_value_only_one_para=03184_E_Slo se puede asignar valor por defecto a un parmetro +% It is not possible to specify a default value for several parameters at once. +% The following is invalid: +% \begin{verbatim} +% Procedure MyProcedure (A,B : Integer = 0); +% \end{verbatim} +% Instead, this should be declared as +% \begin{verbatim} +% Procedure MyProcedure (A : Integer = 0; B : Integer = 0); +% \end{verbatim} parser_e_default_value_expected_for_para=03185_E_Parmetro por defecto requerido para "$1" +% The specified parameter requires a default value. parser_w_unsupported_feature=03186_W_Uso de una caracteristica no soportada! % You're trying to force the compiler into doing something it cannot do yet. parser_h_c_arrays_are_references=03187_H_Arrays tipo C son pasados por referencia @@ -1016,6 +1133,436 @@ parser_e_arithmetic_operation_overflow=03213_E_Desbordamiento en la operaci % This section lists all errors that can occur when type checking is % performed. % \begin{description} +parser_e_protected_or_private_expected=03214_E_Protected or private expected +% \var{strict} can be only used together with \var{protected} or \var{private}. +parser_e_illegal_slice=03215_E_SLICE cannot be used outside of parameter list +% \var{slice} can be used only for arguments accepting an open array parameter. +parser_e_dispinterface_cant_have_parent=03216_E_A DISPINTERFACE cannot have a parent class +% A DISPINTERFACE is a special type of interface which cannot have a parent class. Dispinterface always derive from IDispatch type. +parser_e_dispinterface_needs_a_guid=03217_E_A DISPINTERFACE needs a guid +% A DISPINTERFACE always needs an interface identification (a GUID). +parser_w_overridden_methods_not_same_ret=03218_W_Overridden methods must have a related return type. This code may crash, it depends on a Delphi parser bug ("$2" is overridden by "$1" which has another return type) +% If you declare overridden methods in a class definition, they must +% have the same return type. Some versions of Delphi allow you to change the +% return type of interface methods, and even to change procedures into +% functions, but the resulting code may crash depending on the types used +% and the way the methods are called. +parser_e_dispid_must_be_ord_const=03219_E_Dispatch IDs must be ordinal constants +% The \var{dispid} keyword must be followed by an ordinal constant (the dispid index). +parser_e_array_range_out_of_bounds=03220_E_The range of the array is too large +% Regardless of the size taken up by its elements, an array cannot have more +% than high(ptrint) elements. Additionally, the range type must be a subrange +% of ptrint. +parser_e_packed_element_no_var_addr=03221_E_The address cannot be taken of bit packed array elements and record fields +% If you declare an array or record as \var{packed} in Mac Pascal mode +% (or as \var{packed} in any mode with \var{\{\$bitpacking on\}}), it will +% be packed at the bit level. This means it becomes impossible to take addresses +% of individual array elements or record fields. The only exception to this rule +% is in the case of packed arrays elements whose packed size is a multiple of 8 bits. +parser_e_packed_dynamic_open_array=03222_E_Dynamic arrays cannot be packed +% Only regular (and possibly in the future also open) arrays can be packed. +parser_e_packed_element_no_loop=03223_E_Bit packed array elements and record fields cannot be used as loop variables +% If you declare an array or record as \var{packed} in Mac Pascal mode +% (or as \var{packed} in any mode with \var{\{\$bitpacking on\}}), it will +% be packed at the bit level. For performance reasons, they cannot be +% used as loop variables. +parser_e_type_var_const_only_in_records_and_classes=03224_E_VAR, TYPE and CONST are allowed only in records, objects and classes +% The usage of VAR, TYPE and CONST to declare new types inside an object is allowed only inside +% records, objects and classes. +parser_e_cant_create_generics_of_this_type=03225_E_This type cannot be a generic +% Only Classes, Objects, Interfaces and Records are allowed to be used as generic. +parser_w_no_lineinfo_use_switch=03226_W_Don't load LINEINFO unit manually, Use the -gl compiler switch instead +% Do not use the \file{lineinfo} unit directly, Use the \var{-gl} switch which +% automatically adds the correct unit for reading the selected type of debugging +% information. The unit that needs to be used depends on the type of +% debug information used when compiling the binary. +parser_e_no_funcret_specified=03227_E_No function result type specified for function "$1" +% The first time you declare a function you have to declare it completely, +% including all parameters and the result type. +parser_e_special_onlygenerics=03228_E_Specialization is only supported for generic types +% Types which are not generics cannot be specialized. +parser_e_no_generics_as_params=03229_E_Generics cannot be used as parameters when specializing generics +% When specializing a generic, only non-generic types can be used as parameters. +parser_e_type_object_constants=03230_E_Constants of objects containing a VMT are not allowed +% If an object requires a VMT either because it contains a constructor or virtual methods, +% it's not allowed to create constants of it. In TP and Delphi mode this is allowed +% for compatibility reasons. +parser_e_label_outside_proc=03231_E_Taking the address of labels defined outside the current scope isn't allowed +% It isn't allowed to take the address of labels outside the +% current procedure. +parser_e_initialized_not_for_external=03233_E_Cannot initialize variables declared as external +% Variables declared as external cannot be initialized with a default value. +parser_e_illegal_function_result=03234_E_Illegal function result type +% Some types like file types cannot be used as function result. +parser_e_no_common_type=03235_E_No common type possible between "$1" and "$2" +% To perform an operation on integers, the compiler converts both operands +% to their common type, which appears to be an invalid type. To determine the +% common type of the operands, the compiler takes the minimum of the minimal values +% of both types, and the maximum of the maximal values of both types. The common +% type is then minimum..maximum. +parser_e_no_generics_as_types=03236_E_Generics without specialization cannot be used as a type for a variable +% Generics must be always specialized before being used as variable type. +parser_w_register_list_ignored=03237_W_Register list is ignored for pure assembler routines +% When using pure assembler routines, the list with modified registers is ignored. +parser_e_implements_must_be_class_or_interface=03238_E_Implements property must have class or interface type +% A property which implements an interface must be of type class or interface. +parser_e_implements_must_have_correct_type=03239_E_Implements-property must implement interface of correct type, found "$1" expected "$2" +% A property which implements an interface actually implements a different interface. +parser_e_implements_must_read_specifier=03240_E_Implements-property must have read specifier +% A property which implements an interface must have at least a read specifier. +parser_e_implements_must_not_have_write_specifier=03241_E_Implements-property must not have write-specifier +% A property which implements an interface may not have a write specifier. +parser_e_implements_must_not_have_stored_specifier=03242_E_Implements-property must not have stored-specifier +% A property which implements an interface may not have a stored specifier. +parser_e_implements_uses_non_implemented_interface=03243_E_Implements-property used on unimplemented interface: "$1" +% The interface which is implemented by a property is not an interface implemented by the class. +parser_e_unsupported_real=03244_E_Floating point not supported for this target +% The compiler parsed a floating point expression, but it is not supported. +parser_e_class_doesnt_implement_interface=03245_E_Class "$1" does not implement interface "$2" +% The delegated interface is not implemented by the class given in the implements clause. +parser_e_class_implements_must_be_interface=03246_E_Type used by implements must be an interface +% The \var{implements} keyword must be followed by an interface type. +parser_e_cant_export_var_different_name=03247_E_Variables cannot be exported with a different name on this target, add the name to the declaration using the "export" directive (variable name: $1, declared export name: $2) +% On most targets it is not possible to change the name under which a variable +% is exported inside the \var{exports} statement of a library. +% In that case, you have to specify the export name at the point where the +% variable is declared, using the \var{export} and \var{alias} directives. +parser_e_weak_external_not_supported=03248_E_Weak external symbols are not supported for the current target +% A "weak external" symbol is a symbol which may or may not exist at (either static +% or dynamic) link time. This concept may not be available (or implemented yet) +% on the current cpu/OS target. +parser_e_forward_mismatch=03249_E_Forward type definition does not match +% Classes and interfaces being defined forward must have the same type +% when being implemented. A forward interface cannot be changed into a class. +parser_n_ignore_lower_visibility=03250_N_Virtual method "$1" has a lower visibility ($2) than parent class $3 ($4) +% The virtual method overrides an method that is declared with a higher visibility. This might give +% unexpected results. E.g., in case the new visibility is private then a call to ``inherited'' in a +% new child class will call the higher-visible method in a parent class and ignores the private method. +parser_e_field_not_allowed_here=03251_E_Fields cannot appear after a method or property definition, start a new visibility section first +% Once a method or property has been defined in a class or object, you cannot define any fields afterwards +% without starting a new visibility section (such as \var{public}, \var{private}, etc.). The reason is +% that otherwise the source code can appear ambiguous to the compiler, since it is possible to use modifiers +% such as \var{default} and \var{register} also as field names. +parser_e_no_local_para_def=03252_E_Parameters or result types cannot contain local type definitions. Use a separate type definition in a type block. +% In Pascal, types are not considered to be identical simply because they are semantically equivalent. +% Two variables or parameters are only considered to be of the same type if they refer to the +% same type definition. +% As a result, it is not allowed to define new types inside parameter lists, because then it is impossible to +% refer to the same type definition in the procedure headers of the interface and implementation of a unit +% (both procedure headers would define a separate type). Keep in mind that expressions such as +% ``file of byte'' or ``string[50]'' also define a new type. +parser_e_abstract_and_sealed_conflict=03253_E_ABSTRACT and SEALED conflict +% ABSTRACT and SEALED cannot be used together in one declaration +parser_e_sealed_descendant=03254_E_Cannot create a descendant of the sealed class "$1" +% Sealed means that class cannot be derived by another class. +parser_e_sealed_class_cannot_have_abstract_methods=03255_E_SEALED class cannot have an ABSTRACT method +% Sealed means that class cannot be derived. Therefore no one class is able to override an abstract method in a sealed class. +parser_e_only_virtual_methods_final=03256_E_Only virtual methods can be final +% You are declaring a method as final, when it is not declared to be +% virtual. +parser_e_final_can_no_be_overridden=03257_E_Final method cannot be overridden: "$1" +% You are trying to \var{override} a virtual method of a parent class that does +% not exist. +parser_e_multiple_messages=03258_E_Only one message can be used per method. +% It is not possible to associate multiple messages with a single method. +parser_e_invalid_enumerator_identifier=03259_E_Invalid enumerator identifier: "$1" +% Only "MoveNext" and "Current" enumerator identifiers are supported. +parser_e_enumerator_identifier_required=03260_E_Enumerator identifier required +% "MoveNext" or "Current" identifier must follow the \var{enumerator} modifier. +parser_e_enumerator_movenext_is_not_valid=03261_E_Enumerator MoveNext pattern method is not valid. Method must be a function with the Boolean return type and no required arguments. +% "MoveNext" enumerator pattern method must be a function with Boolean return type and no required arguments +parser_e_enumerator_current_is_not_valid=03262_E_Enumerator Current pattern property is not valid. Property must have a getter. +% "Current" enumerator pattern property must have a getter +parser_e_only_one_enumerator_movenext=03263_E_Only one enumerator MoveNext method is allowed per class/object +% Class or Object can have only one enumerator MoveNext declaration. +parser_e_only_one_enumerator_current=03264_E_Only one enumerator Current property is allowed per class/object +% Class or Object can have only one enumerator Current declaration. +parser_e_for_in_loop_cannot_be_used_for_the_type=03265_E_For in loop cannot be used for the type "$1" +% For in loop can be used not for all types. For example it cannot be used for the enumerations with jumps. +parser_e_objc_requires_msgstr=03266_E_Objective-C messages require their Objective-C selector name to be specified using the "message" directive. +% Objective-C messages require their Objective-C name (selector name) to be specified using the \var{message `someName:'} procedure directive. +% While bindings to other languages automatically generate such names based on the identifier you use (by replacing +% all underscores with colons), this is unsafe since nothing prevents an Objective-C method name to contain actual +% colons. +parser_e_objc_no_constructor_destructor=03267_E_Objective-C does not have formal constructors nor destructors. Use the alloc, initXXX and dealloc messages. +% The Objective-C language does not have any constructors or destructors. While there are some messages with a similar +% purpose (such as \var{init} and \var{dealloc}), these cannot be identified using automatic parsers and do not +% guarantee anything like Pascal constructors/destructors (e.g., you have to take care of only calling ``designated'' +% inherited ``constructors''). For these reasons, we have opted to follow the standard Objective-C patterns for +% instance creation/destruction. +parser_e_message_string_too_long=03268_E_Message name is too long (max. 255 characters) +% Due to compiler implementation reasons, message names are currently limited to 255 characters. +parser_e_objc_message_name_too_long=03269_E_Objective-C message symbol name for "$1" is too long +% Due to compiler implementation reasons, mangled message names (i.e., the symbol names used in the assembler +% code) are currently limited to 255 characters. +parser_h_no_objc_parent=03270_H_Defining a new Objective-C root class. To derive from another root class (e.g., NSObject), specify it as the parent class. +% If no parent class is specified for an Object Pascal class, then it automatically derives from TObject. +% Objective-C classes however do not automatically derive from NSObject, because one can have multiple +% root classes in Objective-C. For example, in the Cocoa framework both NSObject and NSProxy are root classes. +% Therefore, you have to explicitly define a parent class (such as NSObject) if you want to derive your +% Objective-C class from it. +parser_e_no_objc_published=03271_E_Objective-C classes cannot have published sections. +% In Object Pascal, ``published'' determines whether or not RTTI is generated. Since the Objective-C runtime always needs +% RTTI for everything, this specified does not make sense for Objective-C classes. +parser_f_need_objc=03272_F_This module requires an Objective-C mode switch to be compiled +% This error indicates the use of Objective-C language features without an Objective-C mode switch +% active. Enable one via the -M command line switch, or the {\$modeswitch x} directive. +parser_e_must_use_override=03273_E_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1) +parser_h_should_use_override=03274_H_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1). +% It is not possible to \var{reintroduce} methods in Objective-C or Java like in Object Pascal. Methods with the same +% name always map to the same virtual method entry. In order to make this clear in the source code, +% the compiler always requires the \var{override} directive to be specified when implementing overriding +% Objective-C or Java methods in Pascal. If the implementation is external, this rule is relaxed because Objective-C and Java +% do not have any \var{override}-style keyword (since it's the default and only behaviour in these languages), +% which makes it hard for automated header conversion tools to include it everywhere. +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory in case of Objective-C. +parser_e_objc_message_name_changed=03275_E_Message name "$1" in inherited class is different from message name "$2" in current class. +% An overriding Objective-C method cannot have a different message name than an inherited method. The reason +% is that these message names uniquely define the message to the Objective-C runtime, which means that +% giving them a different message name breaks the ``override'' semantics. +parser_e_unique_unsupported=03276_E_It is not yet possible to make unique copies of Objective-C or Java types +% Duplicating an Objective-C or Java type using \var{type x = type y;} is not yet supported. You may be able to +% obtain the desired effect using \var{type x = objcclass(y) end;} resp.{} \var{type x = class(y) end;} instead. +parser_e_no_category_as_types=03277_E_Objective-C categories and Object Pascal class helpers cannot be used as types +% It is not possible to declare a variable as an instance of an Objective-C +% category or an Object Pascal class helper. A category/class helper adds +% methods to the scope of an existing class, but does not define a type by +% itself. An exception of this rule is when inheriting an Object Pascal class +% helper from another class helper. +parser_e_no_category_override=03278_E_Categories do not override, but replace methods. Use "reintroduce" instead. +parser_e_must_use_reintroduce_objc=03279_E_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +parser_h_should_use_reintroduce_objc=03280_H_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +% A category replaces an existing method in an Objective-C class, rather than that it overrides it. +% Calling an inherited method from an category method will call that method in +% the extended class' parent, not in the extended class itself. The +% replaced method in the original class is basically lost, and can no longer be +% called or referred to. This behaviour corresponds somewhat more closely to +% \var{reintroduce} than to \var{override} (although in case of \var{reintroduce} +% in Object Pascal, hidden methods are still reachable via inherited). +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory. +parser_e_implements_getter_not_default_cc=03281_E_Getter for implements interface must use the target's default calling convention. +% Interface getters are called via a helper in the run time library, and hence +% have to use the default calling convention for the target (\var{register} on +% i386 and x86\_64, \var{stdcall} on other architectures). +parser_e_no_refcounted_typed_file=03282_E_Typed files cannot contain reference-counted types. +% The data in a typed file cannot be of a reference counted type (such as +% \var{ansistring} or a record containing a field that is reference counted). +parser_e_operator_not_overloaded_2=03283_E_Operator is not overloaded: $2 "$1" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_operator_not_overloaded_3=03284_E_Operator is not overloaded: "$1" $2 "$3" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_more_array_elements_expected=03285_E_Expected another $1 array elements +% When declaring a typed constant array, you provided to few elements to initialize the array +parser_e_string_const_too_long=03286_E_String constant too long while ansistrings are disabled +% Only when a piece of code is compiled with ansistrings enabled (\var{\{\$H+\}}), string constants +% longer than 255 characters are allowed. +parser_e_invalid_univ_para=03287_E_Type cannot be used as univ parameter because its size is unknown at compile time: "$1" +% \var{univ} parameters are compatible with all values of the same size, but this +% cannot be checked in case a parameter's size is unknown at compile time. +parser_e_only_one_class_constructor_allowed=03288_E_Only one class constructor can be declared in class: "$1" +% You are trying to declare more than one class constructor but only one class constructor can be declared. +parser_e_only_one_class_destructor_allowed=03289_E_Only one class destructor can be declared in class: "$1" +% You are trying to declare more than one class destructor but only one class destructor can be declared. +parser_e_no_paras_for_class_constructor=03290_E_Class constructors cannot have parameters +% You are declaring a class constructor with a parameter list. Class constructor methods +% cannot have parameters. +parser_e_no_paras_for_class_destructor=03291_E_Class destructors cannot have parameters +% You are declaring a class destructor with a parameter list. Class destructor methods +% cannot have parameters. +parser_f_modeswitch_objc_required=03292_F_This construct requires the \{\$modeswitch objectivec1\} mode switch to be active +% Objective-Pascal constructs are not supported when \{\$modeswitch ObjectiveC1\} +% is not active. +parser_e_widestring_to_ansi_compile_time=03293_E_Unicodechar/string constants cannot be converted to ansi/shortstring at compile-time +% It is not possible to use unicodechar and unicodestring constants in +% constant expressions that have to be converted into an ansistring or shortstring +% at compile time, for example inside typed constants. The reason is that the +% compiler cannot know what the actual ansi encoding will be at run time. +parser_e_objc_enumerator_2_0=03294_E_For-in Objective-Pascal loops require \{\$modeswitch ObjectiveC2\} to be active +% Objective-C ``fast enumeration'' support was added in Objective-C 2.0, and +% hence the appropriate modeswitch has to be activated to expose this feature. +% Note that Objective-C 2.0 programs require Mac OS X 10.5 or later. +parser_e_objc_missing_enumeration_defs=03295_E_The compiler cannot find the NSFastEnumerationProtocol or NSFastEnumerationState type in the CocoaAll unit +% Objective-C for-in loops (fast enumeration) require that the compiler can +% find a unit called CocoaAll that contains definitions for the +% NSFastEnumerationProtocol and NSFastEnumerationState types. If you get this +% error, most likely the compiler is finding and loading an alternate CocoaAll +% unit. +parser_e_no_procvarnested_const=03296_E_Typed constants of the type 'procedure is nested' can only be initialized with NIL and global procedures/functions +% A nested procedural variable consists of two components: the address of the +% procedure/function to call (which is always known at compile time), and also +% a parent frame pointer (which is never known at compile time) in case the +% procedural variable contains a reference to a nested procedure/function. +% Therefore such typed constants can only be initialized with global +% functions/procedures since these do not require a parent frame pointer. +parser_f_no_generic_inside_generic=03297_F_Declaration of generic class inside another generic class is not allowed +% At the moment, scanner supports recording of only one token buffer at the time +% (guarded by internal error 200511173 in tscannerfile.startrecordtokens). +% Since generics are implemented by recording tokens, it is not possible to +% have declaration of generic class inside another generic class. +parser_e_forward_intf_declaration_must_be_resolved=03298_E_Forward declaration "$1" must be resolved before a class can conform to or implement it +% An Objective-C protocol or Java Interface must be fully defined before classes can conform to it. +% This error occurs in the following situation (example for Objective-C, but the same goes for Java interfaces): +% \begin{verbatim} +% Type MyProtocol = objcprotoocl; +% ChildClass = Class(NSObject,MyProtocol) +% ... +% end; +% \end{verbatim} +% where \var{MyProtocol} is declared but not defined. +parser_e_no_record_published=03299_E_Record types cannot have published sections +% Published sections can be used only inside classes. +parser_e_no_destructor_in_records=03300_E_Destructors are not allowed in records or helpers +% Destructor declarations are not allowed in records or helpers. +parser_e_class_methods_only_static_in_records=03301_E_Class methods must be static in records +% Class methods declarations are not allowed in records without static modifier. +% Records have no inheritance and therefore non static class methods have no sense for them. +parser_e_no_parameterless_constructor_in_records=03302_E_Parameterless constructors are not allowed in records or record/type helpers +% Constructor declarations with no arguments are not allowed in records or record/type helpers. +parser_e_at_least_one_argument_must_be_of_type=03303_E_Either the result or at least one parameter must be of type "$1" +% It is required that either the result of the routine or at least one of its parameters be of the specified type. +% For example class operators either take an instance of the structured type in which they are defined, or they return one. +parser_e_cant_use_type_parameters_here=03304_E_Type parameters may require initialization/finalization - cannot be used in variant records +% Type parameters may be specialized with types which (e.g. \var{ansistring}) need initialization/finalization +% code which is implicitly generated by the compiler. +parser_e_externals_no_section=03305_E_Variables being declared as external cannot be in a custom section +% A section directive is not valid for variables being declared as external. +parser_e_section_no_locals=03306_E_Non-static and non-global variables cannot have a section directive +% A variable placed in a custom section is always statically allocated so it must be either a static or global variable. +parser_e_not_allowed_in_helper=03307_E_"$1" is not allowed in helper types +% Some directives and specifiers like "virtual", "dynamic", "override" are not +% allowed inside helper types in mode ObjFPC (they are ignored in mode Delphi), +% because they have no meaning within helpers. Also "abstract" isn't allowed in +% either mode. +parser_e_no_class_constructor_in_helpers=03308_E_Class constructors are not allowed in helpers +% Class constructor declarations are not allowed in helpers. +parser_e_inherited_not_in_record=03309_E_The use of "inherited" is not allowed in a record +% As records don't support inheritance the use of "inherited" is prohibited for +% these as well as for record helpers (in mode "Delphi" only). +parser_e_no_types_in_local_anonymous_records=03310_E_Type declarations are not allowed in local or anonymous records +% Records with types must be defined globally. Types cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_duplicate_implements_clause=03311_E_Duplicate implements clause for interface "$1" +% A class may delegate an interface using the "implements" clause only to a single property. Delegating it multiple times +% is a error. +parser_e_mapping_no_implements=03312_E_Interface "$1" cannot be delegated by "$2", it already has method resolutions +% Method resolution clause maps a method of an interface to a method of the current class. Therefore the current class +% has to implement the interface directly. Delegation is not possible. +parser_e_implements_no_mapping=03313_E_Interface "$1" cannot have method resolutions, "$2" already delegates it +% Method resolution is only possible for interfaces that are implemented directly, not by delegation. +parser_e_invalid_codepage=03314_E_Invalid codepage +% When declaring a string with a given codepage, the range of valid codepages values is limited +% to 0 to 65535. +parser_e_final_only_const_var=03315_E_Only fields (var-sections) and constants can be final in object types +% A final (class) field must be assigned a single value in the (class) constructor, and cannot +% be overwritten afterwards. A final (typed) constant is read-only. +parser_e_final_only_external=03316_E_Final fields are currently only supported for external classes +% Support for final fields in non-external classes requires a full data flow +% analysis implementation in FPC, which it currently still lacks. +parser_e_no_typed_const=03317_E_Typed constants are not allowed here, only formal constants are +% Java interfaces define a namespace in which formal constant can be defined, +% but since they define no storage it is not possible to define typed constants +% in them (those are more or less the same as initialised class fields). +parser_e_java_no_inherited_constructor=03318_E_Constructors are not automatically inherited in the JVM; explicitly add a constructor that calls the inherited one if you need it +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% For compatibility with external Java code, FPC does the same. If you require access to the same +% constructors in a child class, define them in the child class and call the inherited one from +% there. +parser_d_internal_parser_string=03319_D_Parsing internally generated code: $1 +% The compiler sometimes internally constructs Pascal code that is subsequently +% injected into the program. These messages display such code, in order to help +% with debugging errors in them. +parser_e_feature_unsupported_for_vm=03320_E_This language feature is not supported on managed VM targets +% Certain language features are not supported on targets that are managed virtual machines. +parser_e_jvm_invalid_virtual_constructor_call=03321_E_Calling a virtual constructor for the current instance inside another constructor is not possible on the JVM target +% The JVM does not natively support virtual constructor. Unforunately, we are not aware of a way to +% emulate them in a way that makes it possible to support calling virtual constructors +% for the current instance inside another constructor. +parser_e_method_lower_visibility=03322_E_Overriding method "$1" cannot have a lower visibility ($2) than in parent class $3 ($4) +% The JVM does not allow lowering the visibility of an overriding method. +parser_e_nostackframe_without_assembler=03323_E_Procedure/Function declared with call option NOSTACKFRAME but without ASSEMBLER +% nostackframe call modifier is supposed to be used in conjunction with assembler. +parser_e_nostackframe_with_locals=03324_E_Procedure/Function declared with call option NOSTACKFRAME but local stack size is $1 +% nostackframe call modifier used without assembler modifier +% might still generate local stack needs. +parser_e_cannot_generate_property_getter_setter=03325_E_Cannot generate property getter/setter $1 because its name clashes with existing identifier $2 +% Automatically generated getters/setters cannot have the same name as existing +% identifiers, because this may change the behaviour of existing code. +parser_w_overriding_property_getter_setter=03326_W_Automatically generated property getter/setter $1 overrides the same-named getter/setter in class $2 +% Automatically generated property getters/setters on the JVM platform are virtual methods, because +% the JVM does not support non-virtual methods that can be changed in child classes. This means +% that if a child class changes an inherited property definition, the behaviour of that property +% can change compared to native targets since even if a variable is declared as the parent type, +% by calling the virtual method the getter from the child will be used. This is different from +% the behaviour on native targets or when not activating automatically generated setters/getters, +% because in that case only the declared type of a variable influences the property behaviour. +parser_w_case_difference_auto_property_getter_setter_prefix=03327_W_Case mismatch between declared property getter/setter $1 and automatically constructed name $2, not changing declared name +% If a property's specified getter/setter already corresponded to the naming convention specified +% by the automatic getter/setter generation setting except in terms of upper/lowercase, the +% compiler will print a warning because it cannot necessarily change that other declaration itself +% not can it add one using the correct case (it could conflict with the original declaration). +% Manually correct the case of the getter/setter to conform to the desired coding rules. +% \var{TChild} overrides +parser_e_no_consts_in_local_anonymous_records=03328_E_Constants declarations are not allowed in local or anonymous records +% Records with constants must be defined globally. Constants cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_methods_in_local_anonymous_records=03329_E_Method declarations are not allowed in local or anonymous records +% Records with methods must be defined globally. Methods cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_properties_in_local_anonymous_records=03330_E_Property declarations are not allowed in local or anonymous records +% Records with properties must be defined globally. Properties cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_class_in_local_anonymous_records=03331_E_Class member declarations are not allowed in local or anonymous records +% Records with class members must be defined globally. Class members cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_not_allowed_in_record=03332_E_Visibility section "$1" not allowed in records +% The visibility sections \var(protected) and \var(strict protected) are only +% useful together with inheritance. Since records do not support that they are +% forbidden. +parser_e_dir_not_allowed=03333_E_Directive "$1" not allowed here +% This directive is not allowed in the given context. E.g. "static" +% is not allowed for instance methods or class operators. +parser_e_no_assembler_in_generic=03334_E_Assembler blocks not allowed inside generics +% The use of assembler blocks/routines is not allowed inside generics. +parser_e_property_only_sgr=03335_E_Properties can be only static, global or inside structured types +% Properties cannot be declared local, only global, using the static +% directive or inside structured types. +parser_e_overloaded_have_same_mangled_name=03336_E_Overloaded routines have the same mangled name +% Some platforms, such as the JVM platform, encode the parameters in the routine name in +% a prescribed way, and this encoding may map different Pascal types to the same encoded +% (a.k.a.\ ``mangled'') name. This error can only be solved by removing or changing the +% conflicting definitions' parameter declarations or routine names. +parser_e_default_value_val_const=03337_E_Default values can only be specified for value, const and constref parameters +% A default parameter value allows you to not specify a value for this parameter +% when calling the routine, and the compiler will instead pass the specified +% default (constant) value. As a result, default values can only be specified +% for parameters that can accept constant values. +parser_w_ptr_type_ignored=03338_W_Pointer type "$1" ignored +% The specified pointer type modifier is ignored, because it is not supported on +% the current platform. This happens, for example, when a far pointer is +% declared on a non-x86 platform. +parser_e_global_generic_references_static=03339_E_Global Generic template references static symtable +% A generic declared in the interface section of a unit must not reference symbols that belong +% solely to the implementation section of that unit. +parser_u_already_compiled=03340_UL_Unit $1 has been already compiled meanwhile. +% This tells you that the recursive reading of the uses clauses triggered already +% a compilation of the current unit, so the current compilation can be aborted. +% +% +% +% \end{description} +% +# Type Checking +# +# 04123 is the last used one +# +% \section{Type checking errors} +% This section lists all errors that can occur when type checking is +% performed. +% \begin{description} type_e_mismatch=04000_E_Los tipos no concuerdan % This can happen in many cases: % \begin{itemize} @@ -1149,12 +1696,18 @@ type_e_array_required=04033_E_Se requiere un array para usar [ ] % If you are accessing a variable using an index '[]' then % the type must be an array. In FPC mode also a pointer is allowed. type_e_interface_type_expected=04034_E_Se esperaba "interface" pero se encontr "$1" -type_w_mixed_signed_unsigned=04035_W_Operaciones mezclando enteros de 32 bits con signo son convertidas a 64 bits +% The compiler expected to encounter an interface type name, but got something else. +% The following code would produce this error: +% \begin{verbatim} +% Type +% TMyStream = Class(TStream,Integer) +% \end{verbatim} +type_h_mixed_signed_unsigned=04035_H_Mixing signed expressions and longwords gives a 64bit result % If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), % or if you have overflow and/or range checking turned on and use an arithmetic % expression (+, -, *, div, mod) in which both signed numbers and longwords appear, -% then everything has to be evaluated in 64bit which is slower than normal -% 32bit arithmetic. You can avoid this by typecasting one operand so it +% then everything has to be evaluated in 64-bit arithmetic which is slower than normal +% 32-bit arithmetic. You can avoid this by typecasting one operand so it % matches the result type of the other one. type_w_mixed_signed_unsigned2=04036_W_Mezclar operando con signo y sin signo aqui puede causar errores de comprobacin de rango % If you use a binary operator (and, or, xor) and one of @@ -1180,18 +1733,23 @@ type_w_classes_not_related=04040_W_Los tipos de clases "$1" y "$2" no est % There is a typecast from one class or object to another while the class/object % are not related. This will probably lead to errors type_e_class_or_interface_type_expected=04041_E_Se esperaba una clase o interfaz, pero se encotr "$1" +% The compiler expected a class or interface name, but got another type or identifier. type_e_type_is_not_completly_defined=04042_E_El tipo "$1" no esta definido completamente an +% This error occurs when a type is not complete: i.e. a pointer type which points to +% an undefined type. type_w_string_too_long=04043_W_La cadena contiene mas caracteres que los admitidos por una cadena corta % The size of the constant string, which is assigned to a shortstring, % is longer than the maximum size of the shortstring -type_w_signed_unsigned_always_false=04044_W_La comparacin es siempre falsa debido a los rangos de los valores -% There is a comparison between an unsigned value and a signed constant which is -% less than zero. Because of type promotion, the statement will always evaluate to -% false. Exlicitly typecast the constant to the correct range to avoid this problem. -type_w_signed_unsigned_always_true=04045_W_La comparacin es siempre verdadera debido a los rangos de los valores -% There is a comparison between an unsigned value and a signed constant which is -% less than zero. Because of type promotion, the statement will always evaluate to -% true. Exlicitly typecast the constant to the correct range to avoid this problem. +type_w_comparison_always_false=04044_W_Comparison might be always false due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% false. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. +type_w_comparison_always_true=04045_W_Comparison might be always true due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% true. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. type_w_instance_with_abstract=04046_W_Constuyendo un objeto de clase "$1" que contiene mtodos abstractos % An instance of a class is created which contains non-implemented abstract % methods. This will probably lead to a runtime error 211 in the code if that @@ -1210,9 +1768,9 @@ type_h_smaller_possible_range_check=04049_H_Diferencia del tama % this may cause a range-check error, or may lead to possible loss of data. type_e_cant_take_address_of_abstract_method=04050_E_No se puede obtener la direccin de un mtodo abstracto % An abstract method has no body, so the address of an abstract method can't be taken. -type_e_operator_not_allowed=04051_E_El operador no es aplicable con los operandos especificados -% You are trying an operator that is not available for the type of the -% operands +type_e_assignment_not_allowed=04051_E_Assignments to formal parameters and open arrays are not possible +% You are trying to assign a value to a formal (untyped var, const or out) +% parameter, or to an open array. type_e_constant_expr_expected=04052_E_Se esperaba una expresi constante % The compiler expects an constant expression, but gets a variable expression. type_e_operator_not_supported_for_types=04053_E_La operacion "$1" no est soportada para los tipos "$2" y "$3" @@ -1245,6 +1803,213 @@ type_e_illegal_count_var=04058_E_Variable de contador inv % This section lists all the messages that concern the handling of symbols. % This means all things that have to do with procedure and variable names. % \begin{description} +type_w_double_c_varargs=04059_W_Converting constant real value to double for C variable argument, add explicit typecast to prevent this. +% In C, constant real values are double by default. For this reason, if you +% pass a constant real value to a variable argument part of a C function, FPC +% by default converts this constant to double as well. If you want to prevent +% this from happening, add an explicit typecast around the constant. +type_e_class_or_cominterface_type_expected=04060_E_Class or COM interface type expected, but got "$1" +% Some operators, such as the AS operator, are only applicable to classes or COM interfaces. +type_e_no_const_packed_array=04061_E_Constant packed arrays are not yet supported +% You cannot declare a (bit)packed array as a typed constant. +type_e_got_expected_packed_array=04062_E_Incompatible type for arg no. $1: Got "$2" expected "(Bit)Packed Array" +% The compiler expects a (bit)packed array as the specified parameter. +type_e_got_expected_unpacked_array=04063_E_Incompatible type for arg no. $1: Got "$2" expected "(not packed) Array" +% The compiler expects a regular (i.e., not packed) array as the specified parameter. +type_e_no_packed_inittable=04064_E_Elements of packed arrays cannot be of a type which need to be initialised +% Support for packed arrays of types that need initialization +% (such as ansistrings, or records which contain ansistrings) is not yet implemented. +type_e_no_const_packed_record=04065_E_Constant packed records and objects are not yet supported +% You cannot declare a (bit)packed array as a typed constant at this time. +type_w_untyped_arithmetic_unportable=04066_W_Arithmetic "$1" on untyped pointer is unportable to {$T+}, suggest typecast +% Addition/subtraction from an untyped pointer may work differently in \var{\{\$T+\}}. +% Use a typecast to a typed pointer. +type_e_cant_take_address_of_local_subroutine=04076_E_Can't take address of a subroutine marked as local +% The address of a subroutine marked as local cannot be taken. +type_e_cant_export_local=04077_E_Can't export subroutine marked as local from a unit +% A subroutine marked as local cannot be exported from a unit. +type_e_not_automatable=04078_E_Type is not automatable: "$1" +% Only byte, integer, longint, smallint, currency, single, double, ansistring, +% widestring, tdatetime, variant, olevariant, wordbool and all interfaces are automatable. +type_h_convert_add_operands_to_prevent_overflow=04079_H_Converting the operands to "$1" before doing the add could prevent overflow errors. +% Adding two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the addition. +type_h_convert_sub_operands_to_prevent_overflow=04080_H_Converting the operands to "$1" before doing the subtract could prevent overflow errors. +% Subtracting two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the subtraction. +type_h_convert_mul_operands_to_prevent_overflow=04081_H_Converting the operands to "$1" before doing the multiply could prevent overflow errors. +% Multiplying two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the multiplication. +type_w_pointer_to_signed=04082_W_Converting pointers to signed integers may result in wrong comparison results and range errors, use an unsigned type instead. +% The virtual address space on 32-bit machines runs from \$00000000 to \$ffffffff. +% Many operating systems allow you to allocate memory above \$80000000. +% For example both \windows and \linux allow pointers in the range \$0000000 to \$bfffffff. +% If you convert pointers to signed types, this can cause overflow and range check errors, +% but also \$80000000 < \$7fffffff. This can cause random errors in code like "if p>q". +type_e_interface_has_no_guid=04083_E_Interface type $1 has no valid GUID +% When applying the as-operator to an interface or class, the desired interface (i.e. the right operand of the +% as-operator) must have a valid GUID. +type_e_invalid_objc_selector_name=04084_E_Invalid selector name "$1" +% An Objective-C selector cannot be empty, must be a valid identifier or a single colon, +% and if it contains at least one colon it must also end in one. +type_e_expected_objc_method_but_got=04085_E_Expected Objective-C method, but got $1 +% A selector can only be created for Objective-C methods, not for any other kind +% of procedure/function/method. +type_e_expected_objc_method=04086_E_Expected Objective-C method or constant method name +% A selector can only be created for Objective-C methods, either by specifying +% the name using a string constant, or by using an Objective-C method identifier +% that is visible in the current scope. +type_e_no_type_info=04087_E_No type info available for this type +% Type information is not generated for some types, such as enumerations with gaps +% in their value range (this includes enumerations whose lower bound is different +% from zero). +type_e_ordinal_or_string_expr_expected=04088_E_Ordinal or string expression expected +% The expression must be an ordinal or string type. +type_e_string_expr_expected=04089_E_String expression expected +% The expression must be a string type. +type_w_zero_to_nil=04090_W_Converting 0 to NIL +% Use NIL rather than 0 when initialising a pointer. +type_e_protocol_type_expected=04091_E_Objective-C protocol type expected, but got "$1" +% The compiler expected a protocol type name, but found something else. +type_e_objc_type_unsupported=04092_E_The type "$1" is not supported for interaction with the Objective-C and the blocks runtime. +% Objective-C and Blocks make extensive use of run time type information (RTTI). This format +% is defined by the maintainers of the run time and can therefore not be adapted +% to all possible Object Pascal types. In particular, types that depend on +% reference counting by the compiler (such as ansistrings and certain kinds of +% interfaces) cannot be used as fields of Objective-C classes, cannot be +% directly passed to Objective-C methods or Blocks, and cannot be encoded using \var{objc\_encode}. +type_e_class_or_objcclass_type_expected=04093_E_Class or objcclass type expected, but got "$1" +% It is only possible to create class reference types of \var{class} and \var{objcclass} +type_e_objcclass_type_expected=04094_E_Objcclass type expected +% The compiler expected an \var{objcclass} type +type_w_procvar_univ_conflicting_para=04095_W_Coerced univ parameter type in procedural variable may cause crash or memory corruption: $1 to $2 +% \var{univ} parameters are implicitly compatible with all types of the same size, +% also in procedural variable definitions. That means that the following code is +% legal, because \var{single} and \var{longint} have the same size: +% \begin{verbatim} +% {$mode macpas} +% Type +% TIntProc = procedure (l: univ longint); +% +% procedure test(s: single); +% begin +% writeln(s); +% end; +% +% var +% p: TIntProc; +% begin +% p:=test; +% p(4); +% end. +% \end{verbatim} +% This code may however crash on platforms that pass integers in registers and +% floating point values on the stack, because then the stack will be unbalanced. +% Note that this warning will not flag all potentially dangerous situations. +% when \var{test} returns. +type_e_generics_cannot_reference_itself=04096_E_Type parameters of specializations of generics cannot reference the currently specialized type +% Recursive specializations of generics like \var{Type MyType = specialize MyGeneric;} are not possible. +type_e_type_parameters_are_not_allowed_here=04097_E_Type parameters are not allowed on non-generic class/record/object procedure or function +% Type parameters are only allowed for methods of generic classes, records or objects +type_e_generic_declaration_does_not_match=04098_E_Generic declaration of "$1" differs from previous declaration +% Generic declaration does not match the previous declaration +type_e_helper_type_expected=04099_E_Helper type expected +% The compiler expected a \var{class helper} type. +type_e_record_type_expected=04100_E_Record type expected +% The compiler expected a \var{record} type. +type_e_class_helper_must_extend_subclass=04101_E_Derived class helper must extend a subclass of "$1" or the class itself +% If a class helper inherits from another class helper the extended class must +% extend either the same class as the parent class helper or a subclass of it +type_e_record_helper_must_extend_same_record=04102_E_Derived record or type helper must extend "$1" +% If a record helper inherits from another record helper it must extend the same +% record that the parent record helper extended. +type_e_procedures_return_no_value=04103_E_Invalid assignment, procedures return no value +% This error occurs when one tries to assign the result of a procedure or destructor call. +% A procedure or destructor returns no value so this is not +% possible. +type_w_implicit_string_cast=04104_W_Implicit string type conversion from "$1" to "$2" +% An implicit type conversion from an ansi string type to an unicode string type is +% encountered. To avoid this warning perform an explicit type conversion. +type_w_implicit_string_cast_loss=04105_W_Implicit string type conversion with potential data loss from "$1" to "$2" +% An implicit type conversion from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. +type_w_explicit_string_cast=04106_-W_Explicit string typecast from "$1" to "$2" +% An explicit typecast from an ansi string type to an unicode string type is +% encountered. This warning is off by default. You can turn it on to see all suspicious string conversions. +type_w_explicit_string_cast_loss=04107_-W_Explicit string typecast with potential data loss from "$1" to "$2" +% An explicit typecast from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. This warning is off by default. You can turn it on to see all the places with lossy string +% conversions. +type_w_unicode_data_loss=04108_W_Unicode constant cast with potential data loss +% Conversion from a WideChar to AnsiChar can lose data since now all unicode characters may be represented in the current +% system codepage +% You can nest function definitions only 31 levels deep. +type_e_range_check_error_bounds=04109_E_range check error while evaluating constants ($1 must be between $2 and $3) +type_w_range_check_error_bounds=04110_W_range check error while evaluating constants ($1 must be between $2 and $3) +% The constants are outside their allowed range. +type_e_type_not_allowed_for_default=04111_E_This type is not supported for the Default() intrinsic +% Some types like for example Text and File Of X are not supported by the Default intrinsic. +type_e_java_class_method_not_static_virtual=04112_E_JVM virtual class methods cannot be static +% Virtual class methods cannot be static when targeting the JVM platform, because +% the self pointer is required for correct dispatching. +type_e_invalid_final_assignment=04113_E_Final (class) fields can only be assigned in their class' (class) constructor +% It is only possible to assign a value to a final (class) field inside a (class) constructor of its owning class. +type_e_no_managed_formal_assign_typecast=04114_E_It is not possible to typecast untyped parameters on managed platforms, simply assign a value to them instead. +% On managed platforms, untyped parameters are translated by the compiler into +% the equivalent of \var{var x: BaseClassType}. Non-class-based types passed to +% such parameters are automatically wrapped (or boxed) in a class, and after the +% call the potentially modified value is assigned back to the original variable. +% On the caller side, changing untyped var/out parameters happens by simply assigning +% values to them (either class-based or primitive ones). On the caller side, +% they will be extracted and if their type does not match the original variable's, +% an exception will be raised. +type_e_no_managed_assign_generic_typecast=04115_E_The assignment side of an expression cannot be typecasted to a supertype on managed platforms +% Managed platforms guarantee type safety at the bytecode level. This means that the virtual machine must be able +% to statically determine that no type-unsafe assignments or operations occur. By assigning a parent class type to a +% variable of a child type by typecasting the assignment side to the parent class type, the type safety would no +% longer be guaranteed and the generated code would fail verification at run time time. +type_w_interface_lower_visibility=04116_-W_The interface method "$1" raises the visibility of "$2" to public when accessed via an interface instance +type_e_interface_lower_visibility=04117_E_The interface method "$1" has a higher visibility (public) than "$2" +% All methods in an interface have always public visibility. That means that if +% an interface method is implemented using a (strict) protected or private method, +% this method is actually publicly accessible via the interface. On the JVM +% target this situation results in an error because the JVM rejects such +% attempts to circumvent the visibility rules. On other targets this is a +% warning that is disabled by default because such situations are common +% practice, but it can be enabled in case you are concerned with keeping your +% code compilable for the JVM target. +type_e_typeof_requires_vmt=04118_E_TYPEOF can only be used on object types with VMT +% Typeof() intrinsic returns pointer to VMT of its argument. It cannot be used on object types that do not have VMT. +type_e_invalid_default_value=04119_E_It is not possible to define a default value for a parameter of type "$1" +% Parameters declared as structured types, such as files, variants, non-dynamic +% arrays and TP-style objects, cannot have a default value. +type_e_type_not_allowed_for_type_helper=04120_E_Type "$1" cannot be extended by a type helper +% Types like procedural variables cannot be extended by type helpers +type_e_procedure_must_be_far=04121_E_Procedure or function must be far in order to allow taking its address: "$1" +% In certain i8086 memory models (medium, large and huge), procedures and functions +% have to be declared 'far' in order to allow their address to be taken. +type_w_instance_abstract_class=04122_W_Creating an instance of abstract class "$1" +% The specified class is declared as \var{abstract} and thus no instance of this class +% should be created. This is merely a warning for Delphi compatibility. +type_e_function_reference_kind=04123_E_Subroutine references cannot be declared as "of object" or "is nested", they can always refer to any kind of subroutine +% Subroutine references can refer to any kind of subroutine and hence do not +% require specialisation for methods or nested subroutines. +type_e_anonymous_function_unsupported=04999_E_Function references are not yet supported, only blocks (add "cdecl;" at the end) +% Remove this error message once Delphi-style anonymous are implemented. It has +% number 4999 so as not to result in a gap in the error message numbering once +% it's removed. +% \end{description} +# +# Symtable +# +# 05095 is the last used one +# +% \section{Symbol handling} +% This section lists all the messages that concern the handling of symbols. +% This means all things that have to do with procedure and variable names. +% \begin{description} sym_e_id_not_found=05000_E_Identificador no encontrado "$1" % The compiler doesn't know this symbol. Usually happens when you misspel % the name of a variable or procedure, or when you forgot to declare a @@ -1319,8 +2084,11 @@ sym_n_local_identifier_only_set=05027_N_Valor asignado a la variable local "$1" sym_h_local_symbol_not_used=05028_H_Smbolo local $1 "$2" no utilizado % A local symbol is never used. sym_n_private_identifier_not_used=05029_N_Campo privado $1.$2 no utilizado +% The indicated private field is defined, but is never used in the code. sym_n_private_identifier_only_set=05030_N_Valor asignado al campo privado $1.$2 pero nunca es utilizado +% The indicated private field is declared and assigned to, but never read. sym_n_private_method_not_used=05031_N_Mtodo privado $1.$2 no utilizado +% The indicated private method is declared but is never used in the code. sym_e_set_expected=05032_E_Tipo set esperado % The variable or expression is not of type \var{set}. This happens in an % \var{in} statement. @@ -1393,6 +2161,178 @@ sym_h_uninitialized_variable=05058_H_La variable "$1" no parece haber sido inici % This section lists all messages that can be displayed if the code % generator encounters an error condition. % \begin{description} +sym_w_function_result_uninitialized=05059_W_Function result variable does not seem to initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. before it appeared in the left-hand side of an +% assignment). +sym_h_function_result_uninitialized=05060_H_Function result variable does not seem to be initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. it appears in the left-hand side of an +% assignment) +sym_w_identifier_only_read=05061_W_Variable "$1" read but nowhere assigned +% You have read the value of a variable, but nowhere assigned a value to +% it. +sym_h_abstract_method_list=05062_H_Found abstract method: $1 +% When getting a warning about constructing a class/object with abstract methods +% you get this hint to assist you in finding the affected method. +sym_w_experimental_symbol=05063_W_Symbol "$1" is experimental +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{experimental} is used. Experimental symbols +% might disappear or change semantics in future versions. Usage of this symbol +% should be avoided as much as possible. +sym_w_forward_not_resolved=05064_W_Forward declaration "$1" not resolved, assumed external +% This happens if you declare a function in the \var{interface} of a unit in macpas mode, +% but do not implement it. +sym_w_library_symbol=05065_W_Symbol "$1" is belongs to a library +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{library} is used. Library symbols may not be +% available in other libraries. +sym_w_deprecated_symbol_with_msg=05066_W_Symbol "$1" is deprecated: "$2" +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{deprecated} is used. Deprecated symbols may no longer +% be available in newer versions of the unit / library. Use of this symbol +% should be avoided as much as possible. +sym_e_no_enumerator=05067_E_Cannot find an enumerator for the type "$1" +% This means that compiler cannot find an appropriate enumerator to use in the for-in loop. +% To create an enumerator you need to define an operator enumerator or add a public or published +% GetEnumerator method to the class or object definition. +sym_e_no_enumerator_move=05068_E_Cannot find a "MoveNext" method in enumerator "$1" +% This means that compiler cannot find a public MoveNext method with the Boolean return type in +% the enumerator class or object definition. +sym_e_no_enumerator_current=05069_E_Cannot find a "Current" property in enumerator "$1" +% This means that compiler cannot find a public Current property in the enumerator class or object +% definition. +sym_e_objc_para_mismatch=05070_E_Mismatch between number of declared parameters and number of colons in message string. +% In Objective-C, a message name automatically contains as many colons as parameters. +% In order to prevent mistakes when specifying the message name in FPC, the compiler +% checks whether this is also the case here. Note that in case of messages taking a +% variable number of arguments translated to FPC via an \var{array of const} parameter, +% this final \var{array of const} parameter is not counted. Neither are the hidden +% \var{self} and \var{\_cmd} parameters. +sym_n_private_type_not_used=05071_N_Private type "$1.$2" never used +% The indicated private type is declared but is never used in the code. +sym_n_private_const_not_used=05072_N_Private const "$1.$2" never used +% The indicated private const is declared but is never used in the code. +sym_n_private_property_not_used=05073_N_Private property "$1.$2" never used +% The indicated private property is declared but is never used in the code. +sym_w_deprecated_unit=05074_W_Unit "$1" is deprecated +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_deprecated_unit_with_msg=05075_W_Unit "$1" is deprecated: "$2" +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_non_portable_unit=05076_W_Unit "$1" is not portable +% This means that a unit which is +% declared as \var{platform} is used. This unit use +% and availability is platform specific and should not be used +% if the source code must be portable. +sym_w_library_unit=05077_W_Unit "$1" is belongs to a library +% This means that a unit which is +% declared as \var{library} is used. Library units may not be +% available in other libraries. +sym_w_non_implemented_unit=05078_W_Unit "$1" is not implemented +% This means that a unit which is +% declared as \var{unimplemented} is used. This unit is defined, +% but is not yet implemented on this specific platform. +sym_w_experimental_unit=05079_W_Unit "$1" is experimental +% This means that a unit which is +% declared as \var{experimental} is used. Experimental units +% might disappear or change semantics in future versions. Usage of this unit +% should be avoided as much as possible. +sym_e_formal_class_not_resolved=05080_E_No complete definition of the formally declared class "$1" is in scope +% Objecive-C and Java classes can be imported formally, without using the unit in which it is fully declared. +% This enables making forward references to such classes and breaking circular dependencies amongst units. +% However, as soon as you wish to actually do something with an entity of this class type (such as +% access one of its fields, send a message to it, or use it to inherit from), the compiler requires the full definition +% of the class to be in scope. +sym_e_interprocgoto_into_init_final_code_not_allowed=05081_E_Gotos into initialization or finalization blocks of units are not allowed +% Gotos into initialization or finalization blockse of units are not allowed. +sym_e_external_class_name_mismatch1=05082_E_Invalid external name "$1" for formal class "$2" +sym_e_external_class_name_mismatch2=05083_E_Complete class definition with external name "$1" here +% When a class is declared using a formal external definition, the actual external +% definition (if any) must specify the same external name as the formal definition +% (since both definitions refer to the same actual class type). +sym_w_library_overload=05084_W_Possible library conflict: symbol "$1" from library "$2" also found in library "$3" +% Some OS do not have library specific namespaces, for those +% OS, the function declared as "external 'libname' name 'funcname'", +% the 'libname' part is only a hint, funcname might also be loaded +% by another library. This warning appears if 'funcname' is used twice +% with two different library names. +sym_e_duplicate_id_create_java_constructor=05085_E_Cannot add implicit constructor 'Create' because identifier already used by "$1" +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. In Java, constructors are nameless, +% but in FPC they are all called ``Create''. Therefore, if you do not add a constructor to +% a Java class and furthermore use the ``Create'' identifier for another entity (e.g., a field, +% or a parameterless method), the compiler cannot satisfy this requirement. +sym_e_no_matching_inherited_parameterless_constructor=05086_E_Cannot generate default constructor for class, because parent has no parameterless constructor +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. This compiler must then call +% the parameterless constructor from the parent class inside this added constructor. +% This is however impossible if the parent class does not declare such a constructor. +% In this case you must add a valid constructor yourself. +sym_d_adding_helper_for=05087_D_Adding helper for $1 +% A helper for the mentioned type is added to the current scope +sym_e_param_list=05088_E_Found declaration: $1 +% This message shows all overloaded declarations in case of an error. +sym_w_uninitialized_managed_local_variable=05089_W_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_uninitialized_managed_variable=05090_W_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_local_variable=05091_H_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. it did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_variable=05092_H_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. t did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_managed_function_result_uninitialized=05093_W_function result variable of a managed type does not seem to initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. before it appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_managed_function_result_uninitialized=05094_H_Function result variable of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. it appears in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_duplicate_id=05095_W_Duplicate identifier "$1" +% The identifier was already declared in an Objective-C category that's in the +% same scope as the current identifier. This is a warning instead of an error, +% because while this hides the identifier from the category, there are often +% many unused categories in scope. +% \end{description} +# +# Codegenerator +# +# 06049 is the last used one +# +% \section{Code generator messages} +% This section lists all messages that can be displayed if the code +% generator encounters an error condition. +% \begin{description} cg_e_parasize_too_big=06009_E_El tamao de la lista de parmetros excede 65535 bytes % The I386 processor limits the parameter list to 65535 bytes (the \var{RET} % instruction causes this) @@ -1504,6 +2444,54 @@ cg_e_continue_not_allowed=06045_E_CONTINUE no permitido aqu # # 07097 is the last used one # +cg_f_unknown_compilerproc=06046_F_Unknown compilerproc "$1". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain subroutines. 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 subroutine which the compiler needs for internal use. +cg_f_unknown_system_type=06047_F_Cannot find system type "$1". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_h_inherited_ignored=06048_H_Inherited call to abstract method ignored +% This message appears only in Delphi mode when you call an abstract method +% of a parent class via \var{inherited;}. The call is then ignored. +cg_e_goto_label_not_found=06049_E_Goto label "$1" not defined or optimized away +% The label used in the goto definition is not defined or optimized away by the +% unreachable code elemination. +cg_f_unknown_type_in_unit=06050_F_Cannot find type "$1" in unit "$2". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_e_interprocedural_goto_only_to_outer_scope_allowed=06051_E_Interprocedural gotos are allowed only to outer subroutines +% Gotos between subroutines are only allowed if the goto jumps from an inner to an outer subroutine or +% from a subroutine to the main program +cg_e_labels_cannot_defined_outside_declaration_scope=06052_E_Label must be defined in the same scope as it is declared +% In ISO mode, labels must be defined in the same scope as they are declared. +cg_e_goto_across_procedures_with_exceptions_not_allowed=06053_E_Leaving procedures containing explicit or implicit exceptions frames using goto is not allowed +% Non-local gotos might not be used to leave procedures using exceptions either implicitly or explicitly. Procedures +% which use automated types like ansistrings or class constructurs are affected by this too. +cg_e_mod_only_defined_for_pos_quotient=06054_E_In ISO mode, the mod operator is defined only for positive quotient +% In ISO pascal, only positive values are allowed for the quotient: \var{n mod m} is only valid if \var{m>0}. +cg_d_autoinlining=06055_DL_Auto inlining: $1 +% Due to auto inlining turned on, the compiler auto inlines this subroutine. +cg_e_function_not_support_by_selected_instruction_set=06056_E_The function used, is not supported by the selected instruction set: $1 +% Some functions cannot be implemented efficiently for certain instruction sets, one example is fused multiply/add. +% To avoid very inefficient code, the compiler complains in this case, so either select another instruction set +% or replace the function call by alternative code +cg_f_max_units_reached=06057_F_Maximum number of units ($1) reached for the current target +% Depending of target architecture, the number of units is limited. This limit +% has been reached. A unit counts only if it contains initialization or finalization count. +% +% \end{description} +# EndOfTeX +# +# Assembler reader +# +# 07125 is the last used one +# asmr_d_start_reading=07000_DL_Iniciando interpretado de ensamblador de estilo $1 % This informs you that an assembler block is being parsed asmr_d_finish_reading=07001_DL_Finalizado interpretado de ensamblador de estilo $1 @@ -1724,6 +2712,96 @@ asmr_e_illegal_shifterop_syntax=07099_E_Error de sintaxis tratando de interpreta # # 08018 is the last used one # +asmr_e_packed_element=07100_E_Address of packed component is not at a byte boundary +% Packed components (record fields and array elements) may start at an arbitrary +% bit inside a byte. On CPU which do not support bit-addressable memory (which +% includes all currently supported CPUs by FPC) you will therefore get an error +% message when trying to index arrays with elements whose size is not a multiple +% of 8 bits. The same goes for accessing record fields with such an address. +% multiple of 8 bits. +asmr_w_unable_to_determine_reference_size_using_byte=07101_W_No size specified and unable to determine the size of the operands, using BYTE as default +% You should specify explicitly a size for the reference, because +% the compiler is unable to determine what size (byte,word,dword,etc.) it +% should use for the reference. This warning is only used in Delphi mode where +% it falls back to use BYTE as default. +asmr_w_no_direct_ebp_for_parameter=07102_W_Use of +offset(%ebp) for parameters invalid here +% Using direct 8(%ebp) reference for function/procedure parameters is invalid +% if parameters are in registers. +asmr_w_direct_ebp_for_parameter_regcall=07103_W_Use of +offset(%ebp) is not compatible with regcall convention +% Using direct 8(%ebp) reference for function/procedure parameters is invalid +% if parameters are in registers. +asmr_w_direct_ebp_neg_offset=07104_W_Use of -offset(%ebp) is not recommended for local variable access +% Using -8(%ebp) to access a local variable is not recommended +asmr_w_direct_esp_neg_offset=07105_W_Use of -offset(%esp), access may cause a crash or value may be lost +% Using -8(%esp) to access a local stack is not recommended, as +% this stack portion can be overwritten by any function calls or interrupts. +asmr_e_no_vmtoffset_possible=07106_E_VMTOffset must be used in combination with a virtual method, and "$1" is not virtual +% Only virtual methods have VMT offsets +asmr_e_need_pic_ref=07107_E_Generating PIC, but reference is not PIC-safe +% The compiler has been configured to generate position-independent code +% (PIC), but there are position-dependent references in the current +% handwritten assembler instruction. +asmr_e_mixing_regtypes=07108_E_All registers in a register set must be of the same kind and width +% Instructions on the ARM architecture that take a register set as argument require that all registers +% in this set are of the same kind (e.g., integer, vfp) and width (e.g., single precision, double precision). +asmr_e_empty_regset=07109_E_A register set cannot be empty +% Instructions on the ARM architecture that take a register set as argument require that such a set +% contains at least one register. +asmr_w_useless_got_for_local=07110_W_@GOTPCREL is useless and potentially dangerous for local symbols +% The use of @GOTPCREL supposes an extra indirection that is +% not present if the symbol is local, which might lead to wrong assembler code +asmr_w_general_segment_with_constant=07111_W_Constant with general purpose segment register +% General purpose register should not have constant offsets +% as OS memory allocation might not be compatible with that. +asmr_e_bad_seh_directive_offset=07112_E_Invalid offset value for $1 +% Win64 SEH directives have certain restrictions on possible offset values, e.g. they should +% be positive and have 3 or 4 low bits clear. +asmr_e_bad_seh_directive_register=07113_E_Invalid register for $1 +% Win64 SEH directives accept only 64-bit integer registers or XMM registers. +asmr_e_seh_in_pure_asm_only=07114_E_SEH directives are allowed only in pure assembler procedures +% Win64 SEH directives are allowed only in pure assembler procedures, not in assembler +% blocks of regular procedures. +asmr_e_unsupported_directive=07115_E_Directive "$1" is not supported for the current target +asmr_e_complex_function_result_location=07116_E_This function's result location cannot be encoded directly in a single operand when "nostackframe" is used +% Functions declared with the \var{nostackframe} modifier do not have a stack frame, and hence +% do not have a local variable to hold the temporary function result. Accesses to the function +% result in such routines directly go to the registers or memory location that will be used +% to return their result to the caller. In some cases this result may be spread over multiple +% registers, in which case it is not possible to access the location via its symbolic name. +% You have to directly use the appropriate register names in this case. +asmr_e_wrong_gotpcrel_intel_syntax=07117_E_GOTPCREL references in Intel assembler syntax cannot contain a base or index register, and their offset must 0. +% The syntax for a gotpcrel PIC memory expression in Intel assembler syntax is +% \verb*[global_symbol wrt ..gotpcrel]* +asmr_e_no_gotpcrel_support=07118_E_The current target does not support GOTPCREL relocations +% Not all targets support position-independent code using a global offset table. +% Use a different way to access symbols in a position-indepent way in these cases. +asmr_w_global_access_without_got=07119_W_Exported/global symbols should be accessed via the GOT +% Global symbols (symbols from the unit interface, or defined in a program +% or library) should be accessed via the GOT when generating position-indepent code. +asmr_w_check_mem_operand_size=07120_W_Check size of memory operand "$1" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size3=07121_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size_offset=07122_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits + $4 byte offset]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_negative_offset=07123_W_Check "$1: offset of memory operand is negative "$2 byte" +% The offset of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_automap_multiple_size=07124_W_Check "$1: size of memory operand is empty, but es exists different definitions of the memory size =>> map to $2 (smallest option)" +% The size of memory operand is empty and we have different definitions of possible memory sizes. Check it! +asmr_e_invalid_ref_register=07125_E_Invalid register used in memory reference expression: "$1" +% FPU, vector and sometimes integer registers cannot be used in memory reference +% expressions, due to limitations of the cpu architecture or simple because +% it is not meaningful. + +# +# Assembler/binary writers +# +# 08029 is the last used one +# asmw_f_too_many_asm_files=08000_F_Demasiados archivos de ensamblador abiertos % With smartlinking enabled, there are too many assembler % files generated. Disable smartlinking. @@ -1759,8 +2837,47 @@ asmw_e_invalid_register=08019_E_Asm: Registro $1 inv % This section lists errors that occur when the compiler is processing the % command line or handling the configuration files. % \begin{description} +asmw_e_16bit_32bit_not_supported=08020_E_Asm: 16 or 32 Bit references not supported +asmw_e_64bit_not_supported=08021_E_Asm: 64 Bit operands not supported +asmw_e_bad_reg_with_rex=08022_E_Asm: AH,BH,CH or DH cannot be used in an instruction requiring REX prefix +% x86_64 only: instruction encoding of this platform does not allow using +% 8086 high byte registers (AH,BH,CH or DH) together with REX prefix in a single instruction. +% The REX prefix is required whenever the instruction operand size is 64 bits, or +% when it uses one of extended x86_64 registers (R8-R15 or XMM8-XMM15). +asmw_e_missing_endprologue=08023_E_Missing .seh_endprologue directive +% x86_64-win64 only: Normally, SEH directives are handled internally by compiler. +% However, in pure assembler procedures .seh_endprologue directive is required +% if other SEH directives are present. +asmw_e_prologue_too_large=08024_E_Function prologue exceeds 255 bytes +% x86_64-win64: .seh_prologue directive must be placed within 255 bytes from function start. +asmw_e_handlerdata_no_handler=08025_E_.seh_handlerdata directive without preceding .seh_handler +% x86_64-win64: If .seh_handlerdata directive is used, then a .seh_handler directive must be +% present earlier in the same function. +asmw_f_too_many_relocations=08026_F_Relocation count for section $1 exceeds 65535 +% Legacy COFF targets limit number of relocations per section to 65535 because they use a 2-byte field +% to store the relocation count. Targets using newer PECOFF format do not have this limitation. +asmw_w_changing_bind_type=08027_N_Change of bind type of symbol $1 from $2 to $3 after use +asmw_h_changing_bind_type=08028_H_Change of bind type of symbol $1 from $2 to $3 after use +% An assembler symbol bind type has been altered after use, which can lead to wrong code. +% First version is reserved for changig to local label, which is the most probable cause +% of wrong code generation, but currently set to Note level as it appears inside +% the compiler compilation. +asmw_e_32bit_not_supported=08029_E_Asm: 32 Bit references not supported +# +# Executing linker/assembler +# +# 09035 is the last used one +# +# BeginOfTeX +% +% \section{Errors of assembling/linking stage} +% This section lists errors that occur when the compiler is processing the +% command line or handling the configuration files. +% \begin{description} exec_w_source_os_redefined=09000_W_Sistema operativo de origen redefinido +% The source operating system is redefined. exec_i_assembling_pipe=09001_I_Ensamblando (pipe) $1 +% Assembling using a pipe to an external assembler. exec_d_cant_create_asmfile=09002_E_No se puede crear fichero ensamblador $1 % The mentioned file can't be created. Check if you have got % access permissions to create this file @@ -1771,14 +2888,21 @@ exec_e_cant_create_archivefile=09004_E_No se puede crear fichero de archivado: $ % The mentioned file can't be created. Check if you've % access permissions to create this file exec_e_assembler_not_found=09005_E_Ensamblador $1 no encontrado, cambiando a ensamblado externo +% The assembler program was not found. The compiler will produce a script that +% can be used to assemble and link the program. exec_t_using_assembler=09006_T_Usando ensamblador: $1 +% An informational message saying which assembler is being used. exec_e_error_while_assembling=09007_E_Error mientras se ensamblaba, codigo de terminacin $1 % There was an error while assembling the file using an external assembler. % Consult the documentation of the assembler tool to find out more information % on this error. exec_e_cant_call_assembler=09008_E_No se pudo llamar al ensamblador, error $1. Cambiando a ensamblador externo +% An error occurred when calling an external assembler. The compiler will produce a script that +% can be used to assemble and link the program. exec_i_assembling=09009_I_Ensamblando $1 +% An informational message stating which file is being assembled. exec_i_assembling_smart=09010_I_Assembling con enlazado inteligente $1 +% An informational message stating which file is being assembled using smartlinking. exec_w_objfile_not_found=09011_W_Objeto $1 no encontrado, el enlazado podria fallar! % One of the object file is missing, and linking will probably fail. % Check your paths. @@ -1788,18 +2912,39 @@ exec_w_libfile_not_found=09012_W_Librer exec_e_error_while_linking=09013_E_Error durante el enlazado % Generic error while linking. exec_e_cant_call_linker=09014_E_No se puede llamar al enlazador, cambiando a enlazado externo +% An error occurred when calling an external linker. The compiler will produce a script that +% can be used to assemble and link the program. exec_i_linking=09015_I_Enlazando $1 +% An informational message, showing which program or library is being linked. exec_e_util_not_found=09016_E_Utilidad $1 no encontrada, cambiando a enlazado externo +% An external tool was not found. The compiler will produce a script that +% can be used to assemble and link or postprocess the program. exec_t_using_util=09017_T_Utilizando utilidad $1 +% An informational message, showing which external program (usually a postprocessor) is being used. exec_e_exe_not_supported=09018_E_Creacion de ejecutables no soportado +% Creating executable programs is not supported for this platform, because it was +% not yet implemented in the compiler. exec_e_dll_not_supported=09019_E_Creacion de libreras dinmicas/compartidas no soportado +% Creating dynamically loadable libraries is not supported for this platform, because it was +% not yet implemented in the compiler. +exec_e_static_lib_not_supported=09035_E_Creation of Static Libraries not supported +% Creating static libraries is not supported for this platform, because it was +% not yet implemented in the compiler. exec_i_closing_script=09020_I_Cerrando script $1 +% Informational message showing when writing of the external assembling and linking script is finished. exec_e_res_not_found=09021_E_Compilador de recursos no encontrado, cambiando a modo externo +% An external resource compiler was not found. The compiler will produce a script that +% can be used to assemble, compile resources and link or postprocess the program. exec_i_compilingresource=09022_I_Compilando resource $1 +% An informational message, showing which resource is being compiled. exec_t_unit_not_static_linkable_switch_to_smart=09023_T_La unidad $1 no puede ser enlazada estticamente, cambiando a enlazado inteligente +% Static linking was requested, but a unit which is not statically linkable was used. exec_t_unit_not_smart_linkable_switch_to_static=09024_T_La unidad $1 no puede ser enlazada inteligentemente, cambiando a enlazado esttico +% Smart linking was requested, but a unit which is not smart-linkable was used. exec_t_unit_not_shared_linkable_switch_to_static=09025_T_La unidad $1 no admite enlazado compartido, cambiando a enlazado esttico +% Shared linking was requested, but a unit which is not shared-linkable was used. exec_e_unit_not_smart_or_static_linkable=09026_E_La unidad $1 no puede ser enlazada esttica o inteligentemente +% Smart or static linking was requested, but a unit which cannot be used for either was used. exec_e_unit_not_shared_or_static_linkable=09027_E_La unidad $1 no admite enlazado compartido o esttico %\end{description} # EndOfTeX @@ -1807,12 +2952,49 @@ exec_e_unit_not_shared_or_static_linkable=09027_E_La unidad $1 no admite enlazad # # Executable information # +exec_d_resbin_params=09028_D_Calling resource compiler "$1" with "$2" as command line +% An informational message showing which command line is used for the resource compiler. +exec_e_error_while_compiling_resources=09029_E_Error while compiling resources +% The resource compiler or converter returned an error. +exec_e_cant_call_resource_compiler=09030_E_Can't call the resource compiler "$1", switching to external mode +% An error occurred when calling a resource compiler. The compiler will produce +% a script that can be used to assemble, compile resources and link or +% postprocess the program. +exec_e_cant_open_resource_file=09031_E_Can't open resource file "$1" +% An error occurred resource file cannot be opened. +exec_e_cant_write_resource_file=09032_E_Can't write resource file "$1" +% An error occurred resource file cannot be written. +exec_n_backquote_cat_file_not_found=09033_N_File "$1" not found for backquoted cat command +% The compiler did not find the file that should be expanded into linker parameters +exec_w_init_file_not_found=09034_W_"$1" not found, this will probably cause a linking failure +% The compiler adds certain startup code files to the linker only when they are found. +% If they are not found, they are not added and this might cause a linking failure. +% +%\end{description} +# EndOfTeX + +# +# Executable information +# +# 09134 is the last used one +# +# BeginOfTeX +% \section{Executable information messages.} +% This section lists all messages that the compiler emits when an executable program is produced, +% and only when the internal linker is used. +% \begin{description} execinfo_f_cant_process_executable=09128_F_No se puede post-procesar el ejecutable $1 +% Fatal error when the compiler is unable to post-process an executable. execinfo_f_cant_open_executable=09129_F_No se puede abrir el ejecutable $1 +% Fatal error when the compiler cannot open the file for the executable. execinfo_x_codesize=09130_X_Tamao de Cdigo: $1 bytes +% Informational message showing the size of the produced code section. execinfo_x_initdatasize=09131_X_Tamao de datos inicializados: $1 bytes +% Informational message showing the size of the initialized data section. execinfo_x_uninitdatasize=09132_X_Tamao de datos sin inicializar: $1 bytes +% Informational message showing the size of the uninitialized data section. execinfo_x_stackreserve=09133_X_Espacio reservado para la pila: $1 bytes +% Informational message showing the stack size that the compiler reserved for the executable. execinfo_x_stackcommit=09134_X_Stack space commited: $1 bytes # @@ -1826,6 +3008,26 @@ execinfo_x_stackcommit=09134_X_Stack space commited: $1 bytes % loading a unit from disk into memory. Many of these messages are % informational messages. % \begin{description} +link_f_executable_too_big=09200_F_Executable image size is too big for $1 target. +% Fatal error when resulting executable is too big. +link_w_32bit_absolute_reloc=09201_W_Object file "$1" contains 32-bit absolute relocation to symbol "$2". +% Warning when 64-bit object file contains 32-bit absolute relocations. +% In such case an executable image can be loaded into lower 4Gb of +% address space only. +%\end{description} +# EndOfTeX + +# +# Unit loading +# +# 10062 is the last used one +# +# BeginOfTeX +% \section{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. +% \begin{description} unit_t_unitsearch=10000_T_Buscando unidad: $1 % When you use the \var{-vt}, the compiler tells you where it tries to find % unit files. @@ -1888,6 +3090,7 @@ unit_f_cant_find_ppu=10022_F_No se puede encontrar la unidad $1 % 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 unit_w_unit_name_error=10023_W_La unidad $1 no pudo ser encontrada, pero $2 existe +% This error message is no longer used. unit_f_unit_name_error=10024_F_Se busc la unidad $1 pero se encontr $2 % Dos truncation of 8 letters for unit PPU files % may lead to problems when unit name is longer than 8 letters. @@ -1901,6 +3104,8 @@ unit_u_load_unit=10027_U_Cargado de $1 ($2) unidad $3 % When you use the \var{-vu} flag, which unit is loaded from which unit is % shown. unit_u_recompile_crc_change=10028_U_Recompilando $1, checksum cambiado por $2 +% The unit is recompiled because the checksum of a unit it depends on has +% changed. unit_u_recompile_source_found_alone=10029_U_Recompilando $1, solo se encontr el cdigo fuente % When you use the \var{-vu} flag, these messages tell you why the current % unit is recompiled. @@ -1943,10 +3148,8 @@ unit_u_check_time=10037_U_Chequeo de fichero PPU $1 fecha $2 unit_w_cant_compile_unit_with_changed_incfile=10040_W_No se pudo recompilar la unida $1, pero se encontraron ficheros de inclusi modificados % A unit was found to have modified include files, but % some source files were not found, so recompilation is impossible. -unit_h_source_modified=10041_H_El fichero $1 es mas moderno que la versin Release del archivo PPU $2 -% A modified source file for a unit was found that was compiled with the -% release flag (-Ur). The unit will not implicitly be recompiled because -% this release flag is set. +unit_u_source_modified=10041_U_File $1 is newer than the one used for creating PPU file $2 +% A modified source file for a compiler unit was found. unit_u_ppu_invalid_fpumode=10042_U_Se esta utilizando una unidad que no fue compilada con el modo de FPU correcto % Trying to compile code while using units which were not compiled with % the same floating point format mode. Either all code should be compiled @@ -2015,6 +3218,29 @@ unit_u_skipping_reresolving_unit=10059_U_Saltando re-resoluci # # 11039 is the last used one # +unit_u_unload_resunit=10060_U_Unloading resource unit $1 (not needed) +% When you use the \var{-vu} flag, the compiler warns that it is unloading the +% resource handling unit, since no resources are used. +unit_e_different_wpo_file=10061_E_Unit $1 was compiled using a different whole program optimization feedback input ($2, $3); 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 (\var{-FW} \var{-OW}), +% 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. +unit_u_indirect_crc_changed=10062_U_Indirect interface (objects/classes) CRC changed for unit $1 +% When you use the \var{-vu} flag, the compiler warns that the +% indirect CRC calculated for the unit (this is the CRC of all classes/objects/interfaces/$\ldots$ +% in the interfaces of units directly or indirectly used by this unit in the interface) has been changed after the +% implementation has been parsed. +unit_u_ppu_invalid_memory_model=10063_U_PPU is compiled for another i8086 memory model +% This unit file was compiled for a different i8086 memory model and +% cannot be read. +% \end{description} +# EndOfTeX + +# +# Options +# +# 11057 is the last used one +# option_usage=11000_O_$1 [opciones] [opciones] # BeginOfTeX % @@ -2091,14 +3317,21 @@ option_using_env=11027_T_Leyendo opciones del entorno $1 option_handling_option=11028_D_Procesando pcin "$1" % Debug info that an option is found and will be handled option_help_press_enter=11029__*** presione retorno *** +% Message shown when help is shown page per page. When pressing the ENTER +% Key, the next page of help is shown. If you press q and then ENTER, the +% compiler exits. option_start_reading_configfile=11030_H_Inicio de lectura del archivo de configuracin $1 % Starting of config file parsing. option_end_reading_configfile=11031_H_Fin de lectura del archivo de configuracin $1 % End of config file parsing. option_interpreting_option=11032_D_Interpretando opcin "$1" +% The compiler is interpreting an option option_interpreting_firstpass_option=11036_D_Interpretando primera pasada de la opcin "$1" +% The compiler is interpreting an option for the first time. option_interpreting_file_option=11033_D_Interpretando opcin de archivo "$1" +% The compiler is interpreting an option which it read from the configuration file. option_read_config_file=11034_D_Leyendo archivo de configuracin "$1" +% The compiler is starting to read the configuration file. option_found_file=11035_D_encontrado nombre del archivo fuente "$1" % Additional infos about options, displayed % when you have debug option turned on. @@ -2106,6 +3339,136 @@ option_code_page_not_available=11039_E_C %\end{description} # EndOfTeX +# +# Logo (option -l) +# +option_config_is_dir=11040_F_Config file $1 is a directory +% Directories cannot be used as configuration files. +option_confict_asm_debug=11041_W_Assembler output selected "$1" cannot generate debug info, debugging disabled +% The selected assembler output cannot generate +% debugging information, debugging option is therefore disabled. +option_ppc386_deprecated=11042_W_Use of ppc386.cfg is deprecated, please use fpc.cfg instead +% Using ppc386.cfg is still supported for historical reasons, however, for a multiplatform +% system the naming makes no sense anymore. Please continue to use fpc.cfg instead. +option_else_without_if=11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DEF found +% An \var{\#ELSE} statement was found in the options file without a matching \var{\#IF(N)DEF} statement. +option_unsupported_target=11044_F_Option "$1" is not, or not yet, supported on the current target platform +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is incompatible with the currently selected target platform. +option_unsupported_target_for_feature=11045_F_The feature "$1" is not, or not yet, supported on the selected target platform +% Not all features are supported or implemented for all target platforms. This message informs you that a chosen +% feature is incompatible with the currently selected target platform. +option_dwarf_smart_linking=11046_N_DWARF debug information cannot be used with smart linking on this target, switching to static linking +% Smart linking is currently incompatible with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_ignored_target=11047_W_Option "$1" is ignored for the current target platform. +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is ignored for the currently selected target platform. +option_debug_external_unsupported=11048_W_Disabling external debug information because it is unsupported for the selected target/debug format combination. +% Not all debug formats can be stored in an external file on all platforms. In particular, on +% Mac OS X only DWARF debug information can be stored externally. +option_dwarf_smartlink_creation=11049_N_DWARF debug information cannot be used with smart linking with external assembler, disabling static library creation. +% Smart linking is currently incompatble with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_invalid_macosx_deployment_target=11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variable: $1 +option_invalid_iphoneos_deployment_target=11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment variable: $1 +% On Mac OS X, the MACOSX\_DEPLOYMENT\_TARGET/IPHONEOS\_DEPLOYMENT\_TARGET environment variable can be +% used to set the default target OS version. In case of Mac OS X, it has to be of the format +% XY.Z or XY.Z.AB with X, Y,Z , A and B all digits from 0-9. +% In case of iOS, it has to be X.Z.A, where X, Z and A can all be either 1 or 2 +% digits from 0-9. +option_illegal_fpu_eabihf=11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when using the EABIHF ABI target +% The EABIHF (VFP hardfloat) ABI target can only be used with VFP FPUs. +option_w_unsupported_debug_format=11053_W_The selected debug format is not supported on the current target, not changing the current setting +% Not all targets support all debug formats (in particular, Stabs is not supported on 64 bit targets). +option_missing_arg=11054_E_argument to "$1" is missing +% Displayed when parameter must be followed by an argument. +option_malformed_para=11055_E_malformed parameter: $1 +% Given argument is not valid for parameter. +option_smart_link_requires_external_linker=11056_W_Smart linking requires external linker +option_com_files_require_tiny_model=11057_E_Creating .COM files is not supported in the current memory model. Only the tiny memory model supports making .COM files. + + +%\end{description} +# EndOfTeX + +# +# Whole program optimization +# +# 12019 is the last used one +# +# BeginOfTeX +% +% \section{Whole program optimization messages} +% This section lists errors that occur when the compiler is performing +% whole program optimization. +% \begin{description} +wpo_cant_find_file=12000_F_Cannot open whole program optimization feedback file "$1" +% The compiler cannot open the specified feedback file with whole program optimization information. +wpo_begin_processing=12001_D_Processing whole program optimization information in wpo feedback file "$1" +% The compiler starts processing whole program optimization information found in the named file. +wpo_end_processing=12002_D_Finished processing the whole program optimization information in wpo feedback file "$1" +% The compiler has finished processing the whole program optimization information found in the named file. +wpo_expected_section=12003_E_Expected section header, but got "$2" at line $1 of wpo feedback file +% The compiler expected a section header in the whole program optimization file (starting with \%), +% but did not find it. +wpo_no_section_handler=12004_W_No handler registered for whole program optimization section "$2" at line $1 of wpo feedback file, ignoring +% The compiler has no handler to deal with the mentioned whole program optimization information +% section, and will therefore ignore it and skip to the next section. +wpo_found_section=12005_D_Found whole program optimization section "$1" with information about "$2" +% The compiler encountered a section with whole program optimization information, and according +% to its handler this section contains information usable for the mentioned purpose. +wpo_no_input_specified=12006_F_The selected whole program optimizations require a previously generated feedback file (use -Fw to specify) +% The compiler needs information gathered during a previous compilation run to perform the selected +% whole program optimizations. You can specify the location of the feedback file containing this +% information using the -Fw switch. +wpo_not_enough_info=12007_E_No collected information necessary to perform "$1" whole program optimization found +% While you pointed the compiler to a file containing whole program optimization feedback, it +% did not contain the information necessary to perform the selected optimizations. You most likely +% have to recompile the program using the appropriate -OWxxx switch. +wpo_no_output_specified=12008_F_Specify a whole program optimization feedback file to store the generated info in (using -FW) +% You have to specify the feedback file in which the compiler has to store the whole program optimization +% feedback that is generated during the compilation run. This can be done using the -FW switch. +wpo_output_without_info_gen=12009_E_Not generating any whole program optimization information, yet a feedback file was specified (using -FW) +% The compiler was instructed to store whole program optimization feedback into a file specified using -FW, +% but not to actually generated any whole program optimization feedback. The classes of to be +% generated information can be specified using -OWxxx. +wpo_input_without_info_use=12010_E_Not performing any whole program optimizations, yet an input feedback file was specified (using -Fw) +% The compiler was not instructed to perform any whole program optimizations (no -Owxxx parameters), +% but nevertheless an input file with such feedback was specified (using -Fwyyy). Since this can +% indicate that you forgot to specify an -Owxxx parameter, the compiler generates an error in this case. +wpo_skipping_unnecessary_section=12011_D_Skipping whole program optimization section "$1", because not needed by the requested optimizations +% The whole program optimization feedback file contains a section with information that is not +% required by the selected whole program optimizations. +wpo_duplicate_wpotype=12012_W_Overriding previously read information for "$1" from feedback input file using information in section "$2" +% The feedback file contains multiple sections that provide the same class of information (e.g., +% information about which virtual methods can be devirtualized). In this case, the information in last encountered +% section is used. Turn on debugging output (-vd) to see which class of information is provided by each section. +wpo_cannot_extract_live_symbol_info_strip=12013_E_Cannot extract symbol liveness information from program when stripping symbols, use -Xs- +% Certain symbol liveness collectors extract the symbol information from the linked program. If the symbol information +% is stripped (option -Xs), this is not possible. +wpo_cannot_extract_live_symbol_info_no_link=12014_E_Cannot extract symbol liveness information from program when when not linking +% Certain symbol liveness collectors extract the symbol information from the linked program. If the program is not +% linked by the compiler, this is not possible. +wpo_cannot_find_symbol_progs=12015_F_Cannot find "$1" or "$2" to extract symbol liveness information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% This helper program is normally 'nm', which is part of the GNU binutils. +wpo_error_reading_symbol_file=12016_E_Error during reading symbol liveness information produced by "$1" +% An error occurred during the reading of the symbol liveness file that was generated using the 'nm' or 'objdump' program. The reason +% can be that it was shorter than expected, or that its format was not understood. +wpo_error_executing_symbol_prog=12017_F_Error executing "$1" (exitcode: $2) to extract symbol information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% The helper program produced the reported error code when it was run on the linked program. +wpo_symbol_live_info_needs_smart_linking=12018_E_Collection of symbol liveness information can only help when using smart linking, use -CX -XX +% Whether or not a symbol is live is determined by looking whether it exists in the final linked program. +% Without smart linking/dead code stripping, all symbols are always included, regardless of whether they are +% actually used or not. So in that case all symbols will be seen as live, which makes this optimization ineffective. +wpo_cant_create_feedback_file=12019_E_Cannot create specified whole program optimisation feedback file "$1" +% The compiler is unable to create the file specified using the -FW parameter to store the whole program optimisation information. +%\end{description} +# EndOfTeX + + # # Logo (option -l) # @@ -2371,3 +3734,93 @@ P*2WT_Especifica aplicaci # # The End... +%%% general_e_compilation_aborted=01018_E_Compilacin abortada +% \end{description} +# +# Scanner +# +# 02063 is the last used one +# +% \section{Scanner messages.} +% This section lists the messages that the scanner emits. The scanner takes +% care of the lexical structure of the pascal file, i.e. it tries to find +% reserved words, strings, etc. It also takes care of directives and +% conditional compiling handling. +% \begin{description} +%%% scan_w_only_pack_records=02015_W_Los campos de los registros pueden ser alineados solo a 1, 2, 4 o 16 bytes +% You are specifying the \var{\{\$PACKRECORDS n\} } with an illegal value for +% \var{n}. Only 1, 2, 4, 8, 16 and 32 are valid in this case. +%%% scan_w_only_pack_enum=02016_W_Los tipos enumerados solo pueden ser almacenados en 1, 2 o 4 bytes +% You are specifying the \var{\{\$PACKENUM n\}} with an illegal value for +% \var{n}. Only 1,2 or 4 are valid in this case. +%%% can_w_macro_too_deep=02030_W_La expansin de macros excede una profundidad de 16. +% When expanding a macro, macros have been nested to a level of 16. +% The compiler will expand no further, since this may be a sign that +% recursion is used. +%%% parser_e_only_class_methods_via_class_ref=03053_E_Solo los mtodos de clases pueden ser referidos con referencias de clase +% This error occurs in a situation like the following: +% \begin{verbatim} +% Type : +% Tclass = Class of Tobject; +% +% Var C : TClass; +% +% begin +% ... +% C.free +% \end{verbatim} +% \var{Free} is not a class method and hence cannot be called with a class +% reference. +%%% parser_e_only_class_methods=03054_E_Los mtodos de clase solo pueden ser acceder a otros mtodos de clase +% This is related to the previous error. You cannot call a method of an object +% from a inside a class method. The following code would produce this error: +% \begin{verbatim} +% class procedure tobject.x; +% +% begin +% free +% \end{verbatim} +% Because free is a normal method of a class it cannot be called from a class +% method. +%%% parser_e_absolute_only_one_var=03095_E_absolute solo puede estar asociado a una variable +% You cannot specify more than one variable before the \var{absolute} directive. +% Thus, the following construct will provide this error: +% \begin{verbatim} +% Var Z : Longint; +% X,Y : Longint absolute Z; +% \end{verbatim} +% \item [ absolute can only be associated a var or const ] +% The address of a \var{absolute} directive can only point to a variable or a +% typed constant. Therefore, the following code will produce this error: +% \begin{verbatim} +% Procedure X; +% +% var p : longint absolute x; +% \end{verbatim} +% +%%% parser_e_only_publishable_classes_can__be_published=03156_E_Solo clases compiladas en $M+ pueden ser publicadas +% In the published section of a class can be only class as fields used which +% are compiled in \var{\{\$M+\}} or which are derived from such a class. Normally +% such a class should be derived from TPersitent +%%% type_w_mixed_signed_unsigned=04035_W_Operaciones mezclando enteros de 32 bits con signo son convertidas a 64 bits +% If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), +% or if you have overflow and/or range checking turned on and use an arithmetic +% expression (+, -, *, div, mod) in which both signed numbers and longwords appear, +% then everything has to be evaluated in 64bit which is slower than normal +% 32bit arithmetic. You can avoid this by typecasting one operand so it +% matches the result type of the other one. +%%% type_w_signed_unsigned_always_false=04044_W_La comparacin es siempre falsa debido a los rangos de los valores +% There is a comparison between an unsigned value and a signed constant which is +% less than zero. Because of type promotion, the statement will always evaluate to +% false. Exlicitly typecast the constant to the correct range to avoid this problem. +%%% type_w_signed_unsigned_always_true=04045_W_La comparacin es siempre verdadera debido a los rangos de los valores +% There is a comparison between an unsigned value and a signed constant which is +% less than zero. Because of type promotion, the statement will always evaluate to +% true. Exlicitly typecast the constant to the correct range to avoid this problem. +%%% type_e_operator_not_allowed=04051_E_El operador no es aplicable con los operandos especificados +% You are trying an operator that is not available for the type of the +% operands +%%% unit_h_source_modified=10041_H_El fichero $1 es mas moderno que la versin Release del archivo PPU $2 +% A modified source file for a unit was found that was compiled with the +% release flag (-Ur). The unit will not implicitly be recompiled because +% this release flag is set. diff --git a/compiler/msg/errorfi.msg b/compiler/msg/errorfi.msg index c58dec2a1b..3c83631eca 100644 --- a/compiler/msg/errorfi.msg +++ b/compiler/msg/errorfi.msg @@ -1,6 +1,8 @@ +%%% Reordering of errorfi.msg respective to errore.msg +%%% Contains all comments from errorfi.msg # # This file is part of the Free Pascal Compiler -# Copyright (c) 1999-2008 by the Free Pascal Development team +# Copyright (c) 1999-2013 by the Free Pascal Development team # # French (ISO 8859-1) Language File for Free Pascal # Latest updates contributed by Rmi Dorlet @@ -41,18 +43,21 @@ # d_ debug message # x_ executable informations # +# +# can contain a minus sign at the beginning to mark that +# the message is off by default. Look at type_w_explicit_string_cast +# for example + # # General # # 01023 is the last used one # -general_text_bytes_code=01019_Code de type octet -general_text_bytes_data=01020_Donne de type octet # BeginOfTeX -% \section{General compiler messages} -% This section gives the compiler messages which are not fatal, but which -% display useful information. The number of such messages can be -% controlled with the various verbosity level \var{-v} switches. +% \section{Messages gnraux du compilateur} +% Cette partie dtaille les messages non fatals, +% mais pouvant apporter une information. La quantit de ces messages +% peut tre contrl avec l'option de niveau de verbosit \var{-v}. % \begin{description} general_t_compilername=01000_T_Compilateur: $1 % When the \var{-vt} switch is used, this line tells you what compiler @@ -115,6 +120,10 @@ general_e_path_does_not_exist=01017_E_Le chemin "$1" n'existe pas % The specified path does not exist. general_f_compilation_aborted=01018_F_Compilation interrompue % Compilation was aborted. +general_text_bytes_code=01019_bytes code +% The size of the generated executable code, in bytes. +general_text_bytes_data=01020_bytes data +% The size of the generated program data, in bytes. general_i_number_of_warnings=01021_I_$1 avertissement(s) mis % Total number of warnings issued during compilation. general_i_number_of_hints=01022_I_$1 conseil(s) mis @@ -133,6 +142,22 @@ general_i_number_of_notes=01023_I_$1 note(s) % reserved words, strings, etc. It also takes care of directives and % conditional compiling handling. % \begin{description} +general_f_ioerror=01024_F_I/O error: $1 +% During compilation an I/O error happened which allows no further compilation. +general_f_oserror=01025_F_Operating system error: $1 +% During compilation an operating system error happened which allows no further compilation. +% \end{description} +# +# Scanner +# +# 02098 is the last used one +# +% \section{Scanner messages.} +% This section lists the messages that the scanner emits. The scanner takes +% care of the lexical structure of the pascal file, i.e. it tries to find +% reserved words, strings, etc. It also takes care of directives and +% conditional compilation handling. +% \begin{description} scan_f_end_of_file=02000_F_Fin de fichier inattendue % this typically happens in one of the following cases : % \begin{itemize} @@ -290,7 +315,6 @@ scan_w_only_one_resourcefile_supported=02056_W_Un seul fichier de ressource est % The target you are compiling for supports only one resource file. % The first resource file found is used, the others are discarded. scan_w_macro_support_turned_off=02057_W_L'utilisation des macros t dsactive - % 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 % -Sm on the commandline or add \{\$MACRO ON\} in the source @@ -353,6 +377,72 @@ scan_w_maxstacksize_not_support=02078_W_MAXSTACKSIZE n'est pas support % semantics of you language, i.e. it determines if your pascal constructs % are correct. % \begin{description} +scanner_e_illegal_warn_state=02079_E_Illegal state "$1" for $WARN directive +% Only ON and OFF can be used as state with a \var{\{\$WARN\}} compiler directive. +scan_e_only_packset=02080_E_Illegal set packing value +% Only 0, 1, 2, 4, 8, DEFAULT and NORMAL are allowed as packset parameters. +scan_w_pic_ignored=02081_W_PIC directive or switch ignored +% Several targets, such as \windows, do not support nor need PIC, +% so the PIC directive and switch are ignored. +scan_w_unsupported_switch_by_target=02082_W_The switch "$1" is not supported by the currently selected target +% Some compiler switches like \$E are not supported by all targets. +scan_w_frameworks_darwin_only=02084_W_Framework-related options are only supported for Darwin/Mac OS X +% Frameworks are not a known concept, or at least not supported by FPC, +% on operating systems other than Darwin/Mac OS X. +scan_e_illegal_minfpconstprec=02085_E_Illegal minimal floating point constant precision "$1" +% Valid minimal precisions for floating point constants are default, 32 and 64, +% which mean respectively minimal (usually 32 bit), 32 bit and 64 bit precision. +scan_w_multiple_main_name_overrides=02086_W_Overriding name of "main" procedure multiple times, was previously set to "$1" +% The name for the main entry procedure is specified more than once. Only the last +% name will be used. +scanner_w_illegal_warn_identifier=02087_W_Illegal identifier "$1" for $WARN directive +% Identifier is not known by a \var{\{\$WARN\}} compiler directive. +scanner_e_illegal_alignment_directive=02088_E_Illegal alignment directive +% The alignment directive is not valid. Either the alignment type is not known or the alignment +% value is not a power of two. +scanner_f_illegal_utf8_bom=02089_F_It is not possible to include a file that starts with an UTF-8 BOM in a module that uses a different code page +% All source code that is part of a single compilation entity (program, library, unit) must be encoded +% in the same code page +scanner_w_directive_ignored_on_target=02090_W_Directive "$1" is ignored for the current target platform +% Some directives are ignored for certain targets, such as changing the +% packrecords and packenum settings on managed platforms. +scan_w_unavailable_system_codepage=02091_W_Current system codepage "$1" is not available for the compiler. Switching default codepage back to "$2". +% The current system codepage is not known by the compiler. +% The compiler is compiled with support for several codepages built-in. +% The codepage of the operation system is not in that list. You will need to recompile +% the compiler with support for this codepage. +scan_w_setpeoptflags_not_support=02092_W_SETPEOPTFLAGS is not supported by the target OS +% The \var{\{\$SETPEOPTFLAGS\}} directive is not supported by the target OS. +scan_e_illegal_peflag=02093_E_Illegal argument for SETPEFLAGS +% The given argument for SETPEFLAGS is neither a correct named value nor an +% ordinal value +scan_e_illegal_peoptflag=02094_E_Illegal argument for SETPEOPTFLAGS +% The given argument for SETPEOPTFLAGS is neither a correct named value nor an +% ordinal value +scan_e_unsupported_switch=02095_E_Directive $1 is not supported on this target +% Not all compiler directives are supported on all targets. +scan_w_invalid_stacksize=02096_W_The specified stack size is not within the valid range for the platform. Setting the stack size ignored. +% The valid range for the stack size is 1024 - 67107839 on 32-bit and 64-bit +% platforms and 1024 - 65520 on 16-bit platforms. Additionally, for Turbo Pascal 7 +% compatibility reasons, specifying a stack size of 65521 on 16-bit platforms +% actually sets the stack size to 65520. +scan_w_heapmax_lessthan_heapmin=02097_W_The specified HeapMax value is smaller than the HeapMin value. Setting HeapMax ignored. +% The HeapMax value (if specified) must be greater than or equal to the HeapMin +% value. Otherwise, the HeapMax value is ignored. +scan_e_illegal_hugepointernormalization=02098_E_Illegal argument for HUGEPOINTERNORMALIZATION +% The only allowed values for HUGEPOINTERNORMALIZATION are BORLANDC, MICROSOFTC +% and WATCOMC. +% \end{description} +# +# Parser +# +# 03339 is the last used one +# +% \section{Parser messages} +% This section lists all parser messages. The parser takes care of the +% semantics of you language, i.e. it determines if your Pascal constructs +% are correct. +% \begin{description} parser_e_syntax_error=03000_E_Analyseur syntaxique - Erreur de syntaxe % An error against the Turbo Pascal language was encountered. This happens % typically when an illegal character is found in the sources file. @@ -370,6 +460,7 @@ parser_e_export_ordinal_double=03009_E_Index de fonction export parser_e_export_invalid_index=03010_E_Index de fonction exporte invalide % DLL function index must be in the range \var{1..\$FFFF} parser_w_parser_reloc_no_debug=03011_W_Les DLL ou EXE relogeables sont incompatibles avec les informations de dbogage, dbogage dsactiv. +% It is currently not possible to include debug information in a relocatable DLL. parser_w_parser_win32_debug_needs_WN=03012_W_Pour permettre le dbogage de code win32, utilisez l'option -WN % Stabs info is wrong for relocatable DLL or EXES use -WN % if you want to debug win32 executables. @@ -493,7 +584,7 @@ parser_e_fail_only_in_constructor=03051_E_FAIL ne peut parser_e_no_paras_for_destructor=03052_E_Les destructeurs ne peuvent pas avoir de paramtres % You are declaring a destructor with a parameter list. Destructor methods % cannot have parameters. -parser_e_only_class_methods_via_class_ref=03053_E_Seules des rfrences de classe peuvent faire rfrence des mthodes de classe +parser_e_only_class_members_via_class_ref=03053_E_Only class methods, class properties and class variables can be referred with class references % This error occurs in a situation like the following: % \begin{verbatim} % Type : @@ -507,9 +598,9 @@ parser_e_only_class_methods_via_class_ref=03053_E_Seules des r % \end{verbatim} % \var{Free} is not a class method and hence cannot be called with a class % reference. -parser_e_only_class_methods=03054_E_Seules des mthodes de classe peuvent tre appeles dans des mthodes de classe +parser_e_only_class_members=03054_E_Only class methods, class properties and class variables can be accessed in class methods % This is related to the previous error. You cannot call a method of an object -% from a inside a class method. The following code would produce this error: +% from inside a class method. The following code would produce this error: % \begin{verbatim} % class procedure tobject.x; % @@ -645,22 +736,14 @@ parser_e_mix_of_classes_and_objects=03093_E_Le m % a class cannot have an object as parent and vice versa. parser_w_unknown_proc_directive_ignored=03094_W_Une directive de procdure inconnue a due tre ignore : "$1" % The procedure directive you specified is unknown. -parser_e_absolute_only_one_var=03095_E_absolute ne peut tre associ qu' une seule variable -% You cannot specify more than one variable before the \var{absolute} directive. -% Thus, the following construct will provide this error: +parser_e_directive_only_one_var=03095_E_$1 can be associated with only one variable +% You cannot specify more than one variable before the \var{absolute}, \var{export}, \var{external}, +% \var{weakexternal}, \var{public} and \var{cvar} directives. +% As a result, for example the following construct will provide this error: % \begin{verbatim} % Var Z : Longint; % X,Y : Longint absolute Z; % \end{verbatim} -% \item [ absolute can only be associated a var or const ] -% The address of a \var{absolute} directive can only point to a variable or a -% typed constant. Therefore, the following code will produce this error: -% \begin{verbatim} -% Procedure X; -% -% var p : longint absolute x; -% \end{verbatim} -% parser_e_absolute_only_to_var_or_const=03096_E_absolute ne peut tre associ qu' une variable ou une constante % The address of a \var{absolute} directive can only point to a variable or % constant. Therefore, the following code will produce this error: @@ -842,10 +925,10 @@ parser_e_ill_property_storage_sym=03155_E_Ce symbole n'est pas admis comme symbo % You can't use this type of symbol as storage specifier in property % declaration. You can use only methods with the result type boolean, % boolean class fields or boolean constants -parser_e_only_publishable_classes_can__be_published=03156_E_Seules les classes compiles avec le mode $M+ peuvent tre PUBLISHED -% In the published section of a class can be only class as fields used which -% are compiled in \var{\{\$M+\}} or which are derived from such a class. Normally -% such a class should be derived from TPersitent +parser_e_only_publishable_classes_can_be_published=03156_E_Only classes which are compiled in $M+ mode can be published +% A class-typed field in the published section of a class can only be a class which was +% compiled in \var{\{\$M+\}} or which is derived from such a class. Normally +% such a class should be derived from \var{TPersistent}. parser_e_proc_directive_expected=03157_E_Directive de procdure attendue % This error is triggered when you have a \var{\{\$Calling\}} directive without % a calling convention specified. @@ -1082,6 +1165,420 @@ parser_e_dispid_must_be_ord_const=03219_E_Les Dispatch ID doivent % This section lists all errors that can occur when type checking is % performed. % \begin{description} +parser_e_array_range_out_of_bounds=03220_E_The range of the array is too large +% Regardless of the size taken up by its elements, an array cannot have more +% than high(ptrint) elements. Additionally, the range type must be a subrange +% of ptrint. +parser_e_packed_element_no_var_addr=03221_E_The address cannot be taken of bit packed array elements and record fields +% If you declare an array or record as \var{packed} in Mac Pascal mode +% (or as \var{packed} in any mode with \var{\{\$bitpacking on\}}), it will +% be packed at the bit level. This means it becomes impossible to take addresses +% of individual array elements or record fields. The only exception to this rule +% is in the case of packed arrays elements whose packed size is a multiple of 8 bits. +parser_e_packed_dynamic_open_array=03222_E_Dynamic arrays cannot be packed +% Only regular (and possibly in the future also open) arrays can be packed. +parser_e_packed_element_no_loop=03223_E_Bit packed array elements and record fields cannot be used as loop variables +% If you declare an array or record as \var{packed} in Mac Pascal mode +% (or as \var{packed} in any mode with \var{\{\$bitpacking on\}}), it will +% be packed at the bit level. For performance reasons, they cannot be +% used as loop variables. +parser_e_type_var_const_only_in_records_and_classes=03224_E_VAR, TYPE and CONST are allowed only in records, objects and classes +% The usage of VAR, TYPE and CONST to declare new types inside an object is allowed only inside +% records, objects and classes. +parser_e_cant_create_generics_of_this_type=03225_E_This type cannot be a generic +% Only Classes, Objects, Interfaces and Records are allowed to be used as generic. +parser_w_no_lineinfo_use_switch=03226_W_Don't load LINEINFO unit manually, Use the -gl compiler switch instead +% Do not use the \file{lineinfo} unit directly, Use the \var{-gl} switch which +% automatically adds the correct unit for reading the selected type of debugging +% information. The unit that needs to be used depends on the type of +% debug information used when compiling the binary. +parser_e_no_funcret_specified=03227_E_No function result type specified for function "$1" +% The first time you declare a function you have to declare it completely, +% including all parameters and the result type. +parser_e_special_onlygenerics=03228_E_Specialization is only supported for generic types +% Types which are not generics cannot be specialized. +parser_e_no_generics_as_params=03229_E_Generics cannot be used as parameters when specializing generics +% When specializing a generic, only non-generic types can be used as parameters. +parser_e_type_object_constants=03230_E_Constants of objects containing a VMT are not allowed +% If an object requires a VMT either because it contains a constructor or virtual methods, +% it's not allowed to create constants of it. In TP and Delphi mode this is allowed +% for compatibility reasons. +parser_e_label_outside_proc=03231_E_Taking the address of labels defined outside the current scope isn't allowed +% It isn't allowed to take the address of labels outside the +% current procedure. +parser_e_initialized_not_for_external=03233_E_Cannot initialize variables declared as external +% Variables declared as external cannot be initialized with a default value. +parser_e_illegal_function_result=03234_E_Illegal function result type +% Some types like file types cannot be used as function result. +parser_e_no_common_type=03235_E_No common type possible between "$1" and "$2" +% To perform an operation on integers, the compiler converts both operands +% to their common type, which appears to be an invalid type. To determine the +% common type of the operands, the compiler takes the minimum of the minimal values +% of both types, and the maximum of the maximal values of both types. The common +% type is then minimum..maximum. +parser_e_no_generics_as_types=03236_E_Generics without specialization cannot be used as a type for a variable +% Generics must be always specialized before being used as variable type. +parser_w_register_list_ignored=03237_W_Register list is ignored for pure assembler routines +% When using pure assembler routines, the list with modified registers is ignored. +parser_e_implements_must_be_class_or_interface=03238_E_Implements property must have class or interface type +% A property which implements an interface must be of type class or interface. +parser_e_implements_must_have_correct_type=03239_E_Implements-property must implement interface of correct type, found "$1" expected "$2" +% A property which implements an interface actually implements a different interface. +parser_e_implements_must_read_specifier=03240_E_Implements-property must have read specifier +% A property which implements an interface must have at least a read specifier. +parser_e_implements_must_not_have_write_specifier=03241_E_Implements-property must not have write-specifier +% A property which implements an interface may not have a write specifier. +parser_e_implements_must_not_have_stored_specifier=03242_E_Implements-property must not have stored-specifier +% A property which implements an interface may not have a stored specifier. +parser_e_implements_uses_non_implemented_interface=03243_E_Implements-property used on unimplemented interface: "$1" +% The interface which is implemented by a property is not an interface implemented by the class. +parser_e_unsupported_real=03244_E_Floating point not supported for this target +% The compiler parsed a floating point expression, but it is not supported. +parser_e_class_doesnt_implement_interface=03245_E_Class "$1" does not implement interface "$2" +% The delegated interface is not implemented by the class given in the implements clause. +parser_e_class_implements_must_be_interface=03246_E_Type used by implements must be an interface +% The \var{implements} keyword must be followed by an interface type. +parser_e_cant_export_var_different_name=03247_E_Variables cannot be exported with a different name on this target, add the name to the declaration using the "export" directive (variable name: $1, declared export name: $2) +% On most targets it is not possible to change the name under which a variable +% is exported inside the \var{exports} statement of a library. +% In that case, you have to specify the export name at the point where the +% variable is declared, using the \var{export} and \var{alias} directives. +parser_e_weak_external_not_supported=03248_E_Weak external symbols are not supported for the current target +% A "weak external" symbol is a symbol which may or may not exist at (either static +% or dynamic) link time. This concept may not be available (or implemented yet) +% on the current cpu/OS target. +parser_e_forward_mismatch=03249_E_Forward type definition does not match +% Classes and interfaces being defined forward must have the same type +% when being implemented. A forward interface cannot be changed into a class. +parser_n_ignore_lower_visibility=03250_N_Virtual method "$1" has a lower visibility ($2) than parent class $3 ($4) +% The virtual method overrides an method that is declared with a higher visibility. This might give +% unexpected results. E.g., in case the new visibility is private then a call to ``inherited'' in a +% new child class will call the higher-visible method in a parent class and ignores the private method. +parser_e_field_not_allowed_here=03251_E_Fields cannot appear after a method or property definition, start a new visibility section first +% Once a method or property has been defined in a class or object, you cannot define any fields afterwards +% without starting a new visibility section (such as \var{public}, \var{private}, etc.). The reason is +% that otherwise the source code can appear ambiguous to the compiler, since it is possible to use modifiers +% such as \var{default} and \var{register} also as field names. +parser_e_no_local_para_def=03252_E_Parameters or result types cannot contain local type definitions. Use a separate type definition in a type block. +% In Pascal, types are not considered to be identical simply because they are semantically equivalent. +% Two variables or parameters are only considered to be of the same type if they refer to the +% same type definition. +% As a result, it is not allowed to define new types inside parameter lists, because then it is impossible to +% refer to the same type definition in the procedure headers of the interface and implementation of a unit +% (both procedure headers would define a separate type). Keep in mind that expressions such as +% ``file of byte'' or ``string[50]'' also define a new type. +parser_e_abstract_and_sealed_conflict=03253_E_ABSTRACT and SEALED conflict +% ABSTRACT and SEALED cannot be used together in one declaration +parser_e_sealed_descendant=03254_E_Cannot create a descendant of the sealed class "$1" +% Sealed means that class cannot be derived by another class. +parser_e_sealed_class_cannot_have_abstract_methods=03255_E_SEALED class cannot have an ABSTRACT method +% Sealed means that class cannot be derived. Therefore no one class is able to override an abstract method in a sealed class. +parser_e_only_virtual_methods_final=03256_E_Only virtual methods can be final +% You are declaring a method as final, when it is not declared to be +% virtual. +parser_e_final_can_no_be_overridden=03257_E_Final method cannot be overridden: "$1" +% You are trying to \var{override} a virtual method of a parent class that does +% not exist. +parser_e_multiple_messages=03258_E_Only one message can be used per method. +% It is not possible to associate multiple messages with a single method. +parser_e_invalid_enumerator_identifier=03259_E_Invalid enumerator identifier: "$1" +% Only "MoveNext" and "Current" enumerator identifiers are supported. +parser_e_enumerator_identifier_required=03260_E_Enumerator identifier required +% "MoveNext" or "Current" identifier must follow the \var{enumerator} modifier. +parser_e_enumerator_movenext_is_not_valid=03261_E_Enumerator MoveNext pattern method is not valid. Method must be a function with the Boolean return type and no required arguments. +% "MoveNext" enumerator pattern method must be a function with Boolean return type and no required arguments +parser_e_enumerator_current_is_not_valid=03262_E_Enumerator Current pattern property is not valid. Property must have a getter. +% "Current" enumerator pattern property must have a getter +parser_e_only_one_enumerator_movenext=03263_E_Only one enumerator MoveNext method is allowed per class/object +% Class or Object can have only one enumerator MoveNext declaration. +parser_e_only_one_enumerator_current=03264_E_Only one enumerator Current property is allowed per class/object +% Class or Object can have only one enumerator Current declaration. +parser_e_for_in_loop_cannot_be_used_for_the_type=03265_E_For in loop cannot be used for the type "$1" +% For in loop can be used not for all types. For example it cannot be used for the enumerations with jumps. +parser_e_objc_requires_msgstr=03266_E_Objective-C messages require their Objective-C selector name to be specified using the "message" directive. +% Objective-C messages require their Objective-C name (selector name) to be specified using the \var{message `someName:'} procedure directive. +% While bindings to other languages automatically generate such names based on the identifier you use (by replacing +% all underscores with colons), this is unsafe since nothing prevents an Objective-C method name to contain actual +% colons. +parser_e_objc_no_constructor_destructor=03267_E_Objective-C does not have formal constructors nor destructors. Use the alloc, initXXX and dealloc messages. +% The Objective-C language does not have any constructors or destructors. While there are some messages with a similar +% purpose (such as \var{init} and \var{dealloc}), these cannot be identified using automatic parsers and do not +% guarantee anything like Pascal constructors/destructors (e.g., you have to take care of only calling ``designated'' +% inherited ``constructors''). For these reasons, we have opted to follow the standard Objective-C patterns for +% instance creation/destruction. +parser_e_message_string_too_long=03268_E_Message name is too long (max. 255 characters) +% Due to compiler implementation reasons, message names are currently limited to 255 characters. +parser_e_objc_message_name_too_long=03269_E_Objective-C message symbol name for "$1" is too long +% Due to compiler implementation reasons, mangled message names (i.e., the symbol names used in the assembler +% code) are currently limited to 255 characters. +parser_h_no_objc_parent=03270_H_Defining a new Objective-C root class. To derive from another root class (e.g., NSObject), specify it as the parent class. +% If no parent class is specified for an Object Pascal class, then it automatically derives from TObject. +% Objective-C classes however do not automatically derive from NSObject, because one can have multiple +% root classes in Objective-C. For example, in the Cocoa framework both NSObject and NSProxy are root classes. +% Therefore, you have to explicitly define a parent class (such as NSObject) if you want to derive your +% Objective-C class from it. +parser_e_no_objc_published=03271_E_Objective-C classes cannot have published sections. +% In Object Pascal, ``published'' determines whether or not RTTI is generated. Since the Objective-C runtime always needs +% RTTI for everything, this specified does not make sense for Objective-C classes. +parser_f_need_objc=03272_F_This module requires an Objective-C mode switch to be compiled +% This error indicates the use of Objective-C language features without an Objective-C mode switch +% active. Enable one via the -M command line switch, or the {\$modeswitch x} directive. +parser_e_must_use_override=03273_E_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1) +parser_h_should_use_override=03274_H_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1). +% It is not possible to \var{reintroduce} methods in Objective-C or Java like in Object Pascal. Methods with the same +% name always map to the same virtual method entry. In order to make this clear in the source code, +% the compiler always requires the \var{override} directive to be specified when implementing overriding +% Objective-C or Java methods in Pascal. If the implementation is external, this rule is relaxed because Objective-C and Java +% do not have any \var{override}-style keyword (since it's the default and only behaviour in these languages), +% which makes it hard for automated header conversion tools to include it everywhere. +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory in case of Objective-C. +parser_e_objc_message_name_changed=03275_E_Message name "$1" in inherited class is different from message name "$2" in current class. +% An overriding Objective-C method cannot have a different message name than an inherited method. The reason +% is that these message names uniquely define the message to the Objective-C runtime, which means that +% giving them a different message name breaks the ``override'' semantics. +parser_e_unique_unsupported=03276_E_It is not yet possible to make unique copies of Objective-C or Java types +% Duplicating an Objective-C or Java type using \var{type x = type y;} is not yet supported. You may be able to +% obtain the desired effect using \var{type x = objcclass(y) end;} resp.{} \var{type x = class(y) end;} instead. +parser_e_no_category_as_types=03277_E_Objective-C categories and Object Pascal class helpers cannot be used as types +% It is not possible to declare a variable as an instance of an Objective-C +% category or an Object Pascal class helper. A category/class helper adds +% methods to the scope of an existing class, but does not define a type by +% itself. An exception of this rule is when inheriting an Object Pascal class +% helper from another class helper. +parser_e_no_category_override=03278_E_Categories do not override, but replace methods. Use "reintroduce" instead. +parser_e_must_use_reintroduce_objc=03279_E_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +parser_h_should_use_reintroduce_objc=03280_H_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +% A category replaces an existing method in an Objective-C class, rather than that it overrides it. +% Calling an inherited method from an category method will call that method in +% the extended class' parent, not in the extended class itself. The +% replaced method in the original class is basically lost, and can no longer be +% called or referred to. This behaviour corresponds somewhat more closely to +% \var{reintroduce} than to \var{override} (although in case of \var{reintroduce} +% in Object Pascal, hidden methods are still reachable via inherited). +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory. +parser_e_implements_getter_not_default_cc=03281_E_Getter for implements interface must use the target's default calling convention. +% Interface getters are called via a helper in the run time library, and hence +% have to use the default calling convention for the target (\var{register} on +% i386 and x86\_64, \var{stdcall} on other architectures). +parser_e_no_refcounted_typed_file=03282_E_Typed files cannot contain reference-counted types. +% The data in a typed file cannot be of a reference counted type (such as +% \var{ansistring} or a record containing a field that is reference counted). +parser_e_operator_not_overloaded_2=03283_E_Operator is not overloaded: $2 "$1" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_operator_not_overloaded_3=03284_E_Operator is not overloaded: "$1" $2 "$3" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_more_array_elements_expected=03285_E_Expected another $1 array elements +% When declaring a typed constant array, you provided to few elements to initialize the array +parser_e_string_const_too_long=03286_E_String constant too long while ansistrings are disabled +% Only when a piece of code is compiled with ansistrings enabled (\var{\{\$H+\}}), string constants +% longer than 255 characters are allowed. +parser_e_invalid_univ_para=03287_E_Type cannot be used as univ parameter because its size is unknown at compile time: "$1" +% \var{univ} parameters are compatible with all values of the same size, but this +% cannot be checked in case a parameter's size is unknown at compile time. +parser_e_only_one_class_constructor_allowed=03288_E_Only one class constructor can be declared in class: "$1" +% You are trying to declare more than one class constructor but only one class constructor can be declared. +parser_e_only_one_class_destructor_allowed=03289_E_Only one class destructor can be declared in class: "$1" +% You are trying to declare more than one class destructor but only one class destructor can be declared. +parser_e_no_paras_for_class_constructor=03290_E_Class constructors cannot have parameters +% You are declaring a class constructor with a parameter list. Class constructor methods +% cannot have parameters. +parser_e_no_paras_for_class_destructor=03291_E_Class destructors cannot have parameters +% You are declaring a class destructor with a parameter list. Class destructor methods +% cannot have parameters. +parser_f_modeswitch_objc_required=03292_F_This construct requires the \{\$modeswitch objectivec1\} mode switch to be active +% Objective-Pascal constructs are not supported when \{\$modeswitch ObjectiveC1\} +% is not active. +parser_e_widestring_to_ansi_compile_time=03293_E_Unicodechar/string constants cannot be converted to ansi/shortstring at compile-time +% It is not possible to use unicodechar and unicodestring constants in +% constant expressions that have to be converted into an ansistring or shortstring +% at compile time, for example inside typed constants. The reason is that the +% compiler cannot know what the actual ansi encoding will be at run time. +parser_e_objc_enumerator_2_0=03294_E_For-in Objective-Pascal loops require \{\$modeswitch ObjectiveC2\} to be active +% Objective-C ``fast enumeration'' support was added in Objective-C 2.0, and +% hence the appropriate modeswitch has to be activated to expose this feature. +% Note that Objective-C 2.0 programs require Mac OS X 10.5 or later. +parser_e_objc_missing_enumeration_defs=03295_E_The compiler cannot find the NSFastEnumerationProtocol or NSFastEnumerationState type in the CocoaAll unit +% Objective-C for-in loops (fast enumeration) require that the compiler can +% find a unit called CocoaAll that contains definitions for the +% NSFastEnumerationProtocol and NSFastEnumerationState types. If you get this +% error, most likely the compiler is finding and loading an alternate CocoaAll +% unit. +parser_e_no_procvarnested_const=03296_E_Typed constants of the type 'procedure is nested' can only be initialized with NIL and global procedures/functions +% A nested procedural variable consists of two components: the address of the +% procedure/function to call (which is always known at compile time), and also +% a parent frame pointer (which is never known at compile time) in case the +% procedural variable contains a reference to a nested procedure/function. +% Therefore such typed constants can only be initialized with global +% functions/procedures since these do not require a parent frame pointer. +parser_f_no_generic_inside_generic=03297_F_Declaration of generic class inside another generic class is not allowed +% At the moment, scanner supports recording of only one token buffer at the time +% (guarded by internal error 200511173 in tscannerfile.startrecordtokens). +% Since generics are implemented by recording tokens, it is not possible to +% have declaration of generic class inside another generic class. +parser_e_forward_intf_declaration_must_be_resolved=03298_E_Forward declaration "$1" must be resolved before a class can conform to or implement it +% An Objective-C protocol or Java Interface must be fully defined before classes can conform to it. +% This error occurs in the following situation (example for Objective-C, but the same goes for Java interfaces): +% \begin{verbatim} +% Type MyProtocol = objcprotoocl; +% ChildClass = Class(NSObject,MyProtocol) +% ... +% end; +% \end{verbatim} +% where \var{MyProtocol} is declared but not defined. +parser_e_no_record_published=03299_E_Record types cannot have published sections +% Published sections can be used only inside classes. +parser_e_no_destructor_in_records=03300_E_Destructors are not allowed in records or helpers +% Destructor declarations are not allowed in records or helpers. +parser_e_class_methods_only_static_in_records=03301_E_Class methods must be static in records +% Class methods declarations are not allowed in records without static modifier. +% Records have no inheritance and therefore non static class methods have no sense for them. +parser_e_no_parameterless_constructor_in_records=03302_E_Parameterless constructors are not allowed in records or record/type helpers +% Constructor declarations with no arguments are not allowed in records or record/type helpers. +parser_e_at_least_one_argument_must_be_of_type=03303_E_Either the result or at least one parameter must be of type "$1" +% It is required that either the result of the routine or at least one of its parameters be of the specified type. +% For example class operators either take an instance of the structured type in which they are defined, or they return one. +parser_e_cant_use_type_parameters_here=03304_E_Type parameters may require initialization/finalization - cannot be used in variant records +% Type parameters may be specialized with types which (e.g. \var{ansistring}) need initialization/finalization +% code which is implicitly generated by the compiler. +parser_e_externals_no_section=03305_E_Variables being declared as external cannot be in a custom section +% A section directive is not valid for variables being declared as external. +parser_e_section_no_locals=03306_E_Non-static and non-global variables cannot have a section directive +% A variable placed in a custom section is always statically allocated so it must be either a static or global variable. +parser_e_not_allowed_in_helper=03307_E_"$1" is not allowed in helper types +% Some directives and specifiers like "virtual", "dynamic", "override" are not +% allowed inside helper types in mode ObjFPC (they are ignored in mode Delphi), +% because they have no meaning within helpers. Also "abstract" isn't allowed in +% either mode. +parser_e_no_class_constructor_in_helpers=03308_E_Class constructors are not allowed in helpers +% Class constructor declarations are not allowed in helpers. +parser_e_inherited_not_in_record=03309_E_The use of "inherited" is not allowed in a record +% As records don't support inheritance the use of "inherited" is prohibited for +% these as well as for record helpers (in mode "Delphi" only). +parser_e_no_types_in_local_anonymous_records=03310_E_Type declarations are not allowed in local or anonymous records +% Records with types must be defined globally. Types cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_duplicate_implements_clause=03311_E_Duplicate implements clause for interface "$1" +% A class may delegate an interface using the "implements" clause only to a single property. Delegating it multiple times +% is a error. +parser_e_mapping_no_implements=03312_E_Interface "$1" cannot be delegated by "$2", it already has method resolutions +% Method resolution clause maps a method of an interface to a method of the current class. Therefore the current class +% has to implement the interface directly. Delegation is not possible. +parser_e_implements_no_mapping=03313_E_Interface "$1" cannot have method resolutions, "$2" already delegates it +% Method resolution is only possible for interfaces that are implemented directly, not by delegation. +parser_e_invalid_codepage=03314_E_Invalid codepage +% When declaring a string with a given codepage, the range of valid codepages values is limited +% to 0 to 65535. +parser_e_final_only_const_var=03315_E_Only fields (var-sections) and constants can be final in object types +% A final (class) field must be assigned a single value in the (class) constructor, and cannot +% be overwritten afterwards. A final (typed) constant is read-only. +parser_e_final_only_external=03316_E_Final fields are currently only supported for external classes +% Support for final fields in non-external classes requires a full data flow +% analysis implementation in FPC, which it currently still lacks. +parser_e_no_typed_const=03317_E_Typed constants are not allowed here, only formal constants are +% Java interfaces define a namespace in which formal constant can be defined, +% but since they define no storage it is not possible to define typed constants +% in them (those are more or less the same as initialised class fields). +parser_e_java_no_inherited_constructor=03318_E_Constructors are not automatically inherited in the JVM; explicitly add a constructor that calls the inherited one if you need it +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% For compatibility with external Java code, FPC does the same. If you require access to the same +% constructors in a child class, define them in the child class and call the inherited one from +% there. +parser_d_internal_parser_string=03319_D_Parsing internally generated code: $1 +% The compiler sometimes internally constructs Pascal code that is subsequently +% injected into the program. These messages display such code, in order to help +% with debugging errors in them. +parser_e_feature_unsupported_for_vm=03320_E_This language feature is not supported on managed VM targets +% Certain language features are not supported on targets that are managed virtual machines. +parser_e_jvm_invalid_virtual_constructor_call=03321_E_Calling a virtual constructor for the current instance inside another constructor is not possible on the JVM target +% The JVM does not natively support virtual constructor. Unforunately, we are not aware of a way to +% emulate them in a way that makes it possible to support calling virtual constructors +% for the current instance inside another constructor. +parser_e_method_lower_visibility=03322_E_Overriding method "$1" cannot have a lower visibility ($2) than in parent class $3 ($4) +% The JVM does not allow lowering the visibility of an overriding method. +parser_e_nostackframe_without_assembler=03323_E_Procedure/Function declared with call option NOSTACKFRAME but without ASSEMBLER +% nostackframe call modifier is supposed to be used in conjunction with assembler. +parser_e_nostackframe_with_locals=03324_E_Procedure/Function declared with call option NOSTACKFRAME but local stack size is $1 +% nostackframe call modifier used without assembler modifier +% might still generate local stack needs. +parser_e_cannot_generate_property_getter_setter=03325_E_Cannot generate property getter/setter $1 because its name clashes with existing identifier $2 +% Automatically generated getters/setters cannot have the same name as existing +% identifiers, because this may change the behaviour of existing code. +parser_w_overriding_property_getter_setter=03326_W_Automatically generated property getter/setter $1 overrides the same-named getter/setter in class $2 +% Automatically generated property getters/setters on the JVM platform are virtual methods, because +% the JVM does not support non-virtual methods that can be changed in child classes. This means +% that if a child class changes an inherited property definition, the behaviour of that property +% can change compared to native targets since even if a variable is declared as the parent type, +% by calling the virtual method the getter from the child will be used. This is different from +% the behaviour on native targets or when not activating automatically generated setters/getters, +% because in that case only the declared type of a variable influences the property behaviour. +parser_w_case_difference_auto_property_getter_setter_prefix=03327_W_Case mismatch between declared property getter/setter $1 and automatically constructed name $2, not changing declared name +% If a property's specified getter/setter already corresponded to the naming convention specified +% by the automatic getter/setter generation setting except in terms of upper/lowercase, the +% compiler will print a warning because it cannot necessarily change that other declaration itself +% not can it add one using the correct case (it could conflict with the original declaration). +% Manually correct the case of the getter/setter to conform to the desired coding rules. +% \var{TChild} overrides +parser_e_no_consts_in_local_anonymous_records=03328_E_Constants declarations are not allowed in local or anonymous records +% Records with constants must be defined globally. Constants cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_methods_in_local_anonymous_records=03329_E_Method declarations are not allowed in local or anonymous records +% Records with methods must be defined globally. Methods cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_properties_in_local_anonymous_records=03330_E_Property declarations are not allowed in local or anonymous records +% Records with properties must be defined globally. Properties cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_class_in_local_anonymous_records=03331_E_Class member declarations are not allowed in local or anonymous records +% Records with class members must be defined globally. Class members cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_not_allowed_in_record=03332_E_Visibility section "$1" not allowed in records +% The visibility sections \var(protected) and \var(strict protected) are only +% useful together with inheritance. Since records do not support that they are +% forbidden. +parser_e_dir_not_allowed=03333_E_Directive "$1" not allowed here +% This directive is not allowed in the given context. E.g. "static" +% is not allowed for instance methods or class operators. +parser_e_no_assembler_in_generic=03334_E_Assembler blocks not allowed inside generics +% The use of assembler blocks/routines is not allowed inside generics. +parser_e_property_only_sgr=03335_E_Properties can be only static, global or inside structured types +% Properties cannot be declared local, only global, using the static +% directive or inside structured types. +parser_e_overloaded_have_same_mangled_name=03336_E_Overloaded routines have the same mangled name +% Some platforms, such as the JVM platform, encode the parameters in the routine name in +% a prescribed way, and this encoding may map different Pascal types to the same encoded +% (a.k.a.\ ``mangled'') name. This error can only be solved by removing or changing the +% conflicting definitions' parameter declarations or routine names. +parser_e_default_value_val_const=03337_E_Default values can only be specified for value, const and constref parameters +% A default parameter value allows you to not specify a value for this parameter +% when calling the routine, and the compiler will instead pass the specified +% default (constant) value. As a result, default values can only be specified +% for parameters that can accept constant values. +parser_w_ptr_type_ignored=03338_W_Pointer type "$1" ignored +% The specified pointer type modifier is ignored, because it is not supported on +% the current platform. This happens, for example, when a far pointer is +% declared on a non-x86 platform. +parser_e_global_generic_references_static=03339_E_Global Generic template references static symtable +% A generic declared in the interface section of a unit must not reference symbols that belong +% solely to the implementation section of that unit. +parser_u_already_compiled=03340_UL_Unit $1 has been already compiled meanwhile. +% This tells you that the recursive reading of the uses clauses triggered already +% a compilation of the current unit, so the current compilation can be aborted. +% +% +% +% \end{description} +% +# Type Checking +# +# 04123 is the last used one +# +% \section{Type checking errors} +% This section lists all errors that can occur when type checking is +% performed. +% \begin{description} type_e_mismatch=04000_E_Type non valable % This can happen in many cases: % \begin{itemize} @@ -1221,12 +1718,12 @@ type_e_interface_type_expected=04034_E_Type interface attendu, "$1" sp % Type % TMyStream = Class(TStream,Integer) % \end{verbatim} -type_w_mixed_signed_unsigned=04035_W_Le mlange d'expressions signes et de mots longs (longwords) donne un rsultat sur 64 bits +type_h_mixed_signed_unsigned=04035_H_Mixing signed expressions and longwords gives a 64bit result % If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), % or if you have overflow and/or range checking turned on and use an arithmetic % expression (+, -, *, div, mod) in which both signed numbers and longwords appear, -% then everything has to be evaluated in 64bit which is slower than normal -% 32bit arithmetic. You can avoid this by typecasting one operand so it +% then everything has to be evaluated in 64-bit arithmetic which is slower than normal +% 32-bit arithmetic. You can avoid this by typecasting one operand so it % matches the result type of the other one. type_w_mixed_signed_unsigned2=04036_W_Le mlange d'expressions signes et de cardinaux ici peut provoquer une erreur de dpassement d'intervalle % If you use a binary operator (and, or, xor) and one of @@ -1259,19 +1756,21 @@ type_e_type_is_not_completly_defined=04042_E_Le type "$1" n'est pas compl type_w_string_too_long=04043_W_La chane contient plus de caractres que ne peut en contenir une chane courte % The size of the constant string, which is assigned to a shortstring, % is longer than the maximum size of the shortstring -type_w_signed_unsigned_always_false=04044_W_La comparaison est toujours FAUSSE du fait de l'intervalle des valeurs -% There is a comparison between an unsigned value and a signed constant which is -% less than zero. Because of type promotion, the statement will always evaluate to -% false. Exlicitly typecast the constant to the correct range to avoid this problem. -type_w_signed_unsigned_always_true=04045_W_La comparaison est toujours VRAIE du fait de l'intervalle des valeurs -% There is a comparison between an unsigned value and a signed constant which is -% less than zero. Because of type promotion, the statement will always evaluate to -% true. Exlicitly typecast the constant to the correct range to avoid this problem. +type_w_comparison_always_false=04044_W_Comparison might be always false due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% false. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. +type_w_comparison_always_true=04045_W_Comparison might be always true due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% true. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. type_w_instance_with_abstract=04046_W_Construction dune classe "$1" avec des mthodes abstraites % An instance of a class is created which contains non-implemented abstract % methods. This will probably lead to a runtime error 211 in the code if that % routine is ever called. All abstract methods should be overridden. -type_h_in_range_check=Loprande gauche de loprateur IN doit avoir la longueur dun octet (8 bits) +type_h_in_range_check=04047_H_Loprande gauche de loprateur IN doit avoir la longueur dun octet (8 bits) % The left operand of the \var{in} operator is not an ordinal or enumeration which fits % within 8-bits, this may lead to range check errors. The \var{in} operator % currently only supports a left operand which fits within a byte. In the case of @@ -1285,9 +1784,9 @@ type_h_smaller_possible_range_check=04049_H_Taille des types non concordante, po % this may cause a range-check error, or may lead to possible loss of data. type_e_cant_take_address_of_abstract_method=04050_E_L'adresse d'une mthode abstraite ne peut pas tre utilise % An abstract method has no body, so the address of an abstract method can't be taken. -type_e_operator_not_allowed=04051_E_L'oprateur n'est pas utilisable pour le type d'oprande -% You are trying an operator that is not available for the type of the -% operands +type_e_assignment_not_allowed=04051_E_Assignments to formal parameters and open arrays are not possible +% You are trying to assign a value to a formal (untyped var, const or out) +% parameter, or to an open array. type_e_constant_expr_expected=04052_E_Expression constante attendue % The compiler expects an constant expression, but gets a variable expression. type_e_operator_not_supported_for_types=04053_E_L'opration "$1" n'est pas supporte pour les types "$2" et "$3" @@ -1295,7 +1794,7 @@ type_e_operator_not_supported_for_types=04053_E_L'op type_e_illegal_type_conversion=04054_E_Conversion de types illgale: de "$1" vers "$2" % When doing a type-cast, you must take care that the sizes of the variable and % the destination type are the same. -type_h_pointer_to_longint_conv_not_portable=La conversion entre types scalaires et pointeurs nest pas portable +type_h_pointer_to_longint_conv_not_portable=04055_H_La conversion entre types scalaires et pointeurs nest pas portable % If you typecast a pointer to a longint (or vice-versa), this code will not compile % on a machine using 64-bit for pointer storage. type_w_pointer_to_longint_conv_not_portable=04056_W_La conversion entre cardinaux et pointeurs n'est pas portable @@ -1327,6 +1826,206 @@ type_e_class_or_cominterface_type_expected=04060_E_Classe ou interface COM atten % This section lists all the messages that concern the handling of symbols. % This means all things that have to do with procedure and variable names. % \begin{description} +type_e_no_const_packed_array=04061_E_Constant packed arrays are not yet supported +% You cannot declare a (bit)packed array as a typed constant. +type_e_got_expected_packed_array=04062_E_Incompatible type for arg no. $1: Got "$2" expected "(Bit)Packed Array" +% The compiler expects a (bit)packed array as the specified parameter. +type_e_got_expected_unpacked_array=04063_E_Incompatible type for arg no. $1: Got "$2" expected "(not packed) Array" +% The compiler expects a regular (i.e., not packed) array as the specified parameter. +type_e_no_packed_inittable=04064_E_Elements of packed arrays cannot be of a type which need to be initialised +% Support for packed arrays of types that need initialization +% (such as ansistrings, or records which contain ansistrings) is not yet implemented. +type_e_no_const_packed_record=04065_E_Constant packed records and objects are not yet supported +% You cannot declare a (bit)packed array as a typed constant at this time. +type_w_untyped_arithmetic_unportable=04066_W_Arithmetic "$1" on untyped pointer is unportable to {$T+}, suggest typecast +% Addition/subtraction from an untyped pointer may work differently in \var{\{\$T+\}}. +% Use a typecast to a typed pointer. +type_e_cant_take_address_of_local_subroutine=04076_E_Can't take address of a subroutine marked as local +% The address of a subroutine marked as local cannot be taken. +type_e_cant_export_local=04077_E_Can't export subroutine marked as local from a unit +% A subroutine marked as local cannot be exported from a unit. +type_e_not_automatable=04078_E_Type is not automatable: "$1" +% Only byte, integer, longint, smallint, currency, single, double, ansistring, +% widestring, tdatetime, variant, olevariant, wordbool and all interfaces are automatable. +type_h_convert_add_operands_to_prevent_overflow=04079_H_Converting the operands to "$1" before doing the add could prevent overflow errors. +% Adding two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the addition. +type_h_convert_sub_operands_to_prevent_overflow=04080_H_Converting the operands to "$1" before doing the subtract could prevent overflow errors. +% Subtracting two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the subtraction. +type_h_convert_mul_operands_to_prevent_overflow=04081_H_Converting the operands to "$1" before doing the multiply could prevent overflow errors. +% Multiplying two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the multiplication. +type_w_pointer_to_signed=04082_W_Converting pointers to signed integers may result in wrong comparison results and range errors, use an unsigned type instead. +% The virtual address space on 32-bit machines runs from \$00000000 to \$ffffffff. +% Many operating systems allow you to allocate memory above \$80000000. +% For example both \windows and \linux allow pointers in the range \$0000000 to \$bfffffff. +% If you convert pointers to signed types, this can cause overflow and range check errors, +% but also \$80000000 < \$7fffffff. This can cause random errors in code like "if p>q". +type_e_interface_has_no_guid=04083_E_Interface type $1 has no valid GUID +% When applying the as-operator to an interface or class, the desired interface (i.e. the right operand of the +% as-operator) must have a valid GUID. +type_e_invalid_objc_selector_name=04084_E_Invalid selector name "$1" +% An Objective-C selector cannot be empty, must be a valid identifier or a single colon, +% and if it contains at least one colon it must also end in one. +type_e_expected_objc_method_but_got=04085_E_Expected Objective-C method, but got $1 +% A selector can only be created for Objective-C methods, not for any other kind +% of procedure/function/method. +type_e_expected_objc_method=04086_E_Expected Objective-C method or constant method name +% A selector can only be created for Objective-C methods, either by specifying +% the name using a string constant, or by using an Objective-C method identifier +% that is visible in the current scope. +type_e_no_type_info=04087_E_No type info available for this type +% Type information is not generated for some types, such as enumerations with gaps +% in their value range (this includes enumerations whose lower bound is different +% from zero). +type_e_ordinal_or_string_expr_expected=04088_E_Ordinal or string expression expected +% The expression must be an ordinal or string type. +type_e_string_expr_expected=04089_E_String expression expected +% The expression must be a string type. +type_w_zero_to_nil=04090_W_Converting 0 to NIL +% Use NIL rather than 0 when initialising a pointer. +type_e_protocol_type_expected=04091_E_Objective-C protocol type expected, but got "$1" +% The compiler expected a protocol type name, but found something else. +type_e_objc_type_unsupported=04092_E_The type "$1" is not supported for interaction with the Objective-C and the blocks runtime. +% Objective-C and Blocks make extensive use of run time type information (RTTI). This format +% is defined by the maintainers of the run time and can therefore not be adapted +% to all possible Object Pascal types. In particular, types that depend on +% reference counting by the compiler (such as ansistrings and certain kinds of +% interfaces) cannot be used as fields of Objective-C classes, cannot be +% directly passed to Objective-C methods or Blocks, and cannot be encoded using \var{objc\_encode}. +type_e_class_or_objcclass_type_expected=04093_E_Class or objcclass type expected, but got "$1" +% It is only possible to create class reference types of \var{class} and \var{objcclass} +type_e_objcclass_type_expected=04094_E_Objcclass type expected +% The compiler expected an \var{objcclass} type +type_w_procvar_univ_conflicting_para=04095_W_Coerced univ parameter type in procedural variable may cause crash or memory corruption: $1 to $2 +% \var{univ} parameters are implicitly compatible with all types of the same size, +% also in procedural variable definitions. That means that the following code is +% legal, because \var{single} and \var{longint} have the same size: +% \begin{verbatim} +% {$mode macpas} +% Type +% TIntProc = procedure (l: univ longint); +% +% procedure test(s: single); +% begin +% writeln(s); +% end; +% +% var +% p: TIntProc; +% begin +% p:=test; +% p(4); +% end. +% \end{verbatim} +% This code may however crash on platforms that pass integers in registers and +% floating point values on the stack, because then the stack will be unbalanced. +% Note that this warning will not flag all potentially dangerous situations. +% when \var{test} returns. +type_e_generics_cannot_reference_itself=04096_E_Type parameters of specializations of generics cannot reference the currently specialized type +% Recursive specializations of generics like \var{Type MyType = specialize MyGeneric;} are not possible. +type_e_type_parameters_are_not_allowed_here=04097_E_Type parameters are not allowed on non-generic class/record/object procedure or function +% Type parameters are only allowed for methods of generic classes, records or objects +type_e_generic_declaration_does_not_match=04098_E_Generic declaration of "$1" differs from previous declaration +% Generic declaration does not match the previous declaration +type_e_helper_type_expected=04099_E_Helper type expected +% The compiler expected a \var{class helper} type. +type_e_record_type_expected=04100_E_Record type expected +% The compiler expected a \var{record} type. +type_e_class_helper_must_extend_subclass=04101_E_Derived class helper must extend a subclass of "$1" or the class itself +% If a class helper inherits from another class helper the extended class must +% extend either the same class as the parent class helper or a subclass of it +type_e_record_helper_must_extend_same_record=04102_E_Derived record or type helper must extend "$1" +% If a record helper inherits from another record helper it must extend the same +% record that the parent record helper extended. +type_e_procedures_return_no_value=04103_E_Invalid assignment, procedures return no value +% This error occurs when one tries to assign the result of a procedure or destructor call. +% A procedure or destructor returns no value so this is not +% possible. +type_w_implicit_string_cast=04104_W_Implicit string type conversion from "$1" to "$2" +% An implicit type conversion from an ansi string type to an unicode string type is +% encountered. To avoid this warning perform an explicit type conversion. +type_w_implicit_string_cast_loss=04105_W_Implicit string type conversion with potential data loss from "$1" to "$2" +% An implicit type conversion from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. +type_w_explicit_string_cast=04106_-W_Explicit string typecast from "$1" to "$2" +% An explicit typecast from an ansi string type to an unicode string type is +% encountered. This warning is off by default. You can turn it on to see all suspicious string conversions. +type_w_explicit_string_cast_loss=04107_-W_Explicit string typecast with potential data loss from "$1" to "$2" +% An explicit typecast from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. This warning is off by default. You can turn it on to see all the places with lossy string +% conversions. +type_w_unicode_data_loss=04108_W_Unicode constant cast with potential data loss +% Conversion from a WideChar to AnsiChar can lose data since now all unicode characters may be represented in the current +% system codepage +% You can nest function definitions only 31 levels deep. +type_e_range_check_error_bounds=04109_E_range check error while evaluating constants ($1 must be between $2 and $3) +type_w_range_check_error_bounds=04110_W_range check error while evaluating constants ($1 must be between $2 and $3) +% The constants are outside their allowed range. +type_e_type_not_allowed_for_default=04111_E_This type is not supported for the Default() intrinsic +% Some types like for example Text and File Of X are not supported by the Default intrinsic. +type_e_java_class_method_not_static_virtual=04112_E_JVM virtual class methods cannot be static +% Virtual class methods cannot be static when targeting the JVM platform, because +% the self pointer is required for correct dispatching. +type_e_invalid_final_assignment=04113_E_Final (class) fields can only be assigned in their class' (class) constructor +% It is only possible to assign a value to a final (class) field inside a (class) constructor of its owning class. +type_e_no_managed_formal_assign_typecast=04114_E_It is not possible to typecast untyped parameters on managed platforms, simply assign a value to them instead. +% On managed platforms, untyped parameters are translated by the compiler into +% the equivalent of \var{var x: BaseClassType}. Non-class-based types passed to +% such parameters are automatically wrapped (or boxed) in a class, and after the +% call the potentially modified value is assigned back to the original variable. +% On the caller side, changing untyped var/out parameters happens by simply assigning +% values to them (either class-based or primitive ones). On the caller side, +% they will be extracted and if their type does not match the original variable's, +% an exception will be raised. +type_e_no_managed_assign_generic_typecast=04115_E_The assignment side of an expression cannot be typecasted to a supertype on managed platforms +% Managed platforms guarantee type safety at the bytecode level. This means that the virtual machine must be able +% to statically determine that no type-unsafe assignments or operations occur. By assigning a parent class type to a +% variable of a child type by typecasting the assignment side to the parent class type, the type safety would no +% longer be guaranteed and the generated code would fail verification at run time time. +type_w_interface_lower_visibility=04116_-W_The interface method "$1" raises the visibility of "$2" to public when accessed via an interface instance +type_e_interface_lower_visibility=04117_E_The interface method "$1" has a higher visibility (public) than "$2" +% All methods in an interface have always public visibility. That means that if +% an interface method is implemented using a (strict) protected or private method, +% this method is actually publicly accessible via the interface. On the JVM +% target this situation results in an error because the JVM rejects such +% attempts to circumvent the visibility rules. On other targets this is a +% warning that is disabled by default because such situations are common +% practice, but it can be enabled in case you are concerned with keeping your +% code compilable for the JVM target. +type_e_typeof_requires_vmt=04118_E_TYPEOF can only be used on object types with VMT +% Typeof() intrinsic returns pointer to VMT of its argument. It cannot be used on object types that do not have VMT. +type_e_invalid_default_value=04119_E_It is not possible to define a default value for a parameter of type "$1" +% Parameters declared as structured types, such as files, variants, non-dynamic +% arrays and TP-style objects, cannot have a default value. +type_e_type_not_allowed_for_type_helper=04120_E_Type "$1" cannot be extended by a type helper +% Types like procedural variables cannot be extended by type helpers +type_e_procedure_must_be_far=04121_E_Procedure or function must be far in order to allow taking its address: "$1" +% In certain i8086 memory models (medium, large and huge), procedures and functions +% have to be declared 'far' in order to allow their address to be taken. +type_w_instance_abstract_class=04122_W_Creating an instance of abstract class "$1" +% The specified class is declared as \var{abstract} and thus no instance of this class +% should be created. This is merely a warning for Delphi compatibility. +type_e_function_reference_kind=04123_E_Subroutine references cannot be declared as "of object" or "is nested", they can always refer to any kind of subroutine +% Subroutine references can refer to any kind of subroutine and hence do not +% require specialisation for methods or nested subroutines. +type_e_anonymous_function_unsupported=04999_E_Function references are not yet supported, only blocks (add "cdecl;" at the end) +% Remove this error message once Delphi-style anonymous are implemented. It has +% number 4999 so as not to result in a gap in the error message numbering once +% it's removed. +% \end{description} +# +# Symtable +# +# 05095 is the last used one +# +% \section{Symbol handling} +% This section lists all the messages that concern the handling of symbols. +% This means all things that have to do with procedure and variable names. +% \begin{description} sym_e_id_not_found=05000_E_Identificateur "$1" non trouv % The compiler doesn't know this symbol. Usually happens when you misspel % the name of a variable or procedure, or when you forgot to declare a @@ -1491,6 +2190,165 @@ sym_w_identifier_only_read=05061_W_La variable "$1" est lue mais ne re % This section lists all messages that can be displayed if the code % generator encounters an error condition. % \begin{description} +sym_h_abstract_method_list=05062_H_Found abstract method: $1 +% When getting a warning about constructing a class/object with abstract methods +% you get this hint to assist you in finding the affected method. +sym_w_experimental_symbol=05063_W_Symbol "$1" is experimental +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{experimental} is used. Experimental symbols +% might disappear or change semantics in future versions. Usage of this symbol +% should be avoided as much as possible. +sym_w_forward_not_resolved=05064_W_Forward declaration "$1" not resolved, assumed external +% This happens if you declare a function in the \var{interface} of a unit in macpas mode, +% but do not implement it. +sym_w_library_symbol=05065_W_Symbol "$1" is belongs to a library +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{library} is used. Library symbols may not be +% available in other libraries. +sym_w_deprecated_symbol_with_msg=05066_W_Symbol "$1" is deprecated: "$2" +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{deprecated} is used. Deprecated symbols may no longer +% be available in newer versions of the unit / library. Use of this symbol +% should be avoided as much as possible. +sym_e_no_enumerator=05067_E_Cannot find an enumerator for the type "$1" +% This means that compiler cannot find an appropriate enumerator to use in the for-in loop. +% To create an enumerator you need to define an operator enumerator or add a public or published +% GetEnumerator method to the class or object definition. +sym_e_no_enumerator_move=05068_E_Cannot find a "MoveNext" method in enumerator "$1" +% This means that compiler cannot find a public MoveNext method with the Boolean return type in +% the enumerator class or object definition. +sym_e_no_enumerator_current=05069_E_Cannot find a "Current" property in enumerator "$1" +% This means that compiler cannot find a public Current property in the enumerator class or object +% definition. +sym_e_objc_para_mismatch=05070_E_Mismatch between number of declared parameters and number of colons in message string. +% In Objective-C, a message name automatically contains as many colons as parameters. +% In order to prevent mistakes when specifying the message name in FPC, the compiler +% checks whether this is also the case here. Note that in case of messages taking a +% variable number of arguments translated to FPC via an \var{array of const} parameter, +% this final \var{array of const} parameter is not counted. Neither are the hidden +% \var{self} and \var{\_cmd} parameters. +sym_n_private_type_not_used=05071_N_Private type "$1.$2" never used +% The indicated private type is declared but is never used in the code. +sym_n_private_const_not_used=05072_N_Private const "$1.$2" never used +% The indicated private const is declared but is never used in the code. +sym_n_private_property_not_used=05073_N_Private property "$1.$2" never used +% The indicated private property is declared but is never used in the code. +sym_w_deprecated_unit=05074_W_Unit "$1" is deprecated +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_deprecated_unit_with_msg=05075_W_Unit "$1" is deprecated: "$2" +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_non_portable_unit=05076_W_Unit "$1" is not portable +% This means that a unit which is +% declared as \var{platform} is used. This unit use +% and availability is platform specific and should not be used +% if the source code must be portable. +sym_w_library_unit=05077_W_Unit "$1" is belongs to a library +% This means that a unit which is +% declared as \var{library} is used. Library units may not be +% available in other libraries. +sym_w_non_implemented_unit=05078_W_Unit "$1" is not implemented +% This means that a unit which is +% declared as \var{unimplemented} is used. This unit is defined, +% but is not yet implemented on this specific platform. +sym_w_experimental_unit=05079_W_Unit "$1" is experimental +% This means that a unit which is +% declared as \var{experimental} is used. Experimental units +% might disappear or change semantics in future versions. Usage of this unit +% should be avoided as much as possible. +sym_e_formal_class_not_resolved=05080_E_No complete definition of the formally declared class "$1" is in scope +% Objecive-C and Java classes can be imported formally, without using the unit in which it is fully declared. +% This enables making forward references to such classes and breaking circular dependencies amongst units. +% However, as soon as you wish to actually do something with an entity of this class type (such as +% access one of its fields, send a message to it, or use it to inherit from), the compiler requires the full definition +% of the class to be in scope. +sym_e_interprocgoto_into_init_final_code_not_allowed=05081_E_Gotos into initialization or finalization blocks of units are not allowed +% Gotos into initialization or finalization blockse of units are not allowed. +sym_e_external_class_name_mismatch1=05082_E_Invalid external name "$1" for formal class "$2" +sym_e_external_class_name_mismatch2=05083_E_Complete class definition with external name "$1" here +% When a class is declared using a formal external definition, the actual external +% definition (if any) must specify the same external name as the formal definition +% (since both definitions refer to the same actual class type). +sym_w_library_overload=05084_W_Possible library conflict: symbol "$1" from library "$2" also found in library "$3" +% Some OS do not have library specific namespaces, for those +% OS, the function declared as "external 'libname' name 'funcname'", +% the 'libname' part is only a hint, funcname might also be loaded +% by another library. This warning appears if 'funcname' is used twice +% with two different library names. +sym_e_duplicate_id_create_java_constructor=05085_E_Cannot add implicit constructor 'Create' because identifier already used by "$1" +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. In Java, constructors are nameless, +% but in FPC they are all called ``Create''. Therefore, if you do not add a constructor to +% a Java class and furthermore use the ``Create'' identifier for another entity (e.g., a field, +% or a parameterless method), the compiler cannot satisfy this requirement. +sym_e_no_matching_inherited_parameterless_constructor=05086_E_Cannot generate default constructor for class, because parent has no parameterless constructor +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. This compiler must then call +% the parameterless constructor from the parent class inside this added constructor. +% This is however impossible if the parent class does not declare such a constructor. +% In this case you must add a valid constructor yourself. +sym_d_adding_helper_for=05087_D_Adding helper for $1 +% A helper for the mentioned type is added to the current scope +sym_e_param_list=05088_E_Found declaration: $1 +% This message shows all overloaded declarations in case of an error. +sym_w_uninitialized_managed_local_variable=05089_W_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_uninitialized_managed_variable=05090_W_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_local_variable=05091_H_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. it did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_variable=05092_H_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. t did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_managed_function_result_uninitialized=05093_W_function result variable of a managed type does not seem to initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. before it appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_managed_function_result_uninitialized=05094_H_Function result variable of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. it appears in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_duplicate_id=05095_W_Duplicate identifier "$1" +% The identifier was already declared in an Objective-C category that's in the +% same scope as the current identifier. This is a warning instead of an error, +% because while this hides the identifier from the category, there are often +% many unused categories in scope. +% \end{description} +# +# Codegenerator +# +# 06049 is the last used one +# +% \section{Code generator messages} +% This section lists all messages that can be displayed if the code +% generator encounters an error condition. +% \begin{description} cg_e_parasize_too_big=06009_E_La taille de la liste de paramtre dpasse 65535 octets % The I386 processor limits the parameter list to 65535 bytes (the \var{RET} % instruction causes this) @@ -1606,6 +2464,49 @@ cg_f_unknown_compilerproc=06046_F_Proc # # 07097 is the last used one # +cg_f_unknown_system_type=06047_F_Cannot find system type "$1". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_h_inherited_ignored=06048_H_Inherited call to abstract method ignored +% This message appears only in Delphi mode when you call an abstract method +% of a parent class via \var{inherited;}. The call is then ignored. +cg_e_goto_label_not_found=06049_E_Goto label "$1" not defined or optimized away +% The label used in the goto definition is not defined or optimized away by the +% unreachable code elemination. +cg_f_unknown_type_in_unit=06050_F_Cannot find type "$1" in unit "$2". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_e_interprocedural_goto_only_to_outer_scope_allowed=06051_E_Interprocedural gotos are allowed only to outer subroutines +% Gotos between subroutines are only allowed if the goto jumps from an inner to an outer subroutine or +% from a subroutine to the main program +cg_e_labels_cannot_defined_outside_declaration_scope=06052_E_Label must be defined in the same scope as it is declared +% In ISO mode, labels must be defined in the same scope as they are declared. +cg_e_goto_across_procedures_with_exceptions_not_allowed=06053_E_Leaving procedures containing explicit or implicit exceptions frames using goto is not allowed +% Non-local gotos might not be used to leave procedures using exceptions either implicitly or explicitly. Procedures +% which use automated types like ansistrings or class constructurs are affected by this too. +cg_e_mod_only_defined_for_pos_quotient=06054_E_In ISO mode, the mod operator is defined only for positive quotient +% In ISO pascal, only positive values are allowed for the quotient: \var{n mod m} is only valid if \var{m>0}. +cg_d_autoinlining=06055_DL_Auto inlining: $1 +% Due to auto inlining turned on, the compiler auto inlines this subroutine. +cg_e_function_not_support_by_selected_instruction_set=06056_E_The function used, is not supported by the selected instruction set: $1 +% Some functions cannot be implemented efficiently for certain instruction sets, one example is fused multiply/add. +% To avoid very inefficient code, the compiler complains in this case, so either select another instruction set +% or replace the function call by alternative code +cg_f_max_units_reached=06057_F_Maximum number of units ($1) reached for the current target +% Depending of target architecture, the number of units is limited. This limit +% has been reached. A unit counts only if it contains initialization or finalization count. +% +% \end{description} +# EndOfTeX +# +# Assembler reader +# +# 07125 is the last used one +# asmr_d_start_reading=07000_DL_Dbut d'analyse assembleur de style $1 % This informs you that an assembler block is being parsed asmr_d_finish_reading=07001_DL_Analyse assembleur de style $1 termine @@ -1784,7 +2685,7 @@ asmr_e_unable_to_determine_reference_size=07083_E_Taille non sp % You should specify explicitly a size for the reference, because % the compiler is unable to determine what size (byte,word,dword,etc.) it % should use for the reference. -asmr_e_cannot_use_RESULT_here=Impossible d'utiliser RESULT dans cette fonction +asmr_e_cannot_use_RESULT_here=07084_E_Impossible d'utiliser RESULT dans cette fonction % Some functions which return complex types cannot use the \var{result} % keyword. asmr_w_adding_explicit_args_fXX=07086_W_"$1" sans paramtre traduit en "$1 %st,%st(1)" @@ -1826,6 +2727,96 @@ asmr_e_illegal_shifterop_syntax=07099_E_Erreur de syntaxe durant l'analyse d'une # # 08018 is the last used one # +asmr_e_packed_element=07100_E_Address of packed component is not at a byte boundary +% Packed components (record fields and array elements) may start at an arbitrary +% bit inside a byte. On CPU which do not support bit-addressable memory (which +% includes all currently supported CPUs by FPC) you will therefore get an error +% message when trying to index arrays with elements whose size is not a multiple +% of 8 bits. The same goes for accessing record fields with such an address. +% multiple of 8 bits. +asmr_w_unable_to_determine_reference_size_using_byte=07101_W_No size specified and unable to determine the size of the operands, using BYTE as default +% You should specify explicitly a size for the reference, because +% the compiler is unable to determine what size (byte,word,dword,etc.) it +% should use for the reference. This warning is only used in Delphi mode where +% it falls back to use BYTE as default. +asmr_w_no_direct_ebp_for_parameter=07102_W_Use of +offset(%ebp) for parameters invalid here +% Using direct 8(%ebp) reference for function/procedure parameters is invalid +% if parameters are in registers. +asmr_w_direct_ebp_for_parameter_regcall=07103_W_Use of +offset(%ebp) is not compatible with regcall convention +% Using direct 8(%ebp) reference for function/procedure parameters is invalid +% if parameters are in registers. +asmr_w_direct_ebp_neg_offset=07104_W_Use of -offset(%ebp) is not recommended for local variable access +% Using -8(%ebp) to access a local variable is not recommended +asmr_w_direct_esp_neg_offset=07105_W_Use of -offset(%esp), access may cause a crash or value may be lost +% Using -8(%esp) to access a local stack is not recommended, as +% this stack portion can be overwritten by any function calls or interrupts. +asmr_e_no_vmtoffset_possible=07106_E_VMTOffset must be used in combination with a virtual method, and "$1" is not virtual +% Only virtual methods have VMT offsets +asmr_e_need_pic_ref=07107_E_Generating PIC, but reference is not PIC-safe +% The compiler has been configured to generate position-independent code +% (PIC), but there are position-dependent references in the current +% handwritten assembler instruction. +asmr_e_mixing_regtypes=07108_E_All registers in a register set must be of the same kind and width +% Instructions on the ARM architecture that take a register set as argument require that all registers +% in this set are of the same kind (e.g., integer, vfp) and width (e.g., single precision, double precision). +asmr_e_empty_regset=07109_E_A register set cannot be empty +% Instructions on the ARM architecture that take a register set as argument require that such a set +% contains at least one register. +asmr_w_useless_got_for_local=07110_W_@GOTPCREL is useless and potentially dangerous for local symbols +% The use of @GOTPCREL supposes an extra indirection that is +% not present if the symbol is local, which might lead to wrong assembler code +asmr_w_general_segment_with_constant=07111_W_Constant with general purpose segment register +% General purpose register should not have constant offsets +% as OS memory allocation might not be compatible with that. +asmr_e_bad_seh_directive_offset=07112_E_Invalid offset value for $1 +% Win64 SEH directives have certain restrictions on possible offset values, e.g. they should +% be positive and have 3 or 4 low bits clear. +asmr_e_bad_seh_directive_register=07113_E_Invalid register for $1 +% Win64 SEH directives accept only 64-bit integer registers or XMM registers. +asmr_e_seh_in_pure_asm_only=07114_E_SEH directives are allowed only in pure assembler procedures +% Win64 SEH directives are allowed only in pure assembler procedures, not in assembler +% blocks of regular procedures. +asmr_e_unsupported_directive=07115_E_Directive "$1" is not supported for the current target +asmr_e_complex_function_result_location=07116_E_This function's result location cannot be encoded directly in a single operand when "nostackframe" is used +% Functions declared with the \var{nostackframe} modifier do not have a stack frame, and hence +% do not have a local variable to hold the temporary function result. Accesses to the function +% result in such routines directly go to the registers or memory location that will be used +% to return their result to the caller. In some cases this result may be spread over multiple +% registers, in which case it is not possible to access the location via its symbolic name. +% You have to directly use the appropriate register names in this case. +asmr_e_wrong_gotpcrel_intel_syntax=07117_E_GOTPCREL references in Intel assembler syntax cannot contain a base or index register, and their offset must 0. +% The syntax for a gotpcrel PIC memory expression in Intel assembler syntax is +% \verb*[global_symbol wrt ..gotpcrel]* +asmr_e_no_gotpcrel_support=07118_E_The current target does not support GOTPCREL relocations +% Not all targets support position-independent code using a global offset table. +% Use a different way to access symbols in a position-indepent way in these cases. +asmr_w_global_access_without_got=07119_W_Exported/global symbols should be accessed via the GOT +% Global symbols (symbols from the unit interface, or defined in a program +% or library) should be accessed via the GOT when generating position-indepent code. +asmr_w_check_mem_operand_size=07120_W_Check size of memory operand "$1" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size3=07121_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size_offset=07122_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits + $4 byte offset]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_negative_offset=07123_W_Check "$1: offset of memory operand is negative "$2 byte" +% The offset of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_automap_multiple_size=07124_W_Check "$1: size of memory operand is empty, but es exists different definitions of the memory size =>> map to $2 (smallest option)" +% The size of memory operand is empty and we have different definitions of possible memory sizes. Check it! +asmr_e_invalid_ref_register=07125_E_Invalid register used in memory reference expression: "$1" +% FPU, vector and sometimes integer registers cannot be used in memory reference +% expressions, due to limitations of the cpu architecture or simple because +% it is not meaningful. + +# +# Assembler/binary writers +# +# 08029 is the last used one +# asmw_f_too_many_asm_files=08000_F_Trop peu de fichiers assembleur % With smartlinking enabled, there are too many assembler % files generated. Disable smartlinking. @@ -1862,6 +2853,41 @@ asmw_e_64bit_not_supported=08021_E_Asm: param % This section lists errors that occur when the compiler is processing the % command line or handling the configuration files. % \begin{description} +asmw_e_bad_reg_with_rex=08022_E_Asm: AH,BH,CH or DH cannot be used in an instruction requiring REX prefix +% x86_64 only: instruction encoding of this platform does not allow using +% 8086 high byte registers (AH,BH,CH or DH) together with REX prefix in a single instruction. +% The REX prefix is required whenever the instruction operand size is 64 bits, or +% when it uses one of extended x86_64 registers (R8-R15 or XMM8-XMM15). +asmw_e_missing_endprologue=08023_E_Missing .seh_endprologue directive +% x86_64-win64 only: Normally, SEH directives are handled internally by compiler. +% However, in pure assembler procedures .seh_endprologue directive is required +% if other SEH directives are present. +asmw_e_prologue_too_large=08024_E_Function prologue exceeds 255 bytes +% x86_64-win64: .seh_prologue directive must be placed within 255 bytes from function start. +asmw_e_handlerdata_no_handler=08025_E_.seh_handlerdata directive without preceding .seh_handler +% x86_64-win64: If .seh_handlerdata directive is used, then a .seh_handler directive must be +% present earlier in the same function. +asmw_f_too_many_relocations=08026_F_Relocation count for section $1 exceeds 65535 +% Legacy COFF targets limit number of relocations per section to 65535 because they use a 2-byte field +% to store the relocation count. Targets using newer PECOFF format do not have this limitation. +asmw_w_changing_bind_type=08027_N_Change of bind type of symbol $1 from $2 to $3 after use +asmw_h_changing_bind_type=08028_H_Change of bind type of symbol $1 from $2 to $3 after use +% An assembler symbol bind type has been altered after use, which can lead to wrong code. +% First version is reserved for changig to local label, which is the most probable cause +% of wrong code generation, but currently set to Note level as it appears inside +% the compiler compilation. +asmw_e_32bit_not_supported=08029_E_Asm: 32 Bit references not supported +# +# Executing linker/assembler +# +# 09035 is the last used one +# +# BeginOfTeX +% +% \section{Errors of assembling/linking stage} +% This section lists errors that occur when the compiler is processing the +% command line or handling the configuration files. +% \begin{description} exec_w_source_os_redefined=09000_W_Systme d'exploitation source redfini % The source operating system is redefined. exec_i_assembling_pipe=09001_I_Assemblage (pipe) de $1 @@ -1915,6 +2941,9 @@ exec_e_exe_not_supported=09018_E_Cr exec_e_dll_not_supported=09019_E_Cration de bibliothques dynamiques/partages non supporte % Creating dynamically loadable libraries is not supported for this platform, because it was % not yet implemented in the compiler. +exec_e_static_lib_not_supported=09035_E_Creation of Static Libraries not supported +% Creating static libraries is not supported for this platform, because it was +% not yet implemented in the compiler. exec_i_closing_script=09020_I_Fermeture du script $1 % Informational message showing when the external assembling an linking script is finished. exec_e_res_not_found=09021_E_Compilateur de ressource non trouv, utilisation d'un compilateur externe @@ -1944,6 +2973,35 @@ exec_d_resbin_params=09028_D_Ex % This section lists all messages that the compiler emits when an executable program is produced, % and only when the internal linker is used. % \begin{description} +exec_e_error_while_compiling_resources=09029_E_Error while compiling resources +% The resource compiler or converter returned an error. +exec_e_cant_call_resource_compiler=09030_E_Can't call the resource compiler "$1", switching to external mode +% An error occurred when calling a resource compiler. The compiler will produce +% a script that can be used to assemble, compile resources and link or +% postprocess the program. +exec_e_cant_open_resource_file=09031_E_Can't open resource file "$1" +% An error occurred resource file cannot be opened. +exec_e_cant_write_resource_file=09032_E_Can't write resource file "$1" +% An error occurred resource file cannot be written. +exec_n_backquote_cat_file_not_found=09033_N_File "$1" not found for backquoted cat command +% The compiler did not find the file that should be expanded into linker parameters +exec_w_init_file_not_found=09034_W_"$1" not found, this will probably cause a linking failure +% The compiler adds certain startup code files to the linker only when they are found. +% If they are not found, they are not added and this might cause a linking failure. +% +%\end{description} +# EndOfTeX + +# +# Executable information +# +# 09134 is the last used one +# +# BeginOfTeX +% \section{Executable information messages.} +% This section lists all messages that the compiler emits when an executable program is produced, +% and only when the internal linker is used. +% \begin{description} execinfo_f_cant_process_executable=09128_F_Post-traitement de l'excutable $1 impossible % Fatal error when the compiler is unable to post-process an executable. execinfo_f_cant_open_executable=09129_F_Impossible d'ouvrir l'excutable $1 @@ -1971,6 +3029,26 @@ execinfo_x_stackcommit=09134_X_Taille de pile valid % loading a unit from disk into memory. Many of these messages are % informational messages. % \begin{description} +link_f_executable_too_big=09200_F_Executable image size is too big for $1 target. +% Fatal error when resulting executable is too big. +link_w_32bit_absolute_reloc=09201_W_Object file "$1" contains 32-bit absolute relocation to symbol "$2". +% Warning when 64-bit object file contains 32-bit absolute relocations. +% In such case an executable image can be loaded into lower 4Gb of +% address space only. +%\end{description} +# EndOfTeX + +# +# Unit loading +# +# 10062 is the last used one +# +# BeginOfTeX +% \section{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. +% \begin{description} unit_t_unitsearch=10000_T_Recherche de l'unit $1 % When you use the \var{-vt}, the compiler tells you where it tries to find % unit files. @@ -2091,10 +3169,8 @@ unit_u_check_time=10037_U_V unit_w_cant_compile_unit_with_changed_incfile=10040_W_Impossible de recompiler l'unit $1 alors que des fichiers inclus ont t trouvs % A unit was found to have modified include files, but % some source files were not found, so recompilation is impossible. -unit_h_source_modified=10041_H_Le fichier $1 est plus rcent que le fichier PPU $2 -% A modified source file for a unit was found that was compiled with the -% release flag (-Ur). The unit will not implicitly be recompiled because -% this release flag is set. +unit_u_source_modified=10041_U_File $1 is newer than the one used for creating PPU file $2 +% A modified source file for a compiler unit was found. unit_u_ppu_invalid_fpumode=10042_U_Utilisation d'une unit compile avec un mode FPU incorrect % Trying to compile code while using units which were not compiled with % the same floating point format mode. Either all code should be compiled @@ -2162,6 +3238,29 @@ unit_u_skipping_reresolving_unit=10059_U_Saut de la re-resolution de l'unit # # 11039 is the last used one # +unit_u_unload_resunit=10060_U_Unloading resource unit $1 (not needed) +% When you use the \var{-vu} flag, the compiler warns that it is unloading the +% resource handling unit, since no resources are used. +unit_e_different_wpo_file=10061_E_Unit $1 was compiled using a different whole program optimization feedback input ($2, $3); 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 (\var{-FW} \var{-OW}), +% 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. +unit_u_indirect_crc_changed=10062_U_Indirect interface (objects/classes) CRC changed for unit $1 +% When you use the \var{-vu} flag, the compiler warns that the +% indirect CRC calculated for the unit (this is the CRC of all classes/objects/interfaces/$\ldots$ +% in the interfaces of units directly or indirectly used by this unit in the interface) has been changed after the +% implementation has been parsed. +unit_u_ppu_invalid_memory_model=10063_U_PPU is compiled for another i8086 memory model +% This unit file was compiled for a different i8086 memory model and +% cannot be read. +% \end{description} +# EndOfTeX + +# +# Options +# +# 11057 is the last used one +# option_usage=11000_O_$1 [options] [options] # BeginOfTeX % @@ -2238,22 +3337,161 @@ option_using_env=11027_T_Lecture des options depuis la variable d'environnement option_handling_option=11028_D_Utilisation de l'option "$1" % Debug info that an option is found and will be handled option_help_press_enter=11029__*** Appuyez sur Entre *** +% Message shown when help is shown page per page. When pressing the ENTER +% Key, the next page of help is shown. If you press q and then ENTER, the +% compiler exits. option_start_reading_configfile=11030_H_Dbut de la lecture du fichier de configuration $1 % Starting of config file parsing. option_end_reading_configfile=11031_H_Fin de la lecture du fichier de configuration $1 % End of config file parsing. option_interpreting_option=11032_D_Interprtation de l'option "$1" +% The compiler is interpreting an option option_interpreting_firstpass_option=11036_D_Interprtation de l'option de 1re passe "$1" +% The compiler is interpreting an option for the first time. option_interpreting_file_option=11033_D_Interprtation de l'option de fichier "$1" +% The compiler is interpreting an option which it read from the configuration file. option_read_config_file=11034_D_Lecture du fichier de configuration "$1" +% The compiler is starting to read the configuration file. option_found_file=11035_D_Fichier source "$1" trouv % Additional infos about options, displayed % when you have debug option turned on. option_code_page_not_available=11039_E_Page de codes inconnue +% An unknown codepage for the source files was requested. +% The compiler is compiled with support for several codepages built-in. +% The requested codepage is not in that list. You will need to recompile +% the compiler with support for the codepage you need. option_config_is_dir=11040_F_Le fichier de configuration $1 est un rpertoire % Directories can not be used as configuration files. %\end{description} # EndOfTeX +# +# Logo (option -l) +# +option_confict_asm_debug=11041_W_Assembler output selected "$1" cannot generate debug info, debugging disabled +% The selected assembler output cannot generate +% debugging information, debugging option is therefore disabled. +option_ppc386_deprecated=11042_W_Use of ppc386.cfg is deprecated, please use fpc.cfg instead +% Using ppc386.cfg is still supported for historical reasons, however, for a multiplatform +% system the naming makes no sense anymore. Please continue to use fpc.cfg instead. +option_else_without_if=11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DEF found +% An \var{\#ELSE} statement was found in the options file without a matching \var{\#IF(N)DEF} statement. +option_unsupported_target=11044_F_Option "$1" is not, or not yet, supported on the current target platform +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is incompatible with the currently selected target platform. +option_unsupported_target_for_feature=11045_F_The feature "$1" is not, or not yet, supported on the selected target platform +% Not all features are supported or implemented for all target platforms. This message informs you that a chosen +% feature is incompatible with the currently selected target platform. +option_dwarf_smart_linking=11046_N_DWARF debug information cannot be used with smart linking on this target, switching to static linking +% Smart linking is currently incompatible with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_ignored_target=11047_W_Option "$1" is ignored for the current target platform. +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is ignored for the currently selected target platform. +option_debug_external_unsupported=11048_W_Disabling external debug information because it is unsupported for the selected target/debug format combination. +% Not all debug formats can be stored in an external file on all platforms. In particular, on +% Mac OS X only DWARF debug information can be stored externally. +option_dwarf_smartlink_creation=11049_N_DWARF debug information cannot be used with smart linking with external assembler, disabling static library creation. +% Smart linking is currently incompatble with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_invalid_macosx_deployment_target=11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variable: $1 +option_invalid_iphoneos_deployment_target=11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment variable: $1 +% On Mac OS X, the MACOSX\_DEPLOYMENT\_TARGET/IPHONEOS\_DEPLOYMENT\_TARGET environment variable can be +% used to set the default target OS version. In case of Mac OS X, it has to be of the format +% XY.Z or XY.Z.AB with X, Y,Z , A and B all digits from 0-9. +% In case of iOS, it has to be X.Z.A, where X, Z and A can all be either 1 or 2 +% digits from 0-9. +option_illegal_fpu_eabihf=11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when using the EABIHF ABI target +% The EABIHF (VFP hardfloat) ABI target can only be used with VFP FPUs. +option_w_unsupported_debug_format=11053_W_The selected debug format is not supported on the current target, not changing the current setting +% Not all targets support all debug formats (in particular, Stabs is not supported on 64 bit targets). +option_missing_arg=11054_E_argument to "$1" is missing +% Displayed when parameter must be followed by an argument. +option_malformed_para=11055_E_malformed parameter: $1 +% Given argument is not valid for parameter. +option_smart_link_requires_external_linker=11056_W_Smart linking requires external linker +option_com_files_require_tiny_model=11057_E_Creating .COM files is not supported in the current memory model. Only the tiny memory model supports making .COM files. + + +%\end{description} +# EndOfTeX + +# +# Whole program optimization +# +# 12019 is the last used one +# +# BeginOfTeX +% +% \section{Whole program optimization messages} +% This section lists errors that occur when the compiler is performing +% whole program optimization. +% \begin{description} +wpo_cant_find_file=12000_F_Cannot open whole program optimization feedback file "$1" +% The compiler cannot open the specified feedback file with whole program optimization information. +wpo_begin_processing=12001_D_Processing whole program optimization information in wpo feedback file "$1" +% The compiler starts processing whole program optimization information found in the named file. +wpo_end_processing=12002_D_Finished processing the whole program optimization information in wpo feedback file "$1" +% The compiler has finished processing the whole program optimization information found in the named file. +wpo_expected_section=12003_E_Expected section header, but got "$2" at line $1 of wpo feedback file +% The compiler expected a section header in the whole program optimization file (starting with \%), +% but did not find it. +wpo_no_section_handler=12004_W_No handler registered for whole program optimization section "$2" at line $1 of wpo feedback file, ignoring +% The compiler has no handler to deal with the mentioned whole program optimization information +% section, and will therefore ignore it and skip to the next section. +wpo_found_section=12005_D_Found whole program optimization section "$1" with information about "$2" +% The compiler encountered a section with whole program optimization information, and according +% to its handler this section contains information usable for the mentioned purpose. +wpo_no_input_specified=12006_F_The selected whole program optimizations require a previously generated feedback file (use -Fw to specify) +% The compiler needs information gathered during a previous compilation run to perform the selected +% whole program optimizations. You can specify the location of the feedback file containing this +% information using the -Fw switch. +wpo_not_enough_info=12007_E_No collected information necessary to perform "$1" whole program optimization found +% While you pointed the compiler to a file containing whole program optimization feedback, it +% did not contain the information necessary to perform the selected optimizations. You most likely +% have to recompile the program using the appropriate -OWxxx switch. +wpo_no_output_specified=12008_F_Specify a whole program optimization feedback file to store the generated info in (using -FW) +% You have to specify the feedback file in which the compiler has to store the whole program optimization +% feedback that is generated during the compilation run. This can be done using the -FW switch. +wpo_output_without_info_gen=12009_E_Not generating any whole program optimization information, yet a feedback file was specified (using -FW) +% The compiler was instructed to store whole program optimization feedback into a file specified using -FW, +% but not to actually generated any whole program optimization feedback. The classes of to be +% generated information can be specified using -OWxxx. +wpo_input_without_info_use=12010_E_Not performing any whole program optimizations, yet an input feedback file was specified (using -Fw) +% The compiler was not instructed to perform any whole program optimizations (no -Owxxx parameters), +% but nevertheless an input file with such feedback was specified (using -Fwyyy). Since this can +% indicate that you forgot to specify an -Owxxx parameter, the compiler generates an error in this case. +wpo_skipping_unnecessary_section=12011_D_Skipping whole program optimization section "$1", because not needed by the requested optimizations +% The whole program optimization feedback file contains a section with information that is not +% required by the selected whole program optimizations. +wpo_duplicate_wpotype=12012_W_Overriding previously read information for "$1" from feedback input file using information in section "$2" +% The feedback file contains multiple sections that provide the same class of information (e.g., +% information about which virtual methods can be devirtualized). In this case, the information in last encountered +% section is used. Turn on debugging output (-vd) to see which class of information is provided by each section. +wpo_cannot_extract_live_symbol_info_strip=12013_E_Cannot extract symbol liveness information from program when stripping symbols, use -Xs- +% Certain symbol liveness collectors extract the symbol information from the linked program. If the symbol information +% is stripped (option -Xs), this is not possible. +wpo_cannot_extract_live_symbol_info_no_link=12014_E_Cannot extract symbol liveness information from program when when not linking +% Certain symbol liveness collectors extract the symbol information from the linked program. If the program is not +% linked by the compiler, this is not possible. +wpo_cannot_find_symbol_progs=12015_F_Cannot find "$1" or "$2" to extract symbol liveness information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% This helper program is normally 'nm', which is part of the GNU binutils. +wpo_error_reading_symbol_file=12016_E_Error during reading symbol liveness information produced by "$1" +% An error occurred during the reading of the symbol liveness file that was generated using the 'nm' or 'objdump' program. The reason +% can be that it was shorter than expected, or that its format was not understood. +wpo_error_executing_symbol_prog=12017_F_Error executing "$1" (exitcode: $2) to extract symbol information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% The helper program produced the reported error code when it was run on the linked program. +wpo_symbol_live_info_needs_smart_linking=12018_E_Collection of symbol liveness information can only help when using smart linking, use -CX -XX +% Whether or not a symbol is live is determined by looking whether it exists in the final linked program. +% Without smart linking/dead code stripping, all symbols are always included, regardless of whether they are +% actually used or not. So in that case all symbols will be seen as live, which makes this optimization ineffective. +wpo_cant_create_feedback_file=12019_E_Cannot create specified whole program optimisation feedback file "$1" +% The compiler is unable to create the file specified using the -FW parameter to store the whole program optimisation information. +%\end{description} +# EndOfTeX + + # # Logo (option -l) # @@ -2294,6 +3532,80 @@ Rapports de bogues, suggestions, etc. # L = UNIX systems # The third character represents the indentation level. # +option_info=11024_[ +Free Pascal Compiler version $FPCVERSION + +Compiler date : $FPCDATE +Compiler CPU target: $FPCCPU + +Supported targets (targets marked with '{*}' are under development): + $OSTARGETS + +Supported CPU instruction sets: + $INSTRUCTIONSETS + +Supported FPU instruction sets: + $FPUINSTRUCTIONSETS + +Supported inline assembler modes: + $ASMMODES + +Recognized compiler and RTL features: + $FEATURELIST + +Supported ABI targets: + $ABITARGETS + +Supported Optimizations: + $OPTIMIZATIONS + +Supported Whole Program Optimizations: + All + $WPOPTIMIZATIONS + +Supported Microcontroller types:$\n $CONTROLLERTYPES$\n +This program comes under the GNU General Public Licence +For more information read COPYING.v2 + +Please report bugs in our bug tracker on: + http://bugs.freepascal.org + +More information may be found on our WWW pages (including directions +for mailing lists useful for asking questions or discussing potential +new features, etc.): + http://www.freepascal.org +] + +# +# Help pages (option -? and -h) +# +# The first character on the line indicates who will display this +# line, the current possibilities are : +# * = every target +# 3 = 80x86 targets +# 4 = x86_64 +# 6 = 680x0 targets +# 8 = 8086 (16-bit) targets +# a = AArch64 +# A = ARM +# e = in extended debug mode only +# F = help for the 'fpc' binary (independent of the target compiler) +# I = VIS +# J = JVM +# M = MIPS (MIPSEB) targets +# m = MIPSEL targets +# P = PowerPC targets +# p = PowerPC64 targets +# S = Sparc targets +# V = AVR +# The second character also indicates who will display this line, +# (if the above character was TRUE) the current possibilities are : +# * = everyone +# g = with GDB info supported by the compiler +# O = OS/2 +# L = UNIX systems +# The third character represents the indentation level. +# option_help_pages=11025_[ **0*_mettre + aprs un boolen pour activer l'option, - pour la dsactiver **1a_conserve les fichiers assembleurs crs pendant la compilation @@ -2514,3 +3826,70 @@ P*2WT_g # # The End... +%%% parser_e_only_class_methods_via_class_ref=03053_E_Seules des rfrences de classe peuvent faire rfrence des mthodes de classe +% This error occurs in a situation like the following: +% \begin{verbatim} +% Type : +% Tclass = Class of Tobject; +% +% Var C : TClass; +% +% begin +% ... +% C.free +% \end{verbatim} +% \var{Free} is not a class method and hence cannot be called with a class +% reference. +%%% parser_e_only_class_methods=03054_E_Seules des mthodes de classe peuvent tre appeles dans des mthodes de classe +% This is related to the previous error. You cannot call a method of an object +% from a inside a class method. The following code would produce this error: +% \begin{verbatim} +% class procedure tobject.x; +% +% begin +% free +% \end{verbatim} +% Because free is a normal method of a class it cannot be called from a class +% method. +%%% parser_e_absolute_only_one_var=03095_E_absolute ne peut tre associ qu' une seule variable +% You cannot specify more than one variable before the \var{absolute} directive. +% Thus, the following construct will provide this error: +% \begin{verbatim} +% Var Z : Longint; +% X,Y : Longint absolute Z; +% \end{verbatim} +% \item [ absolute can only be associated a var or const ] +% The address of a \var{absolute} directive can only point to a variable or a +% typed constant. Therefore, the following code will produce this error: +% \begin{verbatim} +% Procedure X; +% +% var p : longint absolute x; +% \end{verbatim} +% +%%% parser_e_only_publishable_classes_can__be_published=03156_E_Seules les classes compiles avec le mode $M+ peuvent tre PUBLISHED +% In the published section of a class can be only class as fields used which +% are compiled in \var{\{\$M+\}} or which are derived from such a class. Normally +% such a class should be derived from TPersitent +%%% type_w_mixed_signed_unsigned=04035_W_Le mlange d'expressions signes et de mots longs (longwords) donne un rsultat sur 64 bits +% If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), +% or if you have overflow and/or range checking turned on and use an arithmetic +% expression (+, -, *, div, mod) in which both signed numbers and longwords appear, +% then everything has to be evaluated in 64bit which is slower than normal +% 32bit arithmetic. You can avoid this by typecasting one operand so it +% matches the result type of the other one. +%%% type_w_signed_unsigned_always_false=04044_W_La comparaison est toujours FAUSSE du fait de l'intervalle des valeurs +% There is a comparison between an unsigned value and a signed constant which is +% less than zero. Because of type promotion, the statement will always evaluate to +% false. Exlicitly typecast the constant to the correct range to avoid this problem. +%%% type_w_signed_unsigned_always_true=04045_W_La comparaison est toujours VRAIE du fait de l'intervalle des valeurs +% There is a comparison between an unsigned value and a signed constant which is +% less than zero. Because of type promotion, the statement will always evaluate to +% true. Exlicitly typecast the constant to the correct range to avoid this problem. +%%% type_e_operator_not_allowed=04051_E_L'oprateur n'est pas utilisable pour le type d'oprande +% You are trying an operator that is not available for the type of the +% operands +%%% unit_h_source_modified=10041_H_Le fichier $1 est plus rcent que le fichier PPU $2 +% A modified source file for a unit was found that was compiled with the +% release flag (-Ur). The unit will not implicitly be recompiled because +% this release flag is set. diff --git a/compiler/msg/errorheu.msg b/compiler/msg/errorheu.msg index 63f5bd7146..3491e4b81e 100644 --- a/compiler/msg/errorheu.msg +++ b/compiler/msg/errorheu.msg @@ -1,3 +1,5 @@ +%%% Reordering of errorheu.msg respective to errore.msg +%%% Contains all comments from errorheu.msg # # This file is part of the Free Pascal Compiler # Copyright (c) 1999-2008 by the Free Pascal Development team @@ -115,7 +117,9 @@ general_e_path_does_not_exist=01017_E_הנתיב "$1" אינו קיים general_f_compilation_aborted=01018_F_ההידור בוטל % Compilation was aborted. general_text_bytes_code=01019_bytes code +% The size of the generated executable code, in bytes. general_text_bytes_data=01020_bytes data +% The size of the generated program data, in bytes. general_i_number_of_warnings=01021_I_אזהרות $1 הונפקו % Total number of warnings issued during compilation. general_i_number_of_hints=01022_I_הונפקו $1 רמזים @@ -134,6 +138,22 @@ general_i_number_of_notes=01023_I_הונפקו $1 הערות % reserved words, strings, etc. It also takes care of directives and % conditional compiling handling. % \begin{description} +general_f_ioerror=01024_F_I/O error: $1 +% During compilation an I/O error happened which allows no further compilation. +general_f_oserror=01025_F_Operating system error: $1 +% During compilation an operating system error happened which allows no further compilation. +% \end{description} +# +# Scanner +# +# 02098 is the last used one +# +% \section{Scanner messages.} +% This section lists the messages that the scanner emits. The scanner takes +% care of the lexical structure of the pascal file, i.e. it tries to find +% reserved words, strings, etc. It also takes care of directives and +% conditional compilation handling. +% \begin{description} scan_f_end_of_file=02000_F_סוף קובץ לא צפוי % this typically happens in one of the following cases : % \begin{itemize} @@ -366,6 +386,57 @@ scan_e_illegal_minfpconstprec=02085_E_דיוק הערך הקבוע של הנקו % semantics of you language, i.e. it determines if your pascal constructs % are correct. % \begin{description} +scan_w_multiple_main_name_overrides=02086_W_Overriding name of "main" procedure multiple times, was previously set to "$1" +% The name for the main entry procedure is specified more than once. Only the last +% name will be used. +scanner_w_illegal_warn_identifier=02087_W_Illegal identifier "$1" for $WARN directive +% Identifier is not known by a \var{\{\$WARN\}} compiler directive. +scanner_e_illegal_alignment_directive=02088_E_Illegal alignment directive +% The alignment directive is not valid. Either the alignment type is not known or the alignment +% value is not a power of two. +scanner_f_illegal_utf8_bom=02089_F_It is not possible to include a file that starts with an UTF-8 BOM in a module that uses a different code page +% All source code that is part of a single compilation entity (program, library, unit) must be encoded +% in the same code page +scanner_w_directive_ignored_on_target=02090_W_Directive "$1" is ignored for the current target platform +% Some directives are ignored for certain targets, such as changing the +% packrecords and packenum settings on managed platforms. +scan_w_unavailable_system_codepage=02091_W_Current system codepage "$1" is not available for the compiler. Switching default codepage back to "$2". +% The current system codepage is not known by the compiler. +% The compiler is compiled with support for several codepages built-in. +% The codepage of the operation system is not in that list. You will need to recompile +% the compiler with support for this codepage. +scan_w_setpeoptflags_not_support=02092_W_SETPEOPTFLAGS is not supported by the target OS +% The \var{\{\$SETPEOPTFLAGS\}} directive is not supported by the target OS. +scan_e_illegal_peflag=02093_E_Illegal argument for SETPEFLAGS +% The given argument for SETPEFLAGS is neither a correct named value nor an +% ordinal value +scan_e_illegal_peoptflag=02094_E_Illegal argument for SETPEOPTFLAGS +% The given argument for SETPEOPTFLAGS is neither a correct named value nor an +% ordinal value +scan_e_unsupported_switch=02095_E_Directive $1 is not supported on this target +% Not all compiler directives are supported on all targets. +scan_w_invalid_stacksize=02096_W_The specified stack size is not within the valid range for the platform. Setting the stack size ignored. +% The valid range for the stack size is 1024 - 67107839 on 32-bit and 64-bit +% platforms and 1024 - 65520 on 16-bit platforms. Additionally, for Turbo Pascal 7 +% compatibility reasons, specifying a stack size of 65521 on 16-bit platforms +% actually sets the stack size to 65520. +scan_w_heapmax_lessthan_heapmin=02097_W_The specified HeapMax value is smaller than the HeapMin value. Setting HeapMax ignored. +% The HeapMax value (if specified) must be greater than or equal to the HeapMin +% value. Otherwise, the HeapMax value is ignored. +scan_e_illegal_hugepointernormalization=02098_E_Illegal argument for HUGEPOINTERNORMALIZATION +% The only allowed values for HUGEPOINTERNORMALIZATION are BORLANDC, MICROSOFTC +% and WATCOMC. +% \end{description} +# +# Parser +# +# 03339 is the last used one +# +% \section{Parser messages} +% This section lists all parser messages. The parser takes care of the +% semantics of you language, i.e. it determines if your Pascal constructs +% are correct. +% \begin{description} parser_e_syntax_error=03000_E_מפרש - שגיאה תחבירית % An error against the Turbo Pascal language was encountered. This happens % typically when an illegal character is found in the sources file. @@ -383,6 +454,7 @@ parser_e_export_ordinal_double=03009_E_כפילויות בייצוא אינדק parser_e_export_invalid_index=03010_E_אינדקס לא תקין לייצוא הפונקציה % DLL function index must be in the range \var{1..\$FFFF} parser_w_parser_reloc_no_debug=03011_W_שינוי מיקום נתוני הניפוי לא עובדים לקבצי DLL או קבצי הרצה. התבטל. +% It is currently not possible to include debug information in a relocatable DLL. parser_w_parser_win32_debug_needs_WN=03012_W_לאפשר ניפוי שגיאות לwin32 יש לבטל את שינוי המיקום ע"י האפשרות -WN % Stabs info is wrong for relocatable DLL or EXES use -WN % if you want to debug win32 executables. @@ -506,7 +578,7 @@ parser_e_fail_only_in_constructor=03051_E_FAIL יכול להיות בשימוש parser_e_no_paras_for_destructor=03052_E_הורסים לא יכולים להכיל פרמטרים % You are declaring a destructor with a parameter list. Destructor methods % cannot have parameters. -parser_e_only_class_methods_via_class_ref=03053_E_רק מתודות מחלקה יכולות להיות מוגדרות בהתייחסות מחלקה +parser_e_only_class_members_via_class_ref=03053_E_Only class methods, class properties and class variables can be referred with class references % This error occurs in a situation like the following: % \begin{verbatim} % Type : @@ -520,9 +592,9 @@ parser_e_only_class_methods_via_class_ref=03053_E_רק מתודות מחלקה % \end{verbatim} % \var{Free} is not a class method and hence cannot be called with a class % reference. -parser_e_only_class_methods=03054_E_רק מתודת מחלקה יכולה לגשת למתודת מחלקה +parser_e_only_class_members=03054_E_Only class methods, class properties and class variables can be accessed in class methods % This is related to the previous error. You cannot call a method of an object -% from a inside a class method. The following code would produce this error: +% from inside a class method. The following code would produce this error: % \begin{verbatim} % class procedure tobject.x; % @@ -658,22 +730,14 @@ parser_e_mix_of_classes_and_objects=03093_E_הערבוב של עצמים שונ % a class cannot have an object as parent and vice versa. parser_w_unknown_proc_directive_ignored=03094_W_מתעלם מהנחית השגרה: "$1" % The procedure directive you specified is unknown. -parser_e_absolute_only_one_var=03095_E_absolute ניתן לשימוש רק עם משתנה אחת -% You cannot specify more than one variable before the \var{absolute} directive. -% Thus, the following construct will provide this error: +parser_e_directive_only_one_var=03095_E_$1 can be associated with only one variable +% You cannot specify more than one variable before the \var{absolute}, \var{export}, \var{external}, +% \var{weakexternal}, \var{public} and \var{cvar} directives. +% As a result, for example the following construct will provide this error: % \begin{verbatim} % Var Z : Longint; % X,Y : Longint absolute Z; % \end{verbatim} -% \item [ absolute can only be associated a var or const ] -% The address of a \var{absolute} directive can only point to a variable or a -% typed constant. Therefore, the following code will produce this error: -% \begin{verbatim} -% Procedure X; -% -% var p : longint absolute x; -% \end{verbatim} -% parser_e_absolute_only_to_var_or_const=03096_E_ניתן להשתמש בabsolute רק עם משתנה או קבוע % The address of a \var{absolute} directive can only point to a variable or % constant. Therefore, the following code will produce this error: @@ -1085,6 +1149,7 @@ parser_w_overridden_methods_not_same_ret=03218_W_המתודות החדשות ח % functions, but the resulting code may crash depending on the types used % and the way the methods are called. parser_e_dispid_must_be_ord_const=03219_E_מזהה Dispatch חייב להיות קבוע בעל ערך סידורי +% The \var{dispid} keyword must be followed by an ordinal constant (the dispid index). parser_e_array_range_out_of_bounds=03220_E_הטווח של המערך גבוהה מידי % Regardless of the size taken up by its elements, an array cannot have more % than high(ptrint) elements. Additionally, the range type must be a subrange @@ -1100,9 +1165,9 @@ parser_e_packed_element_no_loop=03223_E_אלמנטים ושדות של מערכ % If you declare an array or record as \var{packed} in Mac Pascal mode (or as \var{packed} in any mode with \var{\{\$bitpacking on\}}), it will % be packed at the bit level. For performance reasons, they cannot be % used as loop variables. -parser_e_type_and_var_only_in_generics=03224_E_ניתן להשתמש ב VAR ו TYPE רק עם generics -% The usage of VAR and TYPE to declare new types inside an object is allowed only inside -% generics. +parser_e_type_var_const_only_in_records_and_classes=03224_E_VAR, TYPE and CONST are allowed only in records, objects and classes +% The usage of VAR, TYPE and CONST to declare new types inside an object is allowed only inside +% records, objects and classes. parser_e_cant_create_generics_of_this_type=03225_E_הטיפוס אינו יכול להיות generic % Only Classes, Objects, Interfaces and Records are allowed to be used as generic parser_w_no_lineinfo_use_switch=03226_W_אין לטעון את הספרייה LINEINFO בצורה ידנית. על מנת להשתמש בספרייה יש להשתמש במתג -gl במקום @@ -1147,6 +1212,365 @@ parser_w_register_list_ignored=03237_W_מתעלם מרשימת האוגרים ע % This section lists all errors that can occur when type checking is % performed. % \begin{description} +parser_e_implements_must_be_class_or_interface=03238_E_Implements property must have class or interface type +% A property which implements an interface must be of type class or interface. +parser_e_implements_must_have_correct_type=03239_E_Implements-property must implement interface of correct type, found "$1" expected "$2" +% A property which implements an interface actually implements a different interface. +parser_e_implements_must_read_specifier=03240_E_Implements-property must have read specifier +% A property which implements an interface must have at least a read specifier. +parser_e_implements_must_not_have_write_specifier=03241_E_Implements-property must not have write-specifier +% A property which implements an interface may not have a write specifier. +parser_e_implements_must_not_have_stored_specifier=03242_E_Implements-property must not have stored-specifier +% A property which implements an interface may not have a stored specifier. +parser_e_implements_uses_non_implemented_interface=03243_E_Implements-property used on unimplemented interface: "$1" +% The interface which is implemented by a property is not an interface implemented by the class. +parser_e_unsupported_real=03244_E_Floating point not supported for this target +% The compiler parsed a floating point expression, but it is not supported. +parser_e_class_doesnt_implement_interface=03245_E_Class "$1" does not implement interface "$2" +% The delegated interface is not implemented by the class given in the implements clause. +parser_e_class_implements_must_be_interface=03246_E_Type used by implements must be an interface +% The \var{implements} keyword must be followed by an interface type. +parser_e_cant_export_var_different_name=03247_E_Variables cannot be exported with a different name on this target, add the name to the declaration using the "export" directive (variable name: $1, declared export name: $2) +% On most targets it is not possible to change the name under which a variable +% is exported inside the \var{exports} statement of a library. +% In that case, you have to specify the export name at the point where the +% variable is declared, using the \var{export} and \var{alias} directives. +parser_e_weak_external_not_supported=03248_E_Weak external symbols are not supported for the current target +% A "weak external" symbol is a symbol which may or may not exist at (either static +% or dynamic) link time. This concept may not be available (or implemented yet) +% on the current cpu/OS target. +parser_e_forward_mismatch=03249_E_Forward type definition does not match +% Classes and interfaces being defined forward must have the same type +% when being implemented. A forward interface cannot be changed into a class. +parser_n_ignore_lower_visibility=03250_N_Virtual method "$1" has a lower visibility ($2) than parent class $3 ($4) +% The virtual method overrides an method that is declared with a higher visibility. This might give +% unexpected results. E.g., in case the new visibility is private then a call to ``inherited'' in a +% new child class will call the higher-visible method in a parent class and ignores the private method. +parser_e_field_not_allowed_here=03251_E_Fields cannot appear after a method or property definition, start a new visibility section first +% Once a method or property has been defined in a class or object, you cannot define any fields afterwards +% without starting a new visibility section (such as \var{public}, \var{private}, etc.). The reason is +% that otherwise the source code can appear ambiguous to the compiler, since it is possible to use modifiers +% such as \var{default} and \var{register} also as field names. +parser_e_no_local_para_def=03252_E_Parameters or result types cannot contain local type definitions. Use a separate type definition in a type block. +% In Pascal, types are not considered to be identical simply because they are semantically equivalent. +% Two variables or parameters are only considered to be of the same type if they refer to the +% same type definition. +% As a result, it is not allowed to define new types inside parameter lists, because then it is impossible to +% refer to the same type definition in the procedure headers of the interface and implementation of a unit +% (both procedure headers would define a separate type). Keep in mind that expressions such as +% ``file of byte'' or ``string[50]'' also define a new type. +parser_e_abstract_and_sealed_conflict=03253_E_ABSTRACT and SEALED conflict +% ABSTRACT and SEALED cannot be used together in one declaration +parser_e_sealed_descendant=03254_E_Cannot create a descendant of the sealed class "$1" +% Sealed means that class cannot be derived by another class. +parser_e_sealed_class_cannot_have_abstract_methods=03255_E_SEALED class cannot have an ABSTRACT method +% Sealed means that class cannot be derived. Therefore no one class is able to override an abstract method in a sealed class. +parser_e_only_virtual_methods_final=03256_E_Only virtual methods can be final +% You are declaring a method as final, when it is not declared to be +% virtual. +parser_e_final_can_no_be_overridden=03257_E_Final method cannot be overridden: "$1" +% You are trying to \var{override} a virtual method of a parent class that does +% not exist. +parser_e_multiple_messages=03258_E_Only one message can be used per method. +% It is not possible to associate multiple messages with a single method. +parser_e_invalid_enumerator_identifier=03259_E_Invalid enumerator identifier: "$1" +% Only "MoveNext" and "Current" enumerator identifiers are supported. +parser_e_enumerator_identifier_required=03260_E_Enumerator identifier required +% "MoveNext" or "Current" identifier must follow the \var{enumerator} modifier. +parser_e_enumerator_movenext_is_not_valid=03261_E_Enumerator MoveNext pattern method is not valid. Method must be a function with the Boolean return type and no required arguments. +% "MoveNext" enumerator pattern method must be a function with Boolean return type and no required arguments +parser_e_enumerator_current_is_not_valid=03262_E_Enumerator Current pattern property is not valid. Property must have a getter. +% "Current" enumerator pattern property must have a getter +parser_e_only_one_enumerator_movenext=03263_E_Only one enumerator MoveNext method is allowed per class/object +% Class or Object can have only one enumerator MoveNext declaration. +parser_e_only_one_enumerator_current=03264_E_Only one enumerator Current property is allowed per class/object +% Class or Object can have only one enumerator Current declaration. +parser_e_for_in_loop_cannot_be_used_for_the_type=03265_E_For in loop cannot be used for the type "$1" +% For in loop can be used not for all types. For example it cannot be used for the enumerations with jumps. +parser_e_objc_requires_msgstr=03266_E_Objective-C messages require their Objective-C selector name to be specified using the "message" directive. +% Objective-C messages require their Objective-C name (selector name) to be specified using the \var{message `someName:'} procedure directive. +% While bindings to other languages automatically generate such names based on the identifier you use (by replacing +% all underscores with colons), this is unsafe since nothing prevents an Objective-C method name to contain actual +% colons. +parser_e_objc_no_constructor_destructor=03267_E_Objective-C does not have formal constructors nor destructors. Use the alloc, initXXX and dealloc messages. +% The Objective-C language does not have any constructors or destructors. While there are some messages with a similar +% purpose (such as \var{init} and \var{dealloc}), these cannot be identified using automatic parsers and do not +% guarantee anything like Pascal constructors/destructors (e.g., you have to take care of only calling ``designated'' +% inherited ``constructors''). For these reasons, we have opted to follow the standard Objective-C patterns for +% instance creation/destruction. +parser_e_message_string_too_long=03268_E_Message name is too long (max. 255 characters) +% Due to compiler implementation reasons, message names are currently limited to 255 characters. +parser_e_objc_message_name_too_long=03269_E_Objective-C message symbol name for "$1" is too long +% Due to compiler implementation reasons, mangled message names (i.e., the symbol names used in the assembler +% code) are currently limited to 255 characters. +parser_h_no_objc_parent=03270_H_Defining a new Objective-C root class. To derive from another root class (e.g., NSObject), specify it as the parent class. +% If no parent class is specified for an Object Pascal class, then it automatically derives from TObject. +% Objective-C classes however do not automatically derive from NSObject, because one can have multiple +% root classes in Objective-C. For example, in the Cocoa framework both NSObject and NSProxy are root classes. +% Therefore, you have to explicitly define a parent class (such as NSObject) if you want to derive your +% Objective-C class from it. +parser_e_no_objc_published=03271_E_Objective-C classes cannot have published sections. +% In Object Pascal, ``published'' determines whether or not RTTI is generated. Since the Objective-C runtime always needs +% RTTI for everything, this specified does not make sense for Objective-C classes. +parser_f_need_objc=03272_F_This module requires an Objective-C mode switch to be compiled +% This error indicates the use of Objective-C language features without an Objective-C mode switch +% active. Enable one via the -M command line switch, or the {\$modeswitch x} directive. +parser_e_must_use_override=03273_E_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1) +parser_h_should_use_override=03274_H_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1). +% It is not possible to \var{reintroduce} methods in Objective-C or Java like in Object Pascal. Methods with the same +% name always map to the same virtual method entry. In order to make this clear in the source code, +% the compiler always requires the \var{override} directive to be specified when implementing overriding +% Objective-C or Java methods in Pascal. If the implementation is external, this rule is relaxed because Objective-C and Java +% do not have any \var{override}-style keyword (since it's the default and only behaviour in these languages), +% which makes it hard for automated header conversion tools to include it everywhere. +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory in case of Objective-C. +parser_e_objc_message_name_changed=03275_E_Message name "$1" in inherited class is different from message name "$2" in current class. +% An overriding Objective-C method cannot have a different message name than an inherited method. The reason +% is that these message names uniquely define the message to the Objective-C runtime, which means that +% giving them a different message name breaks the ``override'' semantics. +parser_e_unique_unsupported=03276_E_It is not yet possible to make unique copies of Objective-C or Java types +% Duplicating an Objective-C or Java type using \var{type x = type y;} is not yet supported. You may be able to +% obtain the desired effect using \var{type x = objcclass(y) end;} resp.{} \var{type x = class(y) end;} instead. +parser_e_no_category_as_types=03277_E_Objective-C categories and Object Pascal class helpers cannot be used as types +% It is not possible to declare a variable as an instance of an Objective-C +% category or an Object Pascal class helper. A category/class helper adds +% methods to the scope of an existing class, but does not define a type by +% itself. An exception of this rule is when inheriting an Object Pascal class +% helper from another class helper. +parser_e_no_category_override=03278_E_Categories do not override, but replace methods. Use "reintroduce" instead. +parser_e_must_use_reintroduce_objc=03279_E_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +parser_h_should_use_reintroduce_objc=03280_H_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +% A category replaces an existing method in an Objective-C class, rather than that it overrides it. +% Calling an inherited method from an category method will call that method in +% the extended class' parent, not in the extended class itself. The +% replaced method in the original class is basically lost, and can no longer be +% called or referred to. This behaviour corresponds somewhat more closely to +% \var{reintroduce} than to \var{override} (although in case of \var{reintroduce} +% in Object Pascal, hidden methods are still reachable via inherited). +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory. +parser_e_implements_getter_not_default_cc=03281_E_Getter for implements interface must use the target's default calling convention. +% Interface getters are called via a helper in the run time library, and hence +% have to use the default calling convention for the target (\var{register} on +% i386 and x86\_64, \var{stdcall} on other architectures). +parser_e_no_refcounted_typed_file=03282_E_Typed files cannot contain reference-counted types. +% The data in a typed file cannot be of a reference counted type (such as +% \var{ansistring} or a record containing a field that is reference counted). +parser_e_operator_not_overloaded_2=03283_E_Operator is not overloaded: $2 "$1" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_operator_not_overloaded_3=03284_E_Operator is not overloaded: "$1" $2 "$3" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_more_array_elements_expected=03285_E_Expected another $1 array elements +% When declaring a typed constant array, you provided to few elements to initialize the array +parser_e_string_const_too_long=03286_E_String constant too long while ansistrings are disabled +% Only when a piece of code is compiled with ansistrings enabled (\var{\{\$H+\}}), string constants +% longer than 255 characters are allowed. +parser_e_invalid_univ_para=03287_E_Type cannot be used as univ parameter because its size is unknown at compile time: "$1" +% \var{univ} parameters are compatible with all values of the same size, but this +% cannot be checked in case a parameter's size is unknown at compile time. +parser_e_only_one_class_constructor_allowed=03288_E_Only one class constructor can be declared in class: "$1" +% You are trying to declare more than one class constructor but only one class constructor can be declared. +parser_e_only_one_class_destructor_allowed=03289_E_Only one class destructor can be declared in class: "$1" +% You are trying to declare more than one class destructor but only one class destructor can be declared. +parser_e_no_paras_for_class_constructor=03290_E_Class constructors cannot have parameters +% You are declaring a class constructor with a parameter list. Class constructor methods +% cannot have parameters. +parser_e_no_paras_for_class_destructor=03291_E_Class destructors cannot have parameters +% You are declaring a class destructor with a parameter list. Class destructor methods +% cannot have parameters. +parser_f_modeswitch_objc_required=03292_F_This construct requires the \{\$modeswitch objectivec1\} mode switch to be active +% Objective-Pascal constructs are not supported when \{\$modeswitch ObjectiveC1\} +% is not active. +parser_e_widestring_to_ansi_compile_time=03293_E_Unicodechar/string constants cannot be converted to ansi/shortstring at compile-time +% It is not possible to use unicodechar and unicodestring constants in +% constant expressions that have to be converted into an ansistring or shortstring +% at compile time, for example inside typed constants. The reason is that the +% compiler cannot know what the actual ansi encoding will be at run time. +parser_e_objc_enumerator_2_0=03294_E_For-in Objective-Pascal loops require \{\$modeswitch ObjectiveC2\} to be active +% Objective-C ``fast enumeration'' support was added in Objective-C 2.0, and +% hence the appropriate modeswitch has to be activated to expose this feature. +% Note that Objective-C 2.0 programs require Mac OS X 10.5 or later. +parser_e_objc_missing_enumeration_defs=03295_E_The compiler cannot find the NSFastEnumerationProtocol or NSFastEnumerationState type in the CocoaAll unit +% Objective-C for-in loops (fast enumeration) require that the compiler can +% find a unit called CocoaAll that contains definitions for the +% NSFastEnumerationProtocol and NSFastEnumerationState types. If you get this +% error, most likely the compiler is finding and loading an alternate CocoaAll +% unit. +parser_e_no_procvarnested_const=03296_E_Typed constants of the type 'procedure is nested' can only be initialized with NIL and global procedures/functions +% A nested procedural variable consists of two components: the address of the +% procedure/function to call (which is always known at compile time), and also +% a parent frame pointer (which is never known at compile time) in case the +% procedural variable contains a reference to a nested procedure/function. +% Therefore such typed constants can only be initialized with global +% functions/procedures since these do not require a parent frame pointer. +parser_f_no_generic_inside_generic=03297_F_Declaration of generic class inside another generic class is not allowed +% At the moment, scanner supports recording of only one token buffer at the time +% (guarded by internal error 200511173 in tscannerfile.startrecordtokens). +% Since generics are implemented by recording tokens, it is not possible to +% have declaration of generic class inside another generic class. +parser_e_forward_intf_declaration_must_be_resolved=03298_E_Forward declaration "$1" must be resolved before a class can conform to or implement it +% An Objective-C protocol or Java Interface must be fully defined before classes can conform to it. +% This error occurs in the following situation (example for Objective-C, but the same goes for Java interfaces): +% \begin{verbatim} +% Type MyProtocol = objcprotoocl; +% ChildClass = Class(NSObject,MyProtocol) +% ... +% end; +% \end{verbatim} +% where \var{MyProtocol} is declared but not defined. +parser_e_no_record_published=03299_E_Record types cannot have published sections +% Published sections can be used only inside classes. +parser_e_no_destructor_in_records=03300_E_Destructors are not allowed in records or helpers +% Destructor declarations are not allowed in records or helpers. +parser_e_class_methods_only_static_in_records=03301_E_Class methods must be static in records +% Class methods declarations are not allowed in records without static modifier. +% Records have no inheritance and therefore non static class methods have no sense for them. +parser_e_no_parameterless_constructor_in_records=03302_E_Parameterless constructors are not allowed in records or record/type helpers +% Constructor declarations with no arguments are not allowed in records or record/type helpers. +parser_e_at_least_one_argument_must_be_of_type=03303_E_Either the result or at least one parameter must be of type "$1" +% It is required that either the result of the routine or at least one of its parameters be of the specified type. +% For example class operators either take an instance of the structured type in which they are defined, or they return one. +parser_e_cant_use_type_parameters_here=03304_E_Type parameters may require initialization/finalization - cannot be used in variant records +% Type parameters may be specialized with types which (e.g. \var{ansistring}) need initialization/finalization +% code which is implicitly generated by the compiler. +parser_e_externals_no_section=03305_E_Variables being declared as external cannot be in a custom section +% A section directive is not valid for variables being declared as external. +parser_e_section_no_locals=03306_E_Non-static and non-global variables cannot have a section directive +% A variable placed in a custom section is always statically allocated so it must be either a static or global variable. +parser_e_not_allowed_in_helper=03307_E_"$1" is not allowed in helper types +% Some directives and specifiers like "virtual", "dynamic", "override" are not +% allowed inside helper types in mode ObjFPC (they are ignored in mode Delphi), +% because they have no meaning within helpers. Also "abstract" isn't allowed in +% either mode. +parser_e_no_class_constructor_in_helpers=03308_E_Class constructors are not allowed in helpers +% Class constructor declarations are not allowed in helpers. +parser_e_inherited_not_in_record=03309_E_The use of "inherited" is not allowed in a record +% As records don't support inheritance the use of "inherited" is prohibited for +% these as well as for record helpers (in mode "Delphi" only). +parser_e_no_types_in_local_anonymous_records=03310_E_Type declarations are not allowed in local or anonymous records +% Records with types must be defined globally. Types cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_duplicate_implements_clause=03311_E_Duplicate implements clause for interface "$1" +% A class may delegate an interface using the "implements" clause only to a single property. Delegating it multiple times +% is a error. +parser_e_mapping_no_implements=03312_E_Interface "$1" cannot be delegated by "$2", it already has method resolutions +% Method resolution clause maps a method of an interface to a method of the current class. Therefore the current class +% has to implement the interface directly. Delegation is not possible. +parser_e_implements_no_mapping=03313_E_Interface "$1" cannot have method resolutions, "$2" already delegates it +% Method resolution is only possible for interfaces that are implemented directly, not by delegation. +parser_e_invalid_codepage=03314_E_Invalid codepage +% When declaring a string with a given codepage, the range of valid codepages values is limited +% to 0 to 65535. +parser_e_final_only_const_var=03315_E_Only fields (var-sections) and constants can be final in object types +% A final (class) field must be assigned a single value in the (class) constructor, and cannot +% be overwritten afterwards. A final (typed) constant is read-only. +parser_e_final_only_external=03316_E_Final fields are currently only supported for external classes +% Support for final fields in non-external classes requires a full data flow +% analysis implementation in FPC, which it currently still lacks. +parser_e_no_typed_const=03317_E_Typed constants are not allowed here, only formal constants are +% Java interfaces define a namespace in which formal constant can be defined, +% but since they define no storage it is not possible to define typed constants +% in them (those are more or less the same as initialised class fields). +parser_e_java_no_inherited_constructor=03318_E_Constructors are not automatically inherited in the JVM; explicitly add a constructor that calls the inherited one if you need it +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% For compatibility with external Java code, FPC does the same. If you require access to the same +% constructors in a child class, define them in the child class and call the inherited one from +% there. +parser_d_internal_parser_string=03319_D_Parsing internally generated code: $1 +% The compiler sometimes internally constructs Pascal code that is subsequently +% injected into the program. These messages display such code, in order to help +% with debugging errors in them. +parser_e_feature_unsupported_for_vm=03320_E_This language feature is not supported on managed VM targets +% Certain language features are not supported on targets that are managed virtual machines. +parser_e_jvm_invalid_virtual_constructor_call=03321_E_Calling a virtual constructor for the current instance inside another constructor is not possible on the JVM target +% The JVM does not natively support virtual constructor. Unforunately, we are not aware of a way to +% emulate them in a way that makes it possible to support calling virtual constructors +% for the current instance inside another constructor. +parser_e_method_lower_visibility=03322_E_Overriding method "$1" cannot have a lower visibility ($2) than in parent class $3 ($4) +% The JVM does not allow lowering the visibility of an overriding method. +parser_e_nostackframe_without_assembler=03323_E_Procedure/Function declared with call option NOSTACKFRAME but without ASSEMBLER +% nostackframe call modifier is supposed to be used in conjunction with assembler. +parser_e_nostackframe_with_locals=03324_E_Procedure/Function declared with call option NOSTACKFRAME but local stack size is $1 +% nostackframe call modifier used without assembler modifier +% might still generate local stack needs. +parser_e_cannot_generate_property_getter_setter=03325_E_Cannot generate property getter/setter $1 because its name clashes with existing identifier $2 +% Automatically generated getters/setters cannot have the same name as existing +% identifiers, because this may change the behaviour of existing code. +parser_w_overriding_property_getter_setter=03326_W_Automatically generated property getter/setter $1 overrides the same-named getter/setter in class $2 +% Automatically generated property getters/setters on the JVM platform are virtual methods, because +% the JVM does not support non-virtual methods that can be changed in child classes. This means +% that if a child class changes an inherited property definition, the behaviour of that property +% can change compared to native targets since even if a variable is declared as the parent type, +% by calling the virtual method the getter from the child will be used. This is different from +% the behaviour on native targets or when not activating automatically generated setters/getters, +% because in that case only the declared type of a variable influences the property behaviour. +parser_w_case_difference_auto_property_getter_setter_prefix=03327_W_Case mismatch between declared property getter/setter $1 and automatically constructed name $2, not changing declared name +% If a property's specified getter/setter already corresponded to the naming convention specified +% by the automatic getter/setter generation setting except in terms of upper/lowercase, the +% compiler will print a warning because it cannot necessarily change that other declaration itself +% not can it add one using the correct case (it could conflict with the original declaration). +% Manually correct the case of the getter/setter to conform to the desired coding rules. +% \var{TChild} overrides +parser_e_no_consts_in_local_anonymous_records=03328_E_Constants declarations are not allowed in local or anonymous records +% Records with constants must be defined globally. Constants cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_methods_in_local_anonymous_records=03329_E_Method declarations are not allowed in local or anonymous records +% Records with methods must be defined globally. Methods cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_properties_in_local_anonymous_records=03330_E_Property declarations are not allowed in local or anonymous records +% Records with properties must be defined globally. Properties cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_class_in_local_anonymous_records=03331_E_Class member declarations are not allowed in local or anonymous records +% Records with class members must be defined globally. Class members cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_not_allowed_in_record=03332_E_Visibility section "$1" not allowed in records +% The visibility sections \var(protected) and \var(strict protected) are only +% useful together with inheritance. Since records do not support that they are +% forbidden. +parser_e_dir_not_allowed=03333_E_Directive "$1" not allowed here +% This directive is not allowed in the given context. E.g. "static" +% is not allowed for instance methods or class operators. +parser_e_no_assembler_in_generic=03334_E_Assembler blocks not allowed inside generics +% The use of assembler blocks/routines is not allowed inside generics. +parser_e_property_only_sgr=03335_E_Properties can be only static, global or inside structured types +% Properties cannot be declared local, only global, using the static +% directive or inside structured types. +parser_e_overloaded_have_same_mangled_name=03336_E_Overloaded routines have the same mangled name +% Some platforms, such as the JVM platform, encode the parameters in the routine name in +% a prescribed way, and this encoding may map different Pascal types to the same encoded +% (a.k.a.\ ``mangled'') name. This error can only be solved by removing or changing the +% conflicting definitions' parameter declarations or routine names. +parser_e_default_value_val_const=03337_E_Default values can only be specified for value, const and constref parameters +% A default parameter value allows you to not specify a value for this parameter +% when calling the routine, and the compiler will instead pass the specified +% default (constant) value. As a result, default values can only be specified +% for parameters that can accept constant values. +parser_w_ptr_type_ignored=03338_W_Pointer type "$1" ignored +% The specified pointer type modifier is ignored, because it is not supported on +% the current platform. This happens, for example, when a far pointer is +% declared on a non-x86 platform. +parser_e_global_generic_references_static=03339_E_Global Generic template references static symtable +% A generic declared in the interface section of a unit must not reference symbols that belong +% solely to the implementation section of that unit. +parser_u_already_compiled=03340_UL_Unit $1 has been already compiled meanwhile. +% This tells you that the recursive reading of the uses clauses triggered already +% a compilation of the current unit, so the current compilation can be aborted. +% +% +% +% \end{description} +% +# Type Checking +# +# 04123 is the last used one +# +% \section{Type checking errors} +% This section lists all errors that can occur when type checking is +% performed. +% \begin{description} type_e_mismatch=04000_E_טיפוס נתונים לא חופף % This can happen in many cases: % \begin{itemize} @@ -1287,12 +1711,12 @@ type_e_interface_type_expected=04034_E_מצפה לטיפוס מסוג ממשק, % Type % TMyStream = Class(TStream,Integer) % \end{verbatim} -type_w_mixed_signed_unsigned=04035_W_עירבוב ביטויי סימנים וlongwords מספקים תוצאה של 64bit +type_h_mixed_signed_unsigned=04035_H_Mixing signed expressions and longwords gives a 64bit result % If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), % or if you have overflow and/or range checking turned on and use an arithmetic % expression (+, -, *, div, mod) in which both signed numbers and longwords appear, -% then everything has to be evaluated in 64bit which is slower than normal -% 32bit arithmetic. You can avoid this by typecasting one operand so it +% then everything has to be evaluated in 64-bit arithmetic which is slower than normal +% 32-bit arithmetic. You can avoid this by typecasting one operand so it % matches the result type of the other one. type_w_mixed_signed_unsigned2=04036_W_ערבוב ביטויי סימנים ומספרים שלמים גבוהים עלול לגרום לשגיאת טווח מספרים % If you use a binary operator (and, or, xor) and one of @@ -1325,14 +1749,16 @@ type_e_type_is_not_completly_defined=04042_E_הטיפוס "$1" לא הוגדר type_w_string_too_long=04043_W_התוכן של המחרוזת מכיל יותר תווים ממה שניתן להכיל באורך של מחרוזת קצרה % The size of the constant string, which is assigned to a shortstring, % is longer than the maximum size of the shortstring -type_w_signed_unsigned_always_false=04044_W_ההשוואה תמיד תחזיר ערך של false בגלל טווח הערכים -% There is a comparison between an unsigned value and a signed constant which is -% less than zero. Because of type promotion, the statement will always evaluate to -% false. Exlicitly typecast the constant to the correct range to avoid this problem. -type_w_signed_unsigned_always_true=04045_W_ההשוואה תמיד תחזיר ערך של true בגלל טווח הערכים -% There is a comparison between an unsigned value and a signed constant which is -% less than zero. Because of type promotion, the statement will always evaluate to -% true. Exlicitly typecast the constant to the correct range to avoid this problem. +type_w_comparison_always_false=04044_W_Comparison might be always false due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% false. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. +type_w_comparison_always_true=04045_W_Comparison might be always true due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% true. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. type_w_instance_with_abstract=04046_W_מאתחל את המחלקה "$1" עם מתודות לא ממומשות % An instance of a class is created which contains non-implemented abstract % methods. This will probably lead to a runtime error 211 in the code if that @@ -1426,6 +1852,170 @@ type_w_pointer_to_signed=04082_W_המרת מצביעים למספרים שלמי % This section lists all the messages that concern the handling of symbols. % This means all things that have to do with procedure and variable names. % \begin{description} +type_e_interface_has_no_guid=04083_E_Interface type $1 has no valid GUID +% When applying the as-operator to an interface or class, the desired interface (i.e. the right operand of the +% as-operator) must have a valid GUID. +type_e_invalid_objc_selector_name=04084_E_Invalid selector name "$1" +% An Objective-C selector cannot be empty, must be a valid identifier or a single colon, +% and if it contains at least one colon it must also end in one. +type_e_expected_objc_method_but_got=04085_E_Expected Objective-C method, but got $1 +% A selector can only be created for Objective-C methods, not for any other kind +% of procedure/function/method. +type_e_expected_objc_method=04086_E_Expected Objective-C method or constant method name +% A selector can only be created for Objective-C methods, either by specifying +% the name using a string constant, or by using an Objective-C method identifier +% that is visible in the current scope. +type_e_no_type_info=04087_E_No type info available for this type +% Type information is not generated for some types, such as enumerations with gaps +% in their value range (this includes enumerations whose lower bound is different +% from zero). +type_e_ordinal_or_string_expr_expected=04088_E_Ordinal or string expression expected +% The expression must be an ordinal or string type. +type_e_string_expr_expected=04089_E_String expression expected +% The expression must be a string type. +type_w_zero_to_nil=04090_W_Converting 0 to NIL +% Use NIL rather than 0 when initialising a pointer. +type_e_protocol_type_expected=04091_E_Objective-C protocol type expected, but got "$1" +% The compiler expected a protocol type name, but found something else. +type_e_objc_type_unsupported=04092_E_The type "$1" is not supported for interaction with the Objective-C and the blocks runtime. +% Objective-C and Blocks make extensive use of run time type information (RTTI). This format +% is defined by the maintainers of the run time and can therefore not be adapted +% to all possible Object Pascal types. In particular, types that depend on +% reference counting by the compiler (such as ansistrings and certain kinds of +% interfaces) cannot be used as fields of Objective-C classes, cannot be +% directly passed to Objective-C methods or Blocks, and cannot be encoded using \var{objc\_encode}. +type_e_class_or_objcclass_type_expected=04093_E_Class or objcclass type expected, but got "$1" +% It is only possible to create class reference types of \var{class} and \var{objcclass} +type_e_objcclass_type_expected=04094_E_Objcclass type expected +% The compiler expected an \var{objcclass} type +type_w_procvar_univ_conflicting_para=04095_W_Coerced univ parameter type in procedural variable may cause crash or memory corruption: $1 to $2 +% \var{univ} parameters are implicitly compatible with all types of the same size, +% also in procedural variable definitions. That means that the following code is +% legal, because \var{single} and \var{longint} have the same size: +% \begin{verbatim} +% {$mode macpas} +% Type +% TIntProc = procedure (l: univ longint); +% +% procedure test(s: single); +% begin +% writeln(s); +% end; +% +% var +% p: TIntProc; +% begin +% p:=test; +% p(4); +% end. +% \end{verbatim} +% This code may however crash on platforms that pass integers in registers and +% floating point values on the stack, because then the stack will be unbalanced. +% Note that this warning will not flag all potentially dangerous situations. +% when \var{test} returns. +type_e_generics_cannot_reference_itself=04096_E_Type parameters of specializations of generics cannot reference the currently specialized type +% Recursive specializations of generics like \var{Type MyType = specialize MyGeneric;} are not possible. +type_e_type_parameters_are_not_allowed_here=04097_E_Type parameters are not allowed on non-generic class/record/object procedure or function +% Type parameters are only allowed for methods of generic classes, records or objects +type_e_generic_declaration_does_not_match=04098_E_Generic declaration of "$1" differs from previous declaration +% Generic declaration does not match the previous declaration +type_e_helper_type_expected=04099_E_Helper type expected +% The compiler expected a \var{class helper} type. +type_e_record_type_expected=04100_E_Record type expected +% The compiler expected a \var{record} type. +type_e_class_helper_must_extend_subclass=04101_E_Derived class helper must extend a subclass of "$1" or the class itself +% If a class helper inherits from another class helper the extended class must +% extend either the same class as the parent class helper or a subclass of it +type_e_record_helper_must_extend_same_record=04102_E_Derived record or type helper must extend "$1" +% If a record helper inherits from another record helper it must extend the same +% record that the parent record helper extended. +type_e_procedures_return_no_value=04103_E_Invalid assignment, procedures return no value +% This error occurs when one tries to assign the result of a procedure or destructor call. +% A procedure or destructor returns no value so this is not +% possible. +type_w_implicit_string_cast=04104_W_Implicit string type conversion from "$1" to "$2" +% An implicit type conversion from an ansi string type to an unicode string type is +% encountered. To avoid this warning perform an explicit type conversion. +type_w_implicit_string_cast_loss=04105_W_Implicit string type conversion with potential data loss from "$1" to "$2" +% An implicit type conversion from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. +type_w_explicit_string_cast=04106_-W_Explicit string typecast from "$1" to "$2" +% An explicit typecast from an ansi string type to an unicode string type is +% encountered. This warning is off by default. You can turn it on to see all suspicious string conversions. +type_w_explicit_string_cast_loss=04107_-W_Explicit string typecast with potential data loss from "$1" to "$2" +% An explicit typecast from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. This warning is off by default. You can turn it on to see all the places with lossy string +% conversions. +type_w_unicode_data_loss=04108_W_Unicode constant cast with potential data loss +% Conversion from a WideChar to AnsiChar can lose data since now all unicode characters may be represented in the current +% system codepage +% You can nest function definitions only 31 levels deep. +type_e_range_check_error_bounds=04109_E_range check error while evaluating constants ($1 must be between $2 and $3) +type_w_range_check_error_bounds=04110_W_range check error while evaluating constants ($1 must be between $2 and $3) +% The constants are outside their allowed range. +type_e_type_not_allowed_for_default=04111_E_This type is not supported for the Default() intrinsic +% Some types like for example Text and File Of X are not supported by the Default intrinsic. +type_e_java_class_method_not_static_virtual=04112_E_JVM virtual class methods cannot be static +% Virtual class methods cannot be static when targeting the JVM platform, because +% the self pointer is required for correct dispatching. +type_e_invalid_final_assignment=04113_E_Final (class) fields can only be assigned in their class' (class) constructor +% It is only possible to assign a value to a final (class) field inside a (class) constructor of its owning class. +type_e_no_managed_formal_assign_typecast=04114_E_It is not possible to typecast untyped parameters on managed platforms, simply assign a value to them instead. +% On managed platforms, untyped parameters are translated by the compiler into +% the equivalent of \var{var x: BaseClassType}. Non-class-based types passed to +% such parameters are automatically wrapped (or boxed) in a class, and after the +% call the potentially modified value is assigned back to the original variable. +% On the caller side, changing untyped var/out parameters happens by simply assigning +% values to them (either class-based or primitive ones). On the caller side, +% they will be extracted and if their type does not match the original variable's, +% an exception will be raised. +type_e_no_managed_assign_generic_typecast=04115_E_The assignment side of an expression cannot be typecasted to a supertype on managed platforms +% Managed platforms guarantee type safety at the bytecode level. This means that the virtual machine must be able +% to statically determine that no type-unsafe assignments or operations occur. By assigning a parent class type to a +% variable of a child type by typecasting the assignment side to the parent class type, the type safety would no +% longer be guaranteed and the generated code would fail verification at run time time. +type_w_interface_lower_visibility=04116_-W_The interface method "$1" raises the visibility of "$2" to public when accessed via an interface instance +type_e_interface_lower_visibility=04117_E_The interface method "$1" has a higher visibility (public) than "$2" +% All methods in an interface have always public visibility. That means that if +% an interface method is implemented using a (strict) protected or private method, +% this method is actually publicly accessible via the interface. On the JVM +% target this situation results in an error because the JVM rejects such +% attempts to circumvent the visibility rules. On other targets this is a +% warning that is disabled by default because such situations are common +% practice, but it can be enabled in case you are concerned with keeping your +% code compilable for the JVM target. +type_e_typeof_requires_vmt=04118_E_TYPEOF can only be used on object types with VMT +% Typeof() intrinsic returns pointer to VMT of its argument. It cannot be used on object types that do not have VMT. +type_e_invalid_default_value=04119_E_It is not possible to define a default value for a parameter of type "$1" +% Parameters declared as structured types, such as files, variants, non-dynamic +% arrays and TP-style objects, cannot have a default value. +type_e_type_not_allowed_for_type_helper=04120_E_Type "$1" cannot be extended by a type helper +% Types like procedural variables cannot be extended by type helpers +type_e_procedure_must_be_far=04121_E_Procedure or function must be far in order to allow taking its address: "$1" +% In certain i8086 memory models (medium, large and huge), procedures and functions +% have to be declared 'far' in order to allow their address to be taken. +type_w_instance_abstract_class=04122_W_Creating an instance of abstract class "$1" +% The specified class is declared as \var{abstract} and thus no instance of this class +% should be created. This is merely a warning for Delphi compatibility. +type_e_function_reference_kind=04123_E_Subroutine references cannot be declared as "of object" or "is nested", they can always refer to any kind of subroutine +% Subroutine references can refer to any kind of subroutine and hence do not +% require specialisation for methods or nested subroutines. +type_e_anonymous_function_unsupported=04999_E_Function references are not yet supported, only blocks (add "cdecl;" at the end) +% Remove this error message once Delphi-style anonymous are implemented. It has +% number 4999 so as not to result in a gap in the error message numbering once +% it's removed. +% \end{description} +# +# Symtable +# +# 05095 is the last used one +# +% \section{Symbol handling} +% This section lists all the messages that concern the handling of symbols. +% This means all things that have to do with procedure and variable names. +% \begin{description} sym_e_id_not_found=05000_E_המזהה לא נמצא "$1" % The compiler doesn't know this symbol. Usually happens when you misspel % the name of a variable or procedure, or when you forgot to declare a @@ -1593,6 +2183,162 @@ sym_h_abstract_method_list=05062_H_נמצאה מתודה מופשטת: $1 % This section lists all messages that can be displayed if the code % generator encounters an error condition. % \begin{description} +sym_w_experimental_symbol=05063_W_Symbol "$1" is experimental +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{experimental} is used. Experimental symbols +% might disappear or change semantics in future versions. Usage of this symbol +% should be avoided as much as possible. +sym_w_forward_not_resolved=05064_W_Forward declaration "$1" not resolved, assumed external +% This happens if you declare a function in the \var{interface} of a unit in macpas mode, +% but do not implement it. +sym_w_library_symbol=05065_W_Symbol "$1" is belongs to a library +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{library} is used. Library symbols may not be +% available in other libraries. +sym_w_deprecated_symbol_with_msg=05066_W_Symbol "$1" is deprecated: "$2" +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{deprecated} is used. Deprecated symbols may no longer +% be available in newer versions of the unit / library. Use of this symbol +% should be avoided as much as possible. +sym_e_no_enumerator=05067_E_Cannot find an enumerator for the type "$1" +% This means that compiler cannot find an appropriate enumerator to use in the for-in loop. +% To create an enumerator you need to define an operator enumerator or add a public or published +% GetEnumerator method to the class or object definition. +sym_e_no_enumerator_move=05068_E_Cannot find a "MoveNext" method in enumerator "$1" +% This means that compiler cannot find a public MoveNext method with the Boolean return type in +% the enumerator class or object definition. +sym_e_no_enumerator_current=05069_E_Cannot find a "Current" property in enumerator "$1" +% This means that compiler cannot find a public Current property in the enumerator class or object +% definition. +sym_e_objc_para_mismatch=05070_E_Mismatch between number of declared parameters and number of colons in message string. +% In Objective-C, a message name automatically contains as many colons as parameters. +% In order to prevent mistakes when specifying the message name in FPC, the compiler +% checks whether this is also the case here. Note that in case of messages taking a +% variable number of arguments translated to FPC via an \var{array of const} parameter, +% this final \var{array of const} parameter is not counted. Neither are the hidden +% \var{self} and \var{\_cmd} parameters. +sym_n_private_type_not_used=05071_N_Private type "$1.$2" never used +% The indicated private type is declared but is never used in the code. +sym_n_private_const_not_used=05072_N_Private const "$1.$2" never used +% The indicated private const is declared but is never used in the code. +sym_n_private_property_not_used=05073_N_Private property "$1.$2" never used +% The indicated private property is declared but is never used in the code. +sym_w_deprecated_unit=05074_W_Unit "$1" is deprecated +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_deprecated_unit_with_msg=05075_W_Unit "$1" is deprecated: "$2" +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_non_portable_unit=05076_W_Unit "$1" is not portable +% This means that a unit which is +% declared as \var{platform} is used. This unit use +% and availability is platform specific and should not be used +% if the source code must be portable. +sym_w_library_unit=05077_W_Unit "$1" is belongs to a library +% This means that a unit which is +% declared as \var{library} is used. Library units may not be +% available in other libraries. +sym_w_non_implemented_unit=05078_W_Unit "$1" is not implemented +% This means that a unit which is +% declared as \var{unimplemented} is used. This unit is defined, +% but is not yet implemented on this specific platform. +sym_w_experimental_unit=05079_W_Unit "$1" is experimental +% This means that a unit which is +% declared as \var{experimental} is used. Experimental units +% might disappear or change semantics in future versions. Usage of this unit +% should be avoided as much as possible. +sym_e_formal_class_not_resolved=05080_E_No complete definition of the formally declared class "$1" is in scope +% Objecive-C and Java classes can be imported formally, without using the unit in which it is fully declared. +% This enables making forward references to such classes and breaking circular dependencies amongst units. +% However, as soon as you wish to actually do something with an entity of this class type (such as +% access one of its fields, send a message to it, or use it to inherit from), the compiler requires the full definition +% of the class to be in scope. +sym_e_interprocgoto_into_init_final_code_not_allowed=05081_E_Gotos into initialization or finalization blocks of units are not allowed +% Gotos into initialization or finalization blockse of units are not allowed. +sym_e_external_class_name_mismatch1=05082_E_Invalid external name "$1" for formal class "$2" +sym_e_external_class_name_mismatch2=05083_E_Complete class definition with external name "$1" here +% When a class is declared using a formal external definition, the actual external +% definition (if any) must specify the same external name as the formal definition +% (since both definitions refer to the same actual class type). +sym_w_library_overload=05084_W_Possible library conflict: symbol "$1" from library "$2" also found in library "$3" +% Some OS do not have library specific namespaces, for those +% OS, the function declared as "external 'libname' name 'funcname'", +% the 'libname' part is only a hint, funcname might also be loaded +% by another library. This warning appears if 'funcname' is used twice +% with two different library names. +sym_e_duplicate_id_create_java_constructor=05085_E_Cannot add implicit constructor 'Create' because identifier already used by "$1" +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. In Java, constructors are nameless, +% but in FPC they are all called ``Create''. Therefore, if you do not add a constructor to +% a Java class and furthermore use the ``Create'' identifier for another entity (e.g., a field, +% or a parameterless method), the compiler cannot satisfy this requirement. +sym_e_no_matching_inherited_parameterless_constructor=05086_E_Cannot generate default constructor for class, because parent has no parameterless constructor +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. This compiler must then call +% the parameterless constructor from the parent class inside this added constructor. +% This is however impossible if the parent class does not declare such a constructor. +% In this case you must add a valid constructor yourself. +sym_d_adding_helper_for=05087_D_Adding helper for $1 +% A helper for the mentioned type is added to the current scope +sym_e_param_list=05088_E_Found declaration: $1 +% This message shows all overloaded declarations in case of an error. +sym_w_uninitialized_managed_local_variable=05089_W_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_uninitialized_managed_variable=05090_W_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_local_variable=05091_H_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. it did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_variable=05092_H_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. t did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_managed_function_result_uninitialized=05093_W_function result variable of a managed type does not seem to initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. before it appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_managed_function_result_uninitialized=05094_H_Function result variable of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. it appears in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_duplicate_id=05095_W_Duplicate identifier "$1" +% The identifier was already declared in an Objective-C category that's in the +% same scope as the current identifier. This is a warning instead of an error, +% because while this hides the identifier from the category, there are often +% many unused categories in scope. +% \end{description} +# +# Codegenerator +# +# 06049 is the last used one +# +% \section{Code generator messages} +% This section lists all messages that can be displayed if the code +% generator encounters an error condition. +% \begin{description} cg_e_parasize_too_big=06009_E_הגודר של רשימת פרמטרים גדולה מ 65535 בתים % The I386 processor limits the parameter list to 65535 bytes (the \var{RET} % instruction causes this) @@ -1720,6 +2466,38 @@ cg_e_goto_label_not_found=06049_E_תווית ה Goto "$1" לא הוגדרה או # # 07105 is the last used one # +cg_f_unknown_type_in_unit=06050_F_Cannot find type "$1" in unit "$2". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_e_interprocedural_goto_only_to_outer_scope_allowed=06051_E_Interprocedural gotos are allowed only to outer subroutines +% Gotos between subroutines are only allowed if the goto jumps from an inner to an outer subroutine or +% from a subroutine to the main program +cg_e_labels_cannot_defined_outside_declaration_scope=06052_E_Label must be defined in the same scope as it is declared +% In ISO mode, labels must be defined in the same scope as they are declared. +cg_e_goto_across_procedures_with_exceptions_not_allowed=06053_E_Leaving procedures containing explicit or implicit exceptions frames using goto is not allowed +% Non-local gotos might not be used to leave procedures using exceptions either implicitly or explicitly. Procedures +% which use automated types like ansistrings or class constructurs are affected by this too. +cg_e_mod_only_defined_for_pos_quotient=06054_E_In ISO mode, the mod operator is defined only for positive quotient +% In ISO pascal, only positive values are allowed for the quotient: \var{n mod m} is only valid if \var{m>0}. +cg_d_autoinlining=06055_DL_Auto inlining: $1 +% Due to auto inlining turned on, the compiler auto inlines this subroutine. +cg_e_function_not_support_by_selected_instruction_set=06056_E_The function used, is not supported by the selected instruction set: $1 +% Some functions cannot be implemented efficiently for certain instruction sets, one example is fused multiply/add. +% To avoid very inefficient code, the compiler complains in this case, so either select another instruction set +% or replace the function call by alternative code +cg_f_max_units_reached=06057_F_Maximum number of units ($1) reached for the current target +% Depending of target architecture, the number of units is limited. This limit +% has been reached. A unit counts only if it contains initialization or finalization count. +% +% \end{description} +# EndOfTeX +# +# Assembler reader +# +# 07125 is the last used one +# asmr_d_start_reading=07000_DL_מתחיל בסגנון מפרש אסמבלר $1 % This informs you that an assembler block is being parsed asmr_d_finish_reading=07001_DL_הסתיים ניתוח סגנון אסמבלר $1 @@ -1965,6 +2743,71 @@ asmr_e_no_vmtoffset_possible=07106_E_השימוש ב VMTOffset חייב להגי # # 08018 is the last used one # +asmr_e_need_pic_ref=07107_E_Generating PIC, but reference is not PIC-safe +% The compiler has been configured to generate position-independent code +% (PIC), but there are position-dependent references in the current +% handwritten assembler instruction. +asmr_e_mixing_regtypes=07108_E_All registers in a register set must be of the same kind and width +% Instructions on the ARM architecture that take a register set as argument require that all registers +% in this set are of the same kind (e.g., integer, vfp) and width (e.g., single precision, double precision). +asmr_e_empty_regset=07109_E_A register set cannot be empty +% Instructions on the ARM architecture that take a register set as argument require that such a set +% contains at least one register. +asmr_w_useless_got_for_local=07110_W_@GOTPCREL is useless and potentially dangerous for local symbols +% The use of @GOTPCREL supposes an extra indirection that is +% not present if the symbol is local, which might lead to wrong assembler code +asmr_w_general_segment_with_constant=07111_W_Constant with general purpose segment register +% General purpose register should not have constant offsets +% as OS memory allocation might not be compatible with that. +asmr_e_bad_seh_directive_offset=07112_E_Invalid offset value for $1 +% Win64 SEH directives have certain restrictions on possible offset values, e.g. they should +% be positive and have 3 or 4 low bits clear. +asmr_e_bad_seh_directive_register=07113_E_Invalid register for $1 +% Win64 SEH directives accept only 64-bit integer registers or XMM registers. +asmr_e_seh_in_pure_asm_only=07114_E_SEH directives are allowed only in pure assembler procedures +% Win64 SEH directives are allowed only in pure assembler procedures, not in assembler +% blocks of regular procedures. +asmr_e_unsupported_directive=07115_E_Directive "$1" is not supported for the current target +asmr_e_complex_function_result_location=07116_E_This function's result location cannot be encoded directly in a single operand when "nostackframe" is used +% Functions declared with the \var{nostackframe} modifier do not have a stack frame, and hence +% do not have a local variable to hold the temporary function result. Accesses to the function +% result in such routines directly go to the registers or memory location that will be used +% to return their result to the caller. In some cases this result may be spread over multiple +% registers, in which case it is not possible to access the location via its symbolic name. +% You have to directly use the appropriate register names in this case. +asmr_e_wrong_gotpcrel_intel_syntax=07117_E_GOTPCREL references in Intel assembler syntax cannot contain a base or index register, and their offset must 0. +% The syntax for a gotpcrel PIC memory expression in Intel assembler syntax is +% \verb*[global_symbol wrt ..gotpcrel]* +asmr_e_no_gotpcrel_support=07118_E_The current target does not support GOTPCREL relocations +% Not all targets support position-independent code using a global offset table. +% Use a different way to access symbols in a position-indepent way in these cases. +asmr_w_global_access_without_got=07119_W_Exported/global symbols should be accessed via the GOT +% Global symbols (symbols from the unit interface, or defined in a program +% or library) should be accessed via the GOT when generating position-indepent code. +asmr_w_check_mem_operand_size=07120_W_Check size of memory operand "$1" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size3=07121_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size_offset=07122_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits + $4 byte offset]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_negative_offset=07123_W_Check "$1: offset of memory operand is negative "$2 byte" +% The offset of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_automap_multiple_size=07124_W_Check "$1: size of memory operand is empty, but es exists different definitions of the memory size =>> map to $2 (smallest option)" +% The size of memory operand is empty and we have different definitions of possible memory sizes. Check it! +asmr_e_invalid_ref_register=07125_E_Invalid register used in memory reference expression: "$1" +% FPU, vector and sometimes integer registers cannot be used in memory reference +% expressions, due to limitations of the cpu architecture or simple because +% it is not meaningful. + +# +# Assembler/binary writers +# +# 08029 is the last used one +# asmw_f_too_many_asm_files=08000_F_יותר מידי קבצי assembler % With smartlinking enabled, there are too many assembler % files generated. Disable smartlinking. @@ -2002,6 +2845,41 @@ asmw_e_64bit_not_supported=08021_E_Asm: האופרנט 64 סיביות אינו % This section lists errors that occur when the compiler is processing the % command line or handling the configuration files. % \begin{description} +asmw_e_bad_reg_with_rex=08022_E_Asm: AH,BH,CH or DH cannot be used in an instruction requiring REX prefix +% x86_64 only: instruction encoding of this platform does not allow using +% 8086 high byte registers (AH,BH,CH or DH) together with REX prefix in a single instruction. +% The REX prefix is required whenever the instruction operand size is 64 bits, or +% when it uses one of extended x86_64 registers (R8-R15 or XMM8-XMM15). +asmw_e_missing_endprologue=08023_E_Missing .seh_endprologue directive +% x86_64-win64 only: Normally, SEH directives are handled internally by compiler. +% However, in pure assembler procedures .seh_endprologue directive is required +% if other SEH directives are present. +asmw_e_prologue_too_large=08024_E_Function prologue exceeds 255 bytes +% x86_64-win64: .seh_prologue directive must be placed within 255 bytes from function start. +asmw_e_handlerdata_no_handler=08025_E_.seh_handlerdata directive without preceding .seh_handler +% x86_64-win64: If .seh_handlerdata directive is used, then a .seh_handler directive must be +% present earlier in the same function. +asmw_f_too_many_relocations=08026_F_Relocation count for section $1 exceeds 65535 +% Legacy COFF targets limit number of relocations per section to 65535 because they use a 2-byte field +% to store the relocation count. Targets using newer PECOFF format do not have this limitation. +asmw_w_changing_bind_type=08027_N_Change of bind type of symbol $1 from $2 to $3 after use +asmw_h_changing_bind_type=08028_H_Change of bind type of symbol $1 from $2 to $3 after use +% An assembler symbol bind type has been altered after use, which can lead to wrong code. +% First version is reserved for changig to local label, which is the most probable cause +% of wrong code generation, but currently set to Note level as it appears inside +% the compiler compilation. +asmw_e_32bit_not_supported=08029_E_Asm: 32 Bit references not supported +# +# Executing linker/assembler +# +# 09035 is the last used one +# +# BeginOfTeX +% +% \section{Errors of assembling/linking stage} +% This section lists errors that occur when the compiler is processing the +% command line or handling the configuration files. +% \begin{description} exec_w_source_os_redefined=09000_W_מקור מערכת ההפעלה מוגדר מחדש % The source operating system is redefined. exec_i_assembling_pipe=09001_I_מרכיב (צינור) $1 @@ -2055,6 +2933,9 @@ exec_e_exe_not_supported=09018_E_אין תמיכה ביצירת קבצי ריצ exec_e_dll_not_supported=09019_E_אין תמיכה ביצירת ספריות דינמיות/משותפות % Creating dynamically loadable libraries is not supported for this platform, because it was % not yet implemented in the compiler. +exec_e_static_lib_not_supported=09035_E_Creation of Static Libraries not supported +% Creating static libraries is not supported for this platform, because it was +% not yet implemented in the compiler. exec_i_closing_script=09020_I_סוגר את התסריט $1 % Informational message showing when the external assembling an linking script is finished. exec_e_res_not_found=09021_E_מהדר משאבים לא נמצא, עובר למצב חיצוני @@ -2085,6 +2966,35 @@ exec_d_resbin_params=09028_D_מריץ את מהדר המשאבים "$1" עם "$2 % This section lists all messages that the compiler emits when an executable program is produced, % and only when the internal linker is used. % \begin{description} +exec_e_error_while_compiling_resources=09029_E_Error while compiling resources +% The resource compiler or converter returned an error. +exec_e_cant_call_resource_compiler=09030_E_Can't call the resource compiler "$1", switching to external mode +% An error occurred when calling a resource compiler. The compiler will produce +% a script that can be used to assemble, compile resources and link or +% postprocess the program. +exec_e_cant_open_resource_file=09031_E_Can't open resource file "$1" +% An error occurred resource file cannot be opened. +exec_e_cant_write_resource_file=09032_E_Can't write resource file "$1" +% An error occurred resource file cannot be written. +exec_n_backquote_cat_file_not_found=09033_N_File "$1" not found for backquoted cat command +% The compiler did not find the file that should be expanded into linker parameters +exec_w_init_file_not_found=09034_W_"$1" not found, this will probably cause a linking failure +% The compiler adds certain startup code files to the linker only when they are found. +% If they are not found, they are not added and this might cause a linking failure. +% +%\end{description} +# EndOfTeX + +# +# Executable information +# +# 09134 is the last used one +# +# BeginOfTeX +% \section{Executable information messages.} +% This section lists all messages that the compiler emits when an executable program is produced, +% and only when the internal linker is used. +% \begin{description} execinfo_f_cant_process_executable=09128_F_לא מצליח לבצע מעבר סופי על קובץ ההרצה $1 % Fatal error when the compiler is unable to post-process an executable. execinfo_f_cant_open_executable=09129_F_לא מצליח לפתוח את קובץ הריצה $1 @@ -2113,6 +3023,26 @@ execinfo_x_stackcommit=09134_X_גודל המחסנית בשימוש: $1 בתים % loading a unit from disk into memory. Many of these messages are % informational messages. % \begin{description} +link_f_executable_too_big=09200_F_Executable image size is too big for $1 target. +% Fatal error when resulting executable is too big. +link_w_32bit_absolute_reloc=09201_W_Object file "$1" contains 32-bit absolute relocation to symbol "$2". +% Warning when 64-bit object file contains 32-bit absolute relocations. +% In such case an executable image can be loaded into lower 4Gb of +% address space only. +%\end{description} +# EndOfTeX + +# +# Unit loading +# +# 10062 is the last used one +# +# BeginOfTeX +% \section{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. +% \begin{description} unit_t_unitsearch=10000_T_מחפש את היחידה: $1 % When you use the \var{-vt}, the compiler tells you where it tries to find % unit files. @@ -2303,6 +3233,29 @@ unit_u_skipping_reresolving_unit=10059_U_מדלג על טעינה מחודשת # # 11041 is the last used one # +unit_u_unload_resunit=10060_U_Unloading resource unit $1 (not needed) +% When you use the \var{-vu} flag, the compiler warns that it is unloading the +% resource handling unit, since no resources are used. +unit_e_different_wpo_file=10061_E_Unit $1 was compiled using a different whole program optimization feedback input ($2, $3); 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 (\var{-FW} \var{-OW}), +% 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. +unit_u_indirect_crc_changed=10062_U_Indirect interface (objects/classes) CRC changed for unit $1 +% When you use the \var{-vu} flag, the compiler warns that the +% indirect CRC calculated for the unit (this is the CRC of all classes/objects/interfaces/$\ldots$ +% in the interfaces of units directly or indirectly used by this unit in the interface) has been changed after the +% implementation has been parsed. +unit_u_ppu_invalid_memory_model=10063_U_PPU is compiled for another i8086 memory model +% This unit file was compiled for a different i8086 memory model and +% cannot be read. +% \end{description} +# EndOfTeX + +# +# Options +# +# 11057 is the last used one +# option_usage=11000_O_$1 [options] [options] # BeginOfTeX % @@ -2379,18 +3332,29 @@ option_using_env=11027_T_קורא אפשרויות מהסביבה $1 option_handling_option=11028_D_מטפל באפשרות "$1" % Debug info that an option is found and will be handled option_help_press_enter=11029__*** לחץ על enter *** +% Message shown when help is shown page per page. When pressing the ENTER +% Key, the next page of help is shown. If you press q and then ENTER, the +% compiler exits. option_start_reading_configfile=11030_H_מתחיל בקריאת קובץ ההגדרות $1 % Starting of config file parsing. option_end_reading_configfile=11031_H_סיום קריאת קובץ ההגדרות $1 % End of config file parsing. option_interpreting_option=11032_D_מפרש את האפשרות "$1" +% The compiler is interpreting an option option_interpreting_firstpass_option=11036_D_מפרש את המעבר הראשון על האפשרות "$1" +% The compiler is interpreting an option for the first time. option_interpreting_file_option=11033_D_מפרש את הגדרת הקובץ "$1" +% The compiler is interpreting an option which it read from the configuration file. option_read_config_file=11034_D_קורא את קובץ ההגדרות "$1" +% The compiler is starting to read the configuration file. option_found_file=11035_D_נמצא קובץ מקור בשם "$1" % Additional infos about options, displayed % when you have debug option turned on. option_code_page_not_available=11039_E_קוד דף לא ידוע +% An unknown codepage for the source files was requested. +% The compiler is compiled with support for several codepages built-in. +% The requested codepage is not in that list. You will need to recompile +% the compiler with support for the codepage you need. option_config_is_dir=11040_F_נמצאה ספרייה במקום קובץ ההגדרות $1 % Directories can not be used as configuration files. option_confict_asm_debug=11041_W_סוג הפלט של המאסף שנבחר "$1" אינו יכול ליצור מידע עבור ניפוי שגיאות. מבטל ניפוי שגיאות @@ -2399,6 +3363,131 @@ option_confict_asm_debug=11041_W_סוג הפלט של המאסף שנבחר "$1" %\end{description} # EndOfTeX +# +# Logo (option -l) +# +option_ppc386_deprecated=11042_W_Use of ppc386.cfg is deprecated, please use fpc.cfg instead +% Using ppc386.cfg is still supported for historical reasons, however, for a multiplatform +% system the naming makes no sense anymore. Please continue to use fpc.cfg instead. +option_else_without_if=11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DEF found +% An \var{\#ELSE} statement was found in the options file without a matching \var{\#IF(N)DEF} statement. +option_unsupported_target=11044_F_Option "$1" is not, or not yet, supported on the current target platform +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is incompatible with the currently selected target platform. +option_unsupported_target_for_feature=11045_F_The feature "$1" is not, or not yet, supported on the selected target platform +% Not all features are supported or implemented for all target platforms. This message informs you that a chosen +% feature is incompatible with the currently selected target platform. +option_dwarf_smart_linking=11046_N_DWARF debug information cannot be used with smart linking on this target, switching to static linking +% Smart linking is currently incompatible with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_ignored_target=11047_W_Option "$1" is ignored for the current target platform. +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is ignored for the currently selected target platform. +option_debug_external_unsupported=11048_W_Disabling external debug information because it is unsupported for the selected target/debug format combination. +% Not all debug formats can be stored in an external file on all platforms. In particular, on +% Mac OS X only DWARF debug information can be stored externally. +option_dwarf_smartlink_creation=11049_N_DWARF debug information cannot be used with smart linking with external assembler, disabling static library creation. +% Smart linking is currently incompatble with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_invalid_macosx_deployment_target=11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variable: $1 +option_invalid_iphoneos_deployment_target=11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment variable: $1 +% On Mac OS X, the MACOSX\_DEPLOYMENT\_TARGET/IPHONEOS\_DEPLOYMENT\_TARGET environment variable can be +% used to set the default target OS version. In case of Mac OS X, it has to be of the format +% XY.Z or XY.Z.AB with X, Y,Z , A and B all digits from 0-9. +% In case of iOS, it has to be X.Z.A, where X, Z and A can all be either 1 or 2 +% digits from 0-9. +option_illegal_fpu_eabihf=11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when using the EABIHF ABI target +% The EABIHF (VFP hardfloat) ABI target can only be used with VFP FPUs. +option_w_unsupported_debug_format=11053_W_The selected debug format is not supported on the current target, not changing the current setting +% Not all targets support all debug formats (in particular, Stabs is not supported on 64 bit targets). +option_missing_arg=11054_E_argument to "$1" is missing +% Displayed when parameter must be followed by an argument. +option_malformed_para=11055_E_malformed parameter: $1 +% Given argument is not valid for parameter. +option_smart_link_requires_external_linker=11056_W_Smart linking requires external linker +option_com_files_require_tiny_model=11057_E_Creating .COM files is not supported in the current memory model. Only the tiny memory model supports making .COM files. + + +%\end{description} +# EndOfTeX + +# +# Whole program optimization +# +# 12019 is the last used one +# +# BeginOfTeX +% +% \section{Whole program optimization messages} +% This section lists errors that occur when the compiler is performing +% whole program optimization. +% \begin{description} +wpo_cant_find_file=12000_F_Cannot open whole program optimization feedback file "$1" +% The compiler cannot open the specified feedback file with whole program optimization information. +wpo_begin_processing=12001_D_Processing whole program optimization information in wpo feedback file "$1" +% The compiler starts processing whole program optimization information found in the named file. +wpo_end_processing=12002_D_Finished processing the whole program optimization information in wpo feedback file "$1" +% The compiler has finished processing the whole program optimization information found in the named file. +wpo_expected_section=12003_E_Expected section header, but got "$2" at line $1 of wpo feedback file +% The compiler expected a section header in the whole program optimization file (starting with \%), +% but did not find it. +wpo_no_section_handler=12004_W_No handler registered for whole program optimization section "$2" at line $1 of wpo feedback file, ignoring +% The compiler has no handler to deal with the mentioned whole program optimization information +% section, and will therefore ignore it and skip to the next section. +wpo_found_section=12005_D_Found whole program optimization section "$1" with information about "$2" +% The compiler encountered a section with whole program optimization information, and according +% to its handler this section contains information usable for the mentioned purpose. +wpo_no_input_specified=12006_F_The selected whole program optimizations require a previously generated feedback file (use -Fw to specify) +% The compiler needs information gathered during a previous compilation run to perform the selected +% whole program optimizations. You can specify the location of the feedback file containing this +% information using the -Fw switch. +wpo_not_enough_info=12007_E_No collected information necessary to perform "$1" whole program optimization found +% While you pointed the compiler to a file containing whole program optimization feedback, it +% did not contain the information necessary to perform the selected optimizations. You most likely +% have to recompile the program using the appropriate -OWxxx switch. +wpo_no_output_specified=12008_F_Specify a whole program optimization feedback file to store the generated info in (using -FW) +% You have to specify the feedback file in which the compiler has to store the whole program optimization +% feedback that is generated during the compilation run. This can be done using the -FW switch. +wpo_output_without_info_gen=12009_E_Not generating any whole program optimization information, yet a feedback file was specified (using -FW) +% The compiler was instructed to store whole program optimization feedback into a file specified using -FW, +% but not to actually generated any whole program optimization feedback. The classes of to be +% generated information can be specified using -OWxxx. +wpo_input_without_info_use=12010_E_Not performing any whole program optimizations, yet an input feedback file was specified (using -Fw) +% The compiler was not instructed to perform any whole program optimizations (no -Owxxx parameters), +% but nevertheless an input file with such feedback was specified (using -Fwyyy). Since this can +% indicate that you forgot to specify an -Owxxx parameter, the compiler generates an error in this case. +wpo_skipping_unnecessary_section=12011_D_Skipping whole program optimization section "$1", because not needed by the requested optimizations +% The whole program optimization feedback file contains a section with information that is not +% required by the selected whole program optimizations. +wpo_duplicate_wpotype=12012_W_Overriding previously read information for "$1" from feedback input file using information in section "$2" +% The feedback file contains multiple sections that provide the same class of information (e.g., +% information about which virtual methods can be devirtualized). In this case, the information in last encountered +% section is used. Turn on debugging output (-vd) to see which class of information is provided by each section. +wpo_cannot_extract_live_symbol_info_strip=12013_E_Cannot extract symbol liveness information from program when stripping symbols, use -Xs- +% Certain symbol liveness collectors extract the symbol information from the linked program. If the symbol information +% is stripped (option -Xs), this is not possible. +wpo_cannot_extract_live_symbol_info_no_link=12014_E_Cannot extract symbol liveness information from program when when not linking +% Certain symbol liveness collectors extract the symbol information from the linked program. If the program is not +% linked by the compiler, this is not possible. +wpo_cannot_find_symbol_progs=12015_F_Cannot find "$1" or "$2" to extract symbol liveness information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% This helper program is normally 'nm', which is part of the GNU binutils. +wpo_error_reading_symbol_file=12016_E_Error during reading symbol liveness information produced by "$1" +% An error occurred during the reading of the symbol liveness file that was generated using the 'nm' or 'objdump' program. The reason +% can be that it was shorter than expected, or that its format was not understood. +wpo_error_executing_symbol_prog=12017_F_Error executing "$1" (exitcode: $2) to extract symbol information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% The helper program produced the reported error code when it was run on the linked program. +wpo_symbol_live_info_needs_smart_linking=12018_E_Collection of symbol liveness information can only help when using smart linking, use -CX -XX +% Whether or not a symbol is live is determined by looking whether it exists in the final linked program. +% Without smart linking/dead code stripping, all symbols are always included, regardless of whether they are +% actually used or not. So in that case all symbols will be seen as live, which makes this optimization ineffective. +wpo_cant_create_feedback_file=12019_E_Cannot create specified whole program optimisation feedback file "$1" +% The compiler is unable to create the file specified using the -FW parameter to store the whole program optimisation information. +%\end{description} +# EndOfTeX + + # # Logo (option -l) # @@ -2702,3 +3791,62 @@ P*2WT_ציין אפליקציה מסוג כלי MPW (Classic Mac OS) # # The End... +%%% parser_e_only_class_methods_via_class_ref=03053_E_רק מתודות מחלקה יכולות להיות מוגדרות בהתייחסות מחלקה +% This error occurs in a situation like the following: +% \begin{verbatim} +% Type : +% Tclass = Class of Tobject; +% +% Var C : TClass; +% +% begin +% ... +% C.free +% \end{verbatim} +% \var{Free} is not a class method and hence cannot be called with a class +% reference. +%%% parser_e_only_class_methods=03054_E_רק מתודת מחלקה יכולה לגשת למתודת מחלקה +% This is related to the previous error. You cannot call a method of an object +% from a inside a class method. The following code would produce this error: +% \begin{verbatim} +% class procedure tobject.x; +% +% begin +% free +% \end{verbatim} +% Because free is a normal method of a class it cannot be called from a class +% method. +%%% parser_e_absolute_only_one_var=03095_E_absolute ניתן לשימוש רק עם משתנה אחת +% You cannot specify more than one variable before the \var{absolute} directive. +% Thus, the following construct will provide this error: +% \begin{verbatim} +% Var Z : Longint; +% X,Y : Longint absolute Z; +% \end{verbatim} +% \item [ absolute can only be associated a var or const ] +% The address of a \var{absolute} directive can only point to a variable or a +% typed constant. Therefore, the following code will produce this error: +% \begin{verbatim} +% Procedure X; +% +% var p : longint absolute x; +% \end{verbatim} +% +%%% parser_e_type_and_var_only_in_generics=03224_E_ניתן להשתמש ב VAR ו TYPE רק עם generics +% The usage of VAR and TYPE to declare new types inside an object is allowed only inside +% generics. +%%% type_w_mixed_signed_unsigned=04035_W_עירבוב ביטויי סימנים וlongwords מספקים תוצאה של 64bit +% If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), +% or if you have overflow and/or range checking turned on and use an arithmetic +% expression (+, -, *, div, mod) in which both signed numbers and longwords appear, +% then everything has to be evaluated in 64bit which is slower than normal +% 32bit arithmetic. You can avoid this by typecasting one operand so it +% matches the result type of the other one. +%%% type_w_signed_unsigned_always_false=04044_W_ההשוואה תמיד תחזיר ערך של false בגלל טווח הערכים +% There is a comparison between an unsigned value and a signed constant which is +% less than zero. Because of type promotion, the statement will always evaluate to +% false. Exlicitly typecast the constant to the correct range to avoid this problem. +%%% type_w_signed_unsigned_always_true=04045_W_ההשוואה תמיד תחזיר ערך של true בגלל טווח הערכים +% There is a comparison between an unsigned value and a signed constant which is +% less than zero. Because of type promotion, the statement will always evaluate to +% true. Exlicitly typecast the constant to the correct range to avoid this problem. diff --git a/compiler/msg/errorid.msg b/compiler/msg/errorid.msg index b09623bc32..864867ec18 100644 --- a/compiler/msg/errorid.msg +++ b/compiler/msg/errorid.msg @@ -1,3 +1,5 @@ +%%% Reordering of errorid.msg respective to errore.msg +%%% Contains all comments from errorid.msg # $Id: errorid.msg,v 1.124 2007/09/20 02:52:50 zaenal Exp $ # This file is part of the Free Pascal Compiler # Copyright (c) 1999-2008 by the Free Pascal Development team @@ -114,7 +116,9 @@ general_e_path_does_not_exist=01017_E_Path "$1" tidak ada general_f_compilation_aborted=01018_F_Kompilasi dibatalkan % Kompilasi sudah dibatalkan. general_text_bytes_code=01019_byte kode +% The size of the generated executable code, in bytes. general_text_bytes_data=01020_byte data +% The size of the generated program data, in bytes. general_i_number_of_warnings=01021_I_$1 peringatan diterbitkan % Jumlah peringatan yang diterbitkan selama kompilasi. general_i_number_of_hints=01022_I_$1 petunjuk diterbitkan @@ -133,6 +137,22 @@ general_i_number_of_notes=01023_I_$1 catatan diterbitkan % kata-kata terpakai, string, dll. Ia juga memelihara direktif dan penanganan % kompilasi kondisional. % \begin{description} +general_f_ioerror=01024_F_I/O error: $1 +% During compilation an I/O error happened which allows no further compilation. +general_f_oserror=01025_F_Operating system error: $1 +% During compilation an operating system error happened which allows no further compilation. +% \end{description} +# +# Scanner +# +# 02098 is the last used one +# +% \section{Scanner messages.} +% This section lists the messages that the scanner emits. The scanner takes +% care of the lexical structure of the pascal file, i.e. it tries to find +% reserved words, strings, etc. It also takes care of directives and +% conditional compilation handling. +% \begin{description} scan_f_end_of_file=02000_F_Akhir file tidak diharapkan % Ini biasanya terjadi dalam salah satu kasus berikut : % \begin{itemize} @@ -365,6 +385,57 @@ scan_e_illegal_minfpconstprec=02085_E_Konstan presisi pecahan minimal "$1" tidak % atas bahasa anda, misalnya ia menentukan apakah konstruksi pascal anda % sudah benar atau tidak. % \begin{description} +scan_w_multiple_main_name_overrides=02086_W_Overriding name of "main" procedure multiple times, was previously set to "$1" +% The name for the main entry procedure is specified more than once. Only the last +% name will be used. +scanner_w_illegal_warn_identifier=02087_W_Illegal identifier "$1" for $WARN directive +% Identifier is not known by a \var{\{\$WARN\}} compiler directive. +scanner_e_illegal_alignment_directive=02088_E_Illegal alignment directive +% The alignment directive is not valid. Either the alignment type is not known or the alignment +% value is not a power of two. +scanner_f_illegal_utf8_bom=02089_F_It is not possible to include a file that starts with an UTF-8 BOM in a module that uses a different code page +% All source code that is part of a single compilation entity (program, library, unit) must be encoded +% in the same code page +scanner_w_directive_ignored_on_target=02090_W_Directive "$1" is ignored for the current target platform +% Some directives are ignored for certain targets, such as changing the +% packrecords and packenum settings on managed platforms. +scan_w_unavailable_system_codepage=02091_W_Current system codepage "$1" is not available for the compiler. Switching default codepage back to "$2". +% The current system codepage is not known by the compiler. +% The compiler is compiled with support for several codepages built-in. +% The codepage of the operation system is not in that list. You will need to recompile +% the compiler with support for this codepage. +scan_w_setpeoptflags_not_support=02092_W_SETPEOPTFLAGS is not supported by the target OS +% The \var{\{\$SETPEOPTFLAGS\}} directive is not supported by the target OS. +scan_e_illegal_peflag=02093_E_Illegal argument for SETPEFLAGS +% The given argument for SETPEFLAGS is neither a correct named value nor an +% ordinal value +scan_e_illegal_peoptflag=02094_E_Illegal argument for SETPEOPTFLAGS +% The given argument for SETPEOPTFLAGS is neither a correct named value nor an +% ordinal value +scan_e_unsupported_switch=02095_E_Directive $1 is not supported on this target +% Not all compiler directives are supported on all targets. +scan_w_invalid_stacksize=02096_W_The specified stack size is not within the valid range for the platform. Setting the stack size ignored. +% The valid range for the stack size is 1024 - 67107839 on 32-bit and 64-bit +% platforms and 1024 - 65520 on 16-bit platforms. Additionally, for Turbo Pascal 7 +% compatibility reasons, specifying a stack size of 65521 on 16-bit platforms +% actually sets the stack size to 65520. +scan_w_heapmax_lessthan_heapmin=02097_W_The specified HeapMax value is smaller than the HeapMin value. Setting HeapMax ignored. +% The HeapMax value (if specified) must be greater than or equal to the HeapMin +% value. Otherwise, the HeapMax value is ignored. +scan_e_illegal_hugepointernormalization=02098_E_Illegal argument for HUGEPOINTERNORMALIZATION +% The only allowed values for HUGEPOINTERNORMALIZATION are BORLANDC, MICROSOFTC +% and WATCOMC. +% \end{description} +# +# Parser +# +# 03339 is the last used one +# +% \section{Parser messages} +% This section lists all parser messages. The parser takes care of the +% semantics of you language, i.e. it determines if your Pascal constructs +% are correct. +% \begin{description} parser_e_syntax_error=03000_E_Pengurai - Sintaks Salah % Kesalahan terhadap bahasa Turbo Pascal ditemukan. Ini terjadi biasanya % saat karakter tidak benar ditemukan dalam file sumber. @@ -382,6 +453,7 @@ parser_e_export_ordinal_double=03009_E_Duplikasi indeks fungsi yang diekspor $1 parser_e_export_invalid_index=03010_E_Indeks untuk fungsi yang diekspor tidak benar % Indeks fungsi DLL harus dalam jangkauan \var{1..\$FFFF} parser_w_parser_reloc_no_debug=03011_W_DLL yang bisa direlokasi atau info debug executable $1 tidak bekerja, dimatikan. +% It is currently not possible to include debug information in a relocatable DLL. parser_w_parser_win32_debug_needs_WN=03012_W_Untuk membolehkan men-debug pada kode win32 anda perlu mematikan relokasi dengan opsi -WN % Info stab salah untuk DLL atau EXE yang bisa direlokasi, gunakan -WN % jika anda ingin men-debug win32 executable. @@ -505,8 +577,8 @@ parser_e_fail_only_in_constructor=03051_E_FAIL hanya dapat dipakai dalam konstru parser_e_no_paras_for_destructor=03052_E_Destruktor tidak bisa mempunyai parameter % Anda mendeklarasikan sebuah destruktor dengan daftar parameter. Metode destruktor % tidak bisa memiliki parameter. -parser_e_only_class_methods_via_class_ref=03053_E_Hanya metode kelas dapat dirujuk dengan referensi kelas -% Kesalahan ini terjadi dalam situasi seperti berikut: +parser_e_only_class_members_via_class_ref=03053_E_Only class methods, class properties and class variables can be referred with class references +% This error occurs in a situation like the following: % \begin{verbatim} % Type : % Tclass = Class of Tobject; @@ -517,19 +589,19 @@ parser_e_only_class_methods_via_class_ref=03053_E_Hanya metode kelas dapat diruj % ... % C.free % \end{verbatim} -% \var{Free} bukan metode kelas dan tidak bisa dipanggil dengan referensi -% kelas. -parser_e_only_class_methods=03054_E_Hanya metode kelas bisa diakses dalam metode kelas -% Ini terkait dengan kesalahan sebelumnya. Anda tidak bisa memanggil metode obyek dari -% dalam metode kelas. Kode berikut akan menghasilkan kesalahan ini: +% \var{Free} is not a class method and hence cannot be called with a class +% reference. +parser_e_only_class_members=03054_E_Only class methods, class properties and class variables can be accessed in class methods +% This is related to the previous error. You cannot call a method of an object +% from inside a class method. The following code would produce this error: % \begin{verbatim} % class procedure tobject.x; % % begin % free % \end{verbatim} -% Karena free adalah metode normal sebuah kelas, ia tidak bisa dipanggil dari -% metode kelas. +% Because free is a normal method of a class it cannot be called from a class +% method. parser_e_case_mismatch=03055_E_Tipe konstan dan CASE tidak sama % Salah satu label tidak memiliki tipe yang sama seperti variabel case. parser_e_illegal_symbol_exported=03056_E_Simbol tidak bisa diekspor dari sebuah librari @@ -657,22 +729,14 @@ parser_e_mix_of_classes_and_objects=03093_E_Campuran dari jenis obyek berbeda (c % sebuah kelas tidak memiliki obyek sebagai leluhurnya dan sebaliknya. parser_w_unknown_proc_directive_ignored=03094_W_Direktif procedure tidak dikenal harus diabaikan: "$1" % Direktif procedure yang anda tetapkan tidak dikenal. -parser_e_absolute_only_one_var=03095_E_absolute hanya bisa dikaitkan ke satu variabel -% Anda tidak bisa menetapkan lebih dari satu variabel sebelum direktif \var{absolute}. -% Selanjutnya, konstruksi berikut akan menghasilkan kesalahan ini: +parser_e_directive_only_one_var=03095_E_$1 can be associated with only one variable +% You cannot specify more than one variable before the \var{absolute}, \var{export}, \var{external}, +% \var{weakexternal}, \var{public} and \var{cvar} directives. +% As a result, for example the following construct will provide this error: % \begin{verbatim} % Var Z : Longint; % X,Y : Longint absolute Z; % \end{verbatim} -% \item [ absolute hanya bisa dikaitkan ke sebuah var atau const ] -% Alamat dari direktif \var{absolute} hanya dapat mengarah ke variabel atau -% tipe konstan. Oleh karena itu, kode berikut akan menghasilkan kesalahan ini: -% \begin{verbatim} -% Procedure X; -% -% var p : longint absolute x; -% \end{verbatim} -% parser_e_absolute_only_to_var_or_const=03096_E_absolute hanya bisa dikaitkan dengan var atau const % Alamat direktif \var{absolute} hanya bisa mengarah ke variabel atau konstan. % Oleh karena itu, kode berikut akan menghasilkan kesalahan ini: @@ -1086,6 +1150,7 @@ parser_w_overridden_methods_not_same_ret=03218_W_Metode yang diganti harus tipe % fungsi, tapi kode hasil bisa rusak tergantung pada tipe yang dipakai dan % cara metode dipanggil. parser_e_dispid_must_be_ord_const=03219_E_Dispatch ID harus konstan ordinal +% The \var{dispid} keyword must be followed by an ordinal constant (the dispid index). parser_e_array_range_out_of_bounds=03220_E_Jangkauan array terlalu besar % Meskipun ukuran tergantung elemennya, array tidak bisa memiliki lebih dari % high(ptrint) elemen. Sebagai tambahan, tipe jangkauan harus sub jangkauan @@ -1103,9 +1168,9 @@ parser_e_packed_element_no_loop=03223_E_Bit elemen packed array dan field record % Jika anda mendeklarasikan array atau record sebagai \var{packed} dalam mode Mac Pascal (atau sebagai \var{packed} dalam setiap mode \var{\{\$bitpacking on\}}), % ia akan dipadatkan di tingkat bit. Untuk alasan performansi, ia tidak bisa % dipakai sebagai variabel loop. -parser_e_type_and_var_only_in_generics=03224_E_VAR dan TYPE hanya dibolehkan dalam generik -% Penggunaan VAR dan TYPE untuk mendeklarasikan tipe baru di dalam sebuah obyek -% hanya dibolehkan di dalam generik. +parser_e_type_var_const_only_in_records_and_classes=03224_E_VAR, TYPE and CONST are allowed only in records, objects and classes +% The usage of VAR, TYPE and CONST to declare new types inside an object is allowed only inside +% records, objects and classes. parser_e_cant_create_generics_of_this_type=03225_E_Tipe ini tidak bisa generik % Hanya Class, Object, Interface dan Record dibolehkan untuk dipakai sebagai generik parser_w_no_lineinfo_use_switch=03226_W_Jangan ambil unit LINEINFO secara manual, sebaliknya gunakan saklar kompilator -gl @@ -1125,19 +1190,6 @@ parser_e_type_object_constants=03230_E_Konstan obyek yang berisi VMT tidak dibol parser_e_label_outside_proc=03231_E_Mengambil alamat label yang didefinisikan di luar lingkup saat ini tidak dibolehkan % Tidak diperbolehkan untuk mengambil alamat label di luar prosedur % saat ini. -parser_f_no_anonymous_specializations=03232_F_Spesialisasi generik anonim tidak diperbolehkan -% Sesuatu seperti -% \begin{verbatim} -% var -% MyLinkedList: specialize TLinkedList; -% \end{verbatim} -% tidak dibolehkan. Deklarasikan tipe spesialisasi lebih dulu: -% \begin{verbatim} -% type -% TMyLinkedList = specialize TLinkedList; -% var -% MyLinkedList: TMyLinkedList -% \end{verbatim} parser_e_initialized_not_for_external=03233_E_Tidak bisa menginisialisasi variabel yang dideklarasikan sebagai external % Variabel yang dideklarasikan sebagai external tidak bisa diinisialisasi dengan nilai default. parser_e_illegal_function_result=03234_E_Tipe hasil fungsi tidak benar @@ -1160,6 +1212,367 @@ parser_e_no_generics_as_types=03236_E_Generik tanpa spesialisasi tidak bisa dipa % Seksi ini mendaftarkan semua kesalahan yang terjadi saat pemeriksaan tipe % dilakukan. % \begin{description} +parser_w_register_list_ignored=03237_W_Register list is ignored for pure assembler routines +% When using pure assembler routines, the list with modified registers is ignored. +parser_e_implements_must_be_class_or_interface=03238_E_Implements property must have class or interface type +% A property which implements an interface must be of type class or interface. +parser_e_implements_must_have_correct_type=03239_E_Implements-property must implement interface of correct type, found "$1" expected "$2" +% A property which implements an interface actually implements a different interface. +parser_e_implements_must_read_specifier=03240_E_Implements-property must have read specifier +% A property which implements an interface must have at least a read specifier. +parser_e_implements_must_not_have_write_specifier=03241_E_Implements-property must not have write-specifier +% A property which implements an interface may not have a write specifier. +parser_e_implements_must_not_have_stored_specifier=03242_E_Implements-property must not have stored-specifier +% A property which implements an interface may not have a stored specifier. +parser_e_implements_uses_non_implemented_interface=03243_E_Implements-property used on unimplemented interface: "$1" +% The interface which is implemented by a property is not an interface implemented by the class. +parser_e_unsupported_real=03244_E_Floating point not supported for this target +% The compiler parsed a floating point expression, but it is not supported. +parser_e_class_doesnt_implement_interface=03245_E_Class "$1" does not implement interface "$2" +% The delegated interface is not implemented by the class given in the implements clause. +parser_e_class_implements_must_be_interface=03246_E_Type used by implements must be an interface +% The \var{implements} keyword must be followed by an interface type. +parser_e_cant_export_var_different_name=03247_E_Variables cannot be exported with a different name on this target, add the name to the declaration using the "export" directive (variable name: $1, declared export name: $2) +% On most targets it is not possible to change the name under which a variable +% is exported inside the \var{exports} statement of a library. +% In that case, you have to specify the export name at the point where the +% variable is declared, using the \var{export} and \var{alias} directives. +parser_e_weak_external_not_supported=03248_E_Weak external symbols are not supported for the current target +% A "weak external" symbol is a symbol which may or may not exist at (either static +% or dynamic) link time. This concept may not be available (or implemented yet) +% on the current cpu/OS target. +parser_e_forward_mismatch=03249_E_Forward type definition does not match +% Classes and interfaces being defined forward must have the same type +% when being implemented. A forward interface cannot be changed into a class. +parser_n_ignore_lower_visibility=03250_N_Virtual method "$1" has a lower visibility ($2) than parent class $3 ($4) +% The virtual method overrides an method that is declared with a higher visibility. This might give +% unexpected results. E.g., in case the new visibility is private then a call to ``inherited'' in a +% new child class will call the higher-visible method in a parent class and ignores the private method. +parser_e_field_not_allowed_here=03251_E_Fields cannot appear after a method or property definition, start a new visibility section first +% Once a method or property has been defined in a class or object, you cannot define any fields afterwards +% without starting a new visibility section (such as \var{public}, \var{private}, etc.). The reason is +% that otherwise the source code can appear ambiguous to the compiler, since it is possible to use modifiers +% such as \var{default} and \var{register} also as field names. +parser_e_no_local_para_def=03252_E_Parameters or result types cannot contain local type definitions. Use a separate type definition in a type block. +% In Pascal, types are not considered to be identical simply because they are semantically equivalent. +% Two variables or parameters are only considered to be of the same type if they refer to the +% same type definition. +% As a result, it is not allowed to define new types inside parameter lists, because then it is impossible to +% refer to the same type definition in the procedure headers of the interface and implementation of a unit +% (both procedure headers would define a separate type). Keep in mind that expressions such as +% ``file of byte'' or ``string[50]'' also define a new type. +parser_e_abstract_and_sealed_conflict=03253_E_ABSTRACT and SEALED conflict +% ABSTRACT and SEALED cannot be used together in one declaration +parser_e_sealed_descendant=03254_E_Cannot create a descendant of the sealed class "$1" +% Sealed means that class cannot be derived by another class. +parser_e_sealed_class_cannot_have_abstract_methods=03255_E_SEALED class cannot have an ABSTRACT method +% Sealed means that class cannot be derived. Therefore no one class is able to override an abstract method in a sealed class. +parser_e_only_virtual_methods_final=03256_E_Only virtual methods can be final +% You are declaring a method as final, when it is not declared to be +% virtual. +parser_e_final_can_no_be_overridden=03257_E_Final method cannot be overridden: "$1" +% You are trying to \var{override} a virtual method of a parent class that does +% not exist. +parser_e_multiple_messages=03258_E_Only one message can be used per method. +% It is not possible to associate multiple messages with a single method. +parser_e_invalid_enumerator_identifier=03259_E_Invalid enumerator identifier: "$1" +% Only "MoveNext" and "Current" enumerator identifiers are supported. +parser_e_enumerator_identifier_required=03260_E_Enumerator identifier required +% "MoveNext" or "Current" identifier must follow the \var{enumerator} modifier. +parser_e_enumerator_movenext_is_not_valid=03261_E_Enumerator MoveNext pattern method is not valid. Method must be a function with the Boolean return type and no required arguments. +% "MoveNext" enumerator pattern method must be a function with Boolean return type and no required arguments +parser_e_enumerator_current_is_not_valid=03262_E_Enumerator Current pattern property is not valid. Property must have a getter. +% "Current" enumerator pattern property must have a getter +parser_e_only_one_enumerator_movenext=03263_E_Only one enumerator MoveNext method is allowed per class/object +% Class or Object can have only one enumerator MoveNext declaration. +parser_e_only_one_enumerator_current=03264_E_Only one enumerator Current property is allowed per class/object +% Class or Object can have only one enumerator Current declaration. +parser_e_for_in_loop_cannot_be_used_for_the_type=03265_E_For in loop cannot be used for the type "$1" +% For in loop can be used not for all types. For example it cannot be used for the enumerations with jumps. +parser_e_objc_requires_msgstr=03266_E_Objective-C messages require their Objective-C selector name to be specified using the "message" directive. +% Objective-C messages require their Objective-C name (selector name) to be specified using the \var{message `someName:'} procedure directive. +% While bindings to other languages automatically generate such names based on the identifier you use (by replacing +% all underscores with colons), this is unsafe since nothing prevents an Objective-C method name to contain actual +% colons. +parser_e_objc_no_constructor_destructor=03267_E_Objective-C does not have formal constructors nor destructors. Use the alloc, initXXX and dealloc messages. +% The Objective-C language does not have any constructors or destructors. While there are some messages with a similar +% purpose (such as \var{init} and \var{dealloc}), these cannot be identified using automatic parsers and do not +% guarantee anything like Pascal constructors/destructors (e.g., you have to take care of only calling ``designated'' +% inherited ``constructors''). For these reasons, we have opted to follow the standard Objective-C patterns for +% instance creation/destruction. +parser_e_message_string_too_long=03268_E_Message name is too long (max. 255 characters) +% Due to compiler implementation reasons, message names are currently limited to 255 characters. +parser_e_objc_message_name_too_long=03269_E_Objective-C message symbol name for "$1" is too long +% Due to compiler implementation reasons, mangled message names (i.e., the symbol names used in the assembler +% code) are currently limited to 255 characters. +parser_h_no_objc_parent=03270_H_Defining a new Objective-C root class. To derive from another root class (e.g., NSObject), specify it as the parent class. +% If no parent class is specified for an Object Pascal class, then it automatically derives from TObject. +% Objective-C classes however do not automatically derive from NSObject, because one can have multiple +% root classes in Objective-C. For example, in the Cocoa framework both NSObject and NSProxy are root classes. +% Therefore, you have to explicitly define a parent class (such as NSObject) if you want to derive your +% Objective-C class from it. +parser_e_no_objc_published=03271_E_Objective-C classes cannot have published sections. +% In Object Pascal, ``published'' determines whether or not RTTI is generated. Since the Objective-C runtime always needs +% RTTI for everything, this specified does not make sense for Objective-C classes. +parser_f_need_objc=03272_F_This module requires an Objective-C mode switch to be compiled +% This error indicates the use of Objective-C language features without an Objective-C mode switch +% active. Enable one via the -M command line switch, or the {\$modeswitch x} directive. +parser_e_must_use_override=03273_E_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1) +parser_h_should_use_override=03274_H_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1). +% It is not possible to \var{reintroduce} methods in Objective-C or Java like in Object Pascal. Methods with the same +% name always map to the same virtual method entry. In order to make this clear in the source code, +% the compiler always requires the \var{override} directive to be specified when implementing overriding +% Objective-C or Java methods in Pascal. If the implementation is external, this rule is relaxed because Objective-C and Java +% do not have any \var{override}-style keyword (since it's the default and only behaviour in these languages), +% which makes it hard for automated header conversion tools to include it everywhere. +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory in case of Objective-C. +parser_e_objc_message_name_changed=03275_E_Message name "$1" in inherited class is different from message name "$2" in current class. +% An overriding Objective-C method cannot have a different message name than an inherited method. The reason +% is that these message names uniquely define the message to the Objective-C runtime, which means that +% giving them a different message name breaks the ``override'' semantics. +parser_e_unique_unsupported=03276_E_It is not yet possible to make unique copies of Objective-C or Java types +% Duplicating an Objective-C or Java type using \var{type x = type y;} is not yet supported. You may be able to +% obtain the desired effect using \var{type x = objcclass(y) end;} resp.{} \var{type x = class(y) end;} instead. +parser_e_no_category_as_types=03277_E_Objective-C categories and Object Pascal class helpers cannot be used as types +% It is not possible to declare a variable as an instance of an Objective-C +% category or an Object Pascal class helper. A category/class helper adds +% methods to the scope of an existing class, but does not define a type by +% itself. An exception of this rule is when inheriting an Object Pascal class +% helper from another class helper. +parser_e_no_category_override=03278_E_Categories do not override, but replace methods. Use "reintroduce" instead. +parser_e_must_use_reintroduce_objc=03279_E_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +parser_h_should_use_reintroduce_objc=03280_H_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +% A category replaces an existing method in an Objective-C class, rather than that it overrides it. +% Calling an inherited method from an category method will call that method in +% the extended class' parent, not in the extended class itself. The +% replaced method in the original class is basically lost, and can no longer be +% called or referred to. This behaviour corresponds somewhat more closely to +% \var{reintroduce} than to \var{override} (although in case of \var{reintroduce} +% in Object Pascal, hidden methods are still reachable via inherited). +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory. +parser_e_implements_getter_not_default_cc=03281_E_Getter for implements interface must use the target's default calling convention. +% Interface getters are called via a helper in the run time library, and hence +% have to use the default calling convention for the target (\var{register} on +% i386 and x86\_64, \var{stdcall} on other architectures). +parser_e_no_refcounted_typed_file=03282_E_Typed files cannot contain reference-counted types. +% The data in a typed file cannot be of a reference counted type (such as +% \var{ansistring} or a record containing a field that is reference counted). +parser_e_operator_not_overloaded_2=03283_E_Operator is not overloaded: $2 "$1" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_operator_not_overloaded_3=03284_E_Operator is not overloaded: "$1" $2 "$3" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_more_array_elements_expected=03285_E_Expected another $1 array elements +% When declaring a typed constant array, you provided to few elements to initialize the array +parser_e_string_const_too_long=03286_E_String constant too long while ansistrings are disabled +% Only when a piece of code is compiled with ansistrings enabled (\var{\{\$H+\}}), string constants +% longer than 255 characters are allowed. +parser_e_invalid_univ_para=03287_E_Type cannot be used as univ parameter because its size is unknown at compile time: "$1" +% \var{univ} parameters are compatible with all values of the same size, but this +% cannot be checked in case a parameter's size is unknown at compile time. +parser_e_only_one_class_constructor_allowed=03288_E_Only one class constructor can be declared in class: "$1" +% You are trying to declare more than one class constructor but only one class constructor can be declared. +parser_e_only_one_class_destructor_allowed=03289_E_Only one class destructor can be declared in class: "$1" +% You are trying to declare more than one class destructor but only one class destructor can be declared. +parser_e_no_paras_for_class_constructor=03290_E_Class constructors cannot have parameters +% You are declaring a class constructor with a parameter list. Class constructor methods +% cannot have parameters. +parser_e_no_paras_for_class_destructor=03291_E_Class destructors cannot have parameters +% You are declaring a class destructor with a parameter list. Class destructor methods +% cannot have parameters. +parser_f_modeswitch_objc_required=03292_F_This construct requires the \{\$modeswitch objectivec1\} mode switch to be active +% Objective-Pascal constructs are not supported when \{\$modeswitch ObjectiveC1\} +% is not active. +parser_e_widestring_to_ansi_compile_time=03293_E_Unicodechar/string constants cannot be converted to ansi/shortstring at compile-time +% It is not possible to use unicodechar and unicodestring constants in +% constant expressions that have to be converted into an ansistring or shortstring +% at compile time, for example inside typed constants. The reason is that the +% compiler cannot know what the actual ansi encoding will be at run time. +parser_e_objc_enumerator_2_0=03294_E_For-in Objective-Pascal loops require \{\$modeswitch ObjectiveC2\} to be active +% Objective-C ``fast enumeration'' support was added in Objective-C 2.0, and +% hence the appropriate modeswitch has to be activated to expose this feature. +% Note that Objective-C 2.0 programs require Mac OS X 10.5 or later. +parser_e_objc_missing_enumeration_defs=03295_E_The compiler cannot find the NSFastEnumerationProtocol or NSFastEnumerationState type in the CocoaAll unit +% Objective-C for-in loops (fast enumeration) require that the compiler can +% find a unit called CocoaAll that contains definitions for the +% NSFastEnumerationProtocol and NSFastEnumerationState types. If you get this +% error, most likely the compiler is finding and loading an alternate CocoaAll +% unit. +parser_e_no_procvarnested_const=03296_E_Typed constants of the type 'procedure is nested' can only be initialized with NIL and global procedures/functions +% A nested procedural variable consists of two components: the address of the +% procedure/function to call (which is always known at compile time), and also +% a parent frame pointer (which is never known at compile time) in case the +% procedural variable contains a reference to a nested procedure/function. +% Therefore such typed constants can only be initialized with global +% functions/procedures since these do not require a parent frame pointer. +parser_f_no_generic_inside_generic=03297_F_Declaration of generic class inside another generic class is not allowed +% At the moment, scanner supports recording of only one token buffer at the time +% (guarded by internal error 200511173 in tscannerfile.startrecordtokens). +% Since generics are implemented by recording tokens, it is not possible to +% have declaration of generic class inside another generic class. +parser_e_forward_intf_declaration_must_be_resolved=03298_E_Forward declaration "$1" must be resolved before a class can conform to or implement it +% An Objective-C protocol or Java Interface must be fully defined before classes can conform to it. +% This error occurs in the following situation (example for Objective-C, but the same goes for Java interfaces): +% \begin{verbatim} +% Type MyProtocol = objcprotoocl; +% ChildClass = Class(NSObject,MyProtocol) +% ... +% end; +% \end{verbatim} +% where \var{MyProtocol} is declared but not defined. +parser_e_no_record_published=03299_E_Record types cannot have published sections +% Published sections can be used only inside classes. +parser_e_no_destructor_in_records=03300_E_Destructors are not allowed in records or helpers +% Destructor declarations are not allowed in records or helpers. +parser_e_class_methods_only_static_in_records=03301_E_Class methods must be static in records +% Class methods declarations are not allowed in records without static modifier. +% Records have no inheritance and therefore non static class methods have no sense for them. +parser_e_no_parameterless_constructor_in_records=03302_E_Parameterless constructors are not allowed in records or record/type helpers +% Constructor declarations with no arguments are not allowed in records or record/type helpers. +parser_e_at_least_one_argument_must_be_of_type=03303_E_Either the result or at least one parameter must be of type "$1" +% It is required that either the result of the routine or at least one of its parameters be of the specified type. +% For example class operators either take an instance of the structured type in which they are defined, or they return one. +parser_e_cant_use_type_parameters_here=03304_E_Type parameters may require initialization/finalization - cannot be used in variant records +% Type parameters may be specialized with types which (e.g. \var{ansistring}) need initialization/finalization +% code which is implicitly generated by the compiler. +parser_e_externals_no_section=03305_E_Variables being declared as external cannot be in a custom section +% A section directive is not valid for variables being declared as external. +parser_e_section_no_locals=03306_E_Non-static and non-global variables cannot have a section directive +% A variable placed in a custom section is always statically allocated so it must be either a static or global variable. +parser_e_not_allowed_in_helper=03307_E_"$1" is not allowed in helper types +% Some directives and specifiers like "virtual", "dynamic", "override" are not +% allowed inside helper types in mode ObjFPC (they are ignored in mode Delphi), +% because they have no meaning within helpers. Also "abstract" isn't allowed in +% either mode. +parser_e_no_class_constructor_in_helpers=03308_E_Class constructors are not allowed in helpers +% Class constructor declarations are not allowed in helpers. +parser_e_inherited_not_in_record=03309_E_The use of "inherited" is not allowed in a record +% As records don't support inheritance the use of "inherited" is prohibited for +% these as well as for record helpers (in mode "Delphi" only). +parser_e_no_types_in_local_anonymous_records=03310_E_Type declarations are not allowed in local or anonymous records +% Records with types must be defined globally. Types cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_duplicate_implements_clause=03311_E_Duplicate implements clause for interface "$1" +% A class may delegate an interface using the "implements" clause only to a single property. Delegating it multiple times +% is a error. +parser_e_mapping_no_implements=03312_E_Interface "$1" cannot be delegated by "$2", it already has method resolutions +% Method resolution clause maps a method of an interface to a method of the current class. Therefore the current class +% has to implement the interface directly. Delegation is not possible. +parser_e_implements_no_mapping=03313_E_Interface "$1" cannot have method resolutions, "$2" already delegates it +% Method resolution is only possible for interfaces that are implemented directly, not by delegation. +parser_e_invalid_codepage=03314_E_Invalid codepage +% When declaring a string with a given codepage, the range of valid codepages values is limited +% to 0 to 65535. +parser_e_final_only_const_var=03315_E_Only fields (var-sections) and constants can be final in object types +% A final (class) field must be assigned a single value in the (class) constructor, and cannot +% be overwritten afterwards. A final (typed) constant is read-only. +parser_e_final_only_external=03316_E_Final fields are currently only supported for external classes +% Support for final fields in non-external classes requires a full data flow +% analysis implementation in FPC, which it currently still lacks. +parser_e_no_typed_const=03317_E_Typed constants are not allowed here, only formal constants are +% Java interfaces define a namespace in which formal constant can be defined, +% but since they define no storage it is not possible to define typed constants +% in them (those are more or less the same as initialised class fields). +parser_e_java_no_inherited_constructor=03318_E_Constructors are not automatically inherited in the JVM; explicitly add a constructor that calls the inherited one if you need it +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% For compatibility with external Java code, FPC does the same. If you require access to the same +% constructors in a child class, define them in the child class and call the inherited one from +% there. +parser_d_internal_parser_string=03319_D_Parsing internally generated code: $1 +% The compiler sometimes internally constructs Pascal code that is subsequently +% injected into the program. These messages display such code, in order to help +% with debugging errors in them. +parser_e_feature_unsupported_for_vm=03320_E_This language feature is not supported on managed VM targets +% Certain language features are not supported on targets that are managed virtual machines. +parser_e_jvm_invalid_virtual_constructor_call=03321_E_Calling a virtual constructor for the current instance inside another constructor is not possible on the JVM target +% The JVM does not natively support virtual constructor. Unforunately, we are not aware of a way to +% emulate them in a way that makes it possible to support calling virtual constructors +% for the current instance inside another constructor. +parser_e_method_lower_visibility=03322_E_Overriding method "$1" cannot have a lower visibility ($2) than in parent class $3 ($4) +% The JVM does not allow lowering the visibility of an overriding method. +parser_e_nostackframe_without_assembler=03323_E_Procedure/Function declared with call option NOSTACKFRAME but without ASSEMBLER +% nostackframe call modifier is supposed to be used in conjunction with assembler. +parser_e_nostackframe_with_locals=03324_E_Procedure/Function declared with call option NOSTACKFRAME but local stack size is $1 +% nostackframe call modifier used without assembler modifier +% might still generate local stack needs. +parser_e_cannot_generate_property_getter_setter=03325_E_Cannot generate property getter/setter $1 because its name clashes with existing identifier $2 +% Automatically generated getters/setters cannot have the same name as existing +% identifiers, because this may change the behaviour of existing code. +parser_w_overriding_property_getter_setter=03326_W_Automatically generated property getter/setter $1 overrides the same-named getter/setter in class $2 +% Automatically generated property getters/setters on the JVM platform are virtual methods, because +% the JVM does not support non-virtual methods that can be changed in child classes. This means +% that if a child class changes an inherited property definition, the behaviour of that property +% can change compared to native targets since even if a variable is declared as the parent type, +% by calling the virtual method the getter from the child will be used. This is different from +% the behaviour on native targets or when not activating automatically generated setters/getters, +% because in that case only the declared type of a variable influences the property behaviour. +parser_w_case_difference_auto_property_getter_setter_prefix=03327_W_Case mismatch between declared property getter/setter $1 and automatically constructed name $2, not changing declared name +% If a property's specified getter/setter already corresponded to the naming convention specified +% by the automatic getter/setter generation setting except in terms of upper/lowercase, the +% compiler will print a warning because it cannot necessarily change that other declaration itself +% not can it add one using the correct case (it could conflict with the original declaration). +% Manually correct the case of the getter/setter to conform to the desired coding rules. +% \var{TChild} overrides +parser_e_no_consts_in_local_anonymous_records=03328_E_Constants declarations are not allowed in local or anonymous records +% Records with constants must be defined globally. Constants cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_methods_in_local_anonymous_records=03329_E_Method declarations are not allowed in local or anonymous records +% Records with methods must be defined globally. Methods cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_properties_in_local_anonymous_records=03330_E_Property declarations are not allowed in local or anonymous records +% Records with properties must be defined globally. Properties cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_class_in_local_anonymous_records=03331_E_Class member declarations are not allowed in local or anonymous records +% Records with class members must be defined globally. Class members cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_not_allowed_in_record=03332_E_Visibility section "$1" not allowed in records +% The visibility sections \var(protected) and \var(strict protected) are only +% useful together with inheritance. Since records do not support that they are +% forbidden. +parser_e_dir_not_allowed=03333_E_Directive "$1" not allowed here +% This directive is not allowed in the given context. E.g. "static" +% is not allowed for instance methods or class operators. +parser_e_no_assembler_in_generic=03334_E_Assembler blocks not allowed inside generics +% The use of assembler blocks/routines is not allowed inside generics. +parser_e_property_only_sgr=03335_E_Properties can be only static, global or inside structured types +% Properties cannot be declared local, only global, using the static +% directive or inside structured types. +parser_e_overloaded_have_same_mangled_name=03336_E_Overloaded routines have the same mangled name +% Some platforms, such as the JVM platform, encode the parameters in the routine name in +% a prescribed way, and this encoding may map different Pascal types to the same encoded +% (a.k.a.\ ``mangled'') name. This error can only be solved by removing or changing the +% conflicting definitions' parameter declarations or routine names. +parser_e_default_value_val_const=03337_E_Default values can only be specified for value, const and constref parameters +% A default parameter value allows you to not specify a value for this parameter +% when calling the routine, and the compiler will instead pass the specified +% default (constant) value. As a result, default values can only be specified +% for parameters that can accept constant values. +parser_w_ptr_type_ignored=03338_W_Pointer type "$1" ignored +% The specified pointer type modifier is ignored, because it is not supported on +% the current platform. This happens, for example, when a far pointer is +% declared on a non-x86 platform. +parser_e_global_generic_references_static=03339_E_Global Generic template references static symtable +% A generic declared in the interface section of a unit must not reference symbols that belong +% solely to the implementation section of that unit. +parser_u_already_compiled=03340_UL_Unit $1 has been already compiled meanwhile. +% This tells you that the recursive reading of the uses clauses triggered already +% a compilation of the current unit, so the current compilation can be aborted. +% +% +% +% \end{description} +% +# Type Checking +# +# 04123 is the last used one +# +% \section{Type checking errors} +% This section lists all errors that can occur when type checking is +% performed. +% \begin{description} type_e_mismatch=04000_E_Tipe tidak sama % Ini terjadi dalam banyak kasus: % \begin{itemize} @@ -1296,14 +1709,13 @@ type_e_interface_type_expected=04034_E_tipe interface diharapkan, tapi didapat " % Type % TMyStream = Class(TStream,Integer) % \end{verbatim} -type_w_mixed_signed_unsigned=04035_W_Mencampur ekspresi bertanda dan longword memberikan hasil 64bit -% Jika anda membagi (atau menghitung modulus dari) ekspresi bertanda dengan -% longword (atau sebaliknya), atau jika anda memiliki overflow dan/atau -% menghidupkan pemeriksaan jangkauan dan menggunakan ekspresi aritmatika -% (+, -, *, div, mod) dalam kedua angka bertanda dan longwords muncul, -% maka kesemuanya harus dievaluasi dalam 64bit yang lebih lambat daripada -% aritmatika 32bit normal. Anda bisa menghindari ini dengan typecasting satu -% operand agar ia sesuai tipe hasil atas yang lainnya. +type_h_mixed_signed_unsigned=04035_H_Mixing signed expressions and longwords gives a 64bit result +% If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), +% or if you have overflow and/or range checking turned on and use an arithmetic +% expression (+, -, *, div, mod) in which both signed numbers and longwords appear, +% then everything has to be evaluated in 64-bit arithmetic which is slower than normal +% 32-bit arithmetic. You can avoid this by typecasting one operand so it +% matches the result type of the other one. type_w_mixed_signed_unsigned2=04036_W_Mencampur ekspresi bertanda dan cardinal di sini dapat menyebabkan kesalahan pemeriksaan jangkauan % Jika anda menggunakan operator biner (and, or, xor) dan salah satu operand % adalah longword sementara yang lainnya ekspresi bertanda, maka jika @@ -1335,14 +1747,16 @@ type_e_type_is_not_completly_defined=04042_E_Tipe "$1" tidak sepenuhnya didefini type_w_string_too_long=04043_W_Literal string memiliki lebih banyak karakter daripada panjang short string % Ukuran string konstan, yang ditempatkan ke shortstring, lebih panjang daripada % ukuran maksimum shortstring -type_w_signed_unsigned_always_false=04044_W_Perbandingan selalu salah karena jangkauan nilai -% Ada perbandingan antara nilai unsigned dan konstan bertanda yang kurang dari -% nol. Karena promosi tipe, pernyataan akan selalu dievaluasi menjadi false. -% Typecast secara eksplisit konstan ke jangkauan yang benar guna menghindari masalah ini. -type_w_signed_unsigned_always_true=04045_W_Perbandingan selalu true karena jangkauan nilai -% Ada perbandingan antara nilai unsigned dan konstan bertanda yang kurang dari -% nol. Karena promosi tipe, pernyataan akan selalu dievaluasi menjadi true. -% Typecast secara eksplisit konstan ke jangkauan yang benar guna menghindari masalah ini. +type_w_comparison_always_false=04044_W_Comparison might be always false due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% false. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. +type_w_comparison_always_true=04045_W_Comparison might be always true due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% true. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. type_w_instance_with_abstract=04046_W_Membentuk sebuah kelas "$1" dengan metode abstrak % Turunan kelas dibuat yang berisi metode abstrak tidak diimplementasikan. Ini % dapat membawa kesalahan runtime 211 dalam kode jika rutin itu tidak pernah @@ -1445,6 +1859,170 @@ type_w_pointer_to_signed=04082_W_Mengkonversi pointer ke integer bertanda dapat % Seksi ini mendaftarkan semua pesan yang berkenaan dengan penanganan simbol. % Ini berarti semua hal yang harus dilakukan dengan prosedur dan nama variabel. % \begin{description} +type_e_interface_has_no_guid=04083_E_Interface type $1 has no valid GUID +% When applying the as-operator to an interface or class, the desired interface (i.e. the right operand of the +% as-operator) must have a valid GUID. +type_e_invalid_objc_selector_name=04084_E_Invalid selector name "$1" +% An Objective-C selector cannot be empty, must be a valid identifier or a single colon, +% and if it contains at least one colon it must also end in one. +type_e_expected_objc_method_but_got=04085_E_Expected Objective-C method, but got $1 +% A selector can only be created for Objective-C methods, not for any other kind +% of procedure/function/method. +type_e_expected_objc_method=04086_E_Expected Objective-C method or constant method name +% A selector can only be created for Objective-C methods, either by specifying +% the name using a string constant, or by using an Objective-C method identifier +% that is visible in the current scope. +type_e_no_type_info=04087_E_No type info available for this type +% Type information is not generated for some types, such as enumerations with gaps +% in their value range (this includes enumerations whose lower bound is different +% from zero). +type_e_ordinal_or_string_expr_expected=04088_E_Ordinal or string expression expected +% The expression must be an ordinal or string type. +type_e_string_expr_expected=04089_E_String expression expected +% The expression must be a string type. +type_w_zero_to_nil=04090_W_Converting 0 to NIL +% Use NIL rather than 0 when initialising a pointer. +type_e_protocol_type_expected=04091_E_Objective-C protocol type expected, but got "$1" +% The compiler expected a protocol type name, but found something else. +type_e_objc_type_unsupported=04092_E_The type "$1" is not supported for interaction with the Objective-C and the blocks runtime. +% Objective-C and Blocks make extensive use of run time type information (RTTI). This format +% is defined by the maintainers of the run time and can therefore not be adapted +% to all possible Object Pascal types. In particular, types that depend on +% reference counting by the compiler (such as ansistrings and certain kinds of +% interfaces) cannot be used as fields of Objective-C classes, cannot be +% directly passed to Objective-C methods or Blocks, and cannot be encoded using \var{objc\_encode}. +type_e_class_or_objcclass_type_expected=04093_E_Class or objcclass type expected, but got "$1" +% It is only possible to create class reference types of \var{class} and \var{objcclass} +type_e_objcclass_type_expected=04094_E_Objcclass type expected +% The compiler expected an \var{objcclass} type +type_w_procvar_univ_conflicting_para=04095_W_Coerced univ parameter type in procedural variable may cause crash or memory corruption: $1 to $2 +% \var{univ} parameters are implicitly compatible with all types of the same size, +% also in procedural variable definitions. That means that the following code is +% legal, because \var{single} and \var{longint} have the same size: +% \begin{verbatim} +% {$mode macpas} +% Type +% TIntProc = procedure (l: univ longint); +% +% procedure test(s: single); +% begin +% writeln(s); +% end; +% +% var +% p: TIntProc; +% begin +% p:=test; +% p(4); +% end. +% \end{verbatim} +% This code may however crash on platforms that pass integers in registers and +% floating point values on the stack, because then the stack will be unbalanced. +% Note that this warning will not flag all potentially dangerous situations. +% when \var{test} returns. +type_e_generics_cannot_reference_itself=04096_E_Type parameters of specializations of generics cannot reference the currently specialized type +% Recursive specializations of generics like \var{Type MyType = specialize MyGeneric;} are not possible. +type_e_type_parameters_are_not_allowed_here=04097_E_Type parameters are not allowed on non-generic class/record/object procedure or function +% Type parameters are only allowed for methods of generic classes, records or objects +type_e_generic_declaration_does_not_match=04098_E_Generic declaration of "$1" differs from previous declaration +% Generic declaration does not match the previous declaration +type_e_helper_type_expected=04099_E_Helper type expected +% The compiler expected a \var{class helper} type. +type_e_record_type_expected=04100_E_Record type expected +% The compiler expected a \var{record} type. +type_e_class_helper_must_extend_subclass=04101_E_Derived class helper must extend a subclass of "$1" or the class itself +% If a class helper inherits from another class helper the extended class must +% extend either the same class as the parent class helper or a subclass of it +type_e_record_helper_must_extend_same_record=04102_E_Derived record or type helper must extend "$1" +% If a record helper inherits from another record helper it must extend the same +% record that the parent record helper extended. +type_e_procedures_return_no_value=04103_E_Invalid assignment, procedures return no value +% This error occurs when one tries to assign the result of a procedure or destructor call. +% A procedure or destructor returns no value so this is not +% possible. +type_w_implicit_string_cast=04104_W_Implicit string type conversion from "$1" to "$2" +% An implicit type conversion from an ansi string type to an unicode string type is +% encountered. To avoid this warning perform an explicit type conversion. +type_w_implicit_string_cast_loss=04105_W_Implicit string type conversion with potential data loss from "$1" to "$2" +% An implicit type conversion from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. +type_w_explicit_string_cast=04106_-W_Explicit string typecast from "$1" to "$2" +% An explicit typecast from an ansi string type to an unicode string type is +% encountered. This warning is off by default. You can turn it on to see all suspicious string conversions. +type_w_explicit_string_cast_loss=04107_-W_Explicit string typecast with potential data loss from "$1" to "$2" +% An explicit typecast from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. This warning is off by default. You can turn it on to see all the places with lossy string +% conversions. +type_w_unicode_data_loss=04108_W_Unicode constant cast with potential data loss +% Conversion from a WideChar to AnsiChar can lose data since now all unicode characters may be represented in the current +% system codepage +% You can nest function definitions only 31 levels deep. +type_e_range_check_error_bounds=04109_E_range check error while evaluating constants ($1 must be between $2 and $3) +type_w_range_check_error_bounds=04110_W_range check error while evaluating constants ($1 must be between $2 and $3) +% The constants are outside their allowed range. +type_e_type_not_allowed_for_default=04111_E_This type is not supported for the Default() intrinsic +% Some types like for example Text and File Of X are not supported by the Default intrinsic. +type_e_java_class_method_not_static_virtual=04112_E_JVM virtual class methods cannot be static +% Virtual class methods cannot be static when targeting the JVM platform, because +% the self pointer is required for correct dispatching. +type_e_invalid_final_assignment=04113_E_Final (class) fields can only be assigned in their class' (class) constructor +% It is only possible to assign a value to a final (class) field inside a (class) constructor of its owning class. +type_e_no_managed_formal_assign_typecast=04114_E_It is not possible to typecast untyped parameters on managed platforms, simply assign a value to them instead. +% On managed platforms, untyped parameters are translated by the compiler into +% the equivalent of \var{var x: BaseClassType}. Non-class-based types passed to +% such parameters are automatically wrapped (or boxed) in a class, and after the +% call the potentially modified value is assigned back to the original variable. +% On the caller side, changing untyped var/out parameters happens by simply assigning +% values to them (either class-based or primitive ones). On the caller side, +% they will be extracted and if their type does not match the original variable's, +% an exception will be raised. +type_e_no_managed_assign_generic_typecast=04115_E_The assignment side of an expression cannot be typecasted to a supertype on managed platforms +% Managed platforms guarantee type safety at the bytecode level. This means that the virtual machine must be able +% to statically determine that no type-unsafe assignments or operations occur. By assigning a parent class type to a +% variable of a child type by typecasting the assignment side to the parent class type, the type safety would no +% longer be guaranteed and the generated code would fail verification at run time time. +type_w_interface_lower_visibility=04116_-W_The interface method "$1" raises the visibility of "$2" to public when accessed via an interface instance +type_e_interface_lower_visibility=04117_E_The interface method "$1" has a higher visibility (public) than "$2" +% All methods in an interface have always public visibility. That means that if +% an interface method is implemented using a (strict) protected or private method, +% this method is actually publicly accessible via the interface. On the JVM +% target this situation results in an error because the JVM rejects such +% attempts to circumvent the visibility rules. On other targets this is a +% warning that is disabled by default because such situations are common +% practice, but it can be enabled in case you are concerned with keeping your +% code compilable for the JVM target. +type_e_typeof_requires_vmt=04118_E_TYPEOF can only be used on object types with VMT +% Typeof() intrinsic returns pointer to VMT of its argument. It cannot be used on object types that do not have VMT. +type_e_invalid_default_value=04119_E_It is not possible to define a default value for a parameter of type "$1" +% Parameters declared as structured types, such as files, variants, non-dynamic +% arrays and TP-style objects, cannot have a default value. +type_e_type_not_allowed_for_type_helper=04120_E_Type "$1" cannot be extended by a type helper +% Types like procedural variables cannot be extended by type helpers +type_e_procedure_must_be_far=04121_E_Procedure or function must be far in order to allow taking its address: "$1" +% In certain i8086 memory models (medium, large and huge), procedures and functions +% have to be declared 'far' in order to allow their address to be taken. +type_w_instance_abstract_class=04122_W_Creating an instance of abstract class "$1" +% The specified class is declared as \var{abstract} and thus no instance of this class +% should be created. This is merely a warning for Delphi compatibility. +type_e_function_reference_kind=04123_E_Subroutine references cannot be declared as "of object" or "is nested", they can always refer to any kind of subroutine +% Subroutine references can refer to any kind of subroutine and hence do not +% require specialisation for methods or nested subroutines. +type_e_anonymous_function_unsupported=04999_E_Function references are not yet supported, only blocks (add "cdecl;" at the end) +% Remove this error message once Delphi-style anonymous are implemented. It has +% number 4999 so as not to result in a gap in the error message numbering once +% it's removed. +% \end{description} +# +# Symtable +# +# 05095 is the last used one +# +% \section{Symbol handling} +% This section lists all the messages that concern the handling of symbols. +% This means all things that have to do with procedure and variable names. +% \begin{description} sym_e_id_not_found=05000_E_Pengenal tidak ditemukan "$1" % Kompilator tidak mengetahui simbol ini. Biasanya terjadi ketika anda salah % mengeja nama variabel atau prosedur, atau ketika anda lupa untuk @@ -1612,6 +2190,162 @@ sym_h_abstract_method_list=05062_H_Ditemukan metode abstrak: $1 % Seksi ini mendaftarkan semua pesan yang dapat ditampilkan jika generator % kode menemukan kondisi kesalahan. % \begin{description} +sym_w_experimental_symbol=05063_W_Symbol "$1" is experimental +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{experimental} is used. Experimental symbols +% might disappear or change semantics in future versions. Usage of this symbol +% should be avoided as much as possible. +sym_w_forward_not_resolved=05064_W_Forward declaration "$1" not resolved, assumed external +% This happens if you declare a function in the \var{interface} of a unit in macpas mode, +% but do not implement it. +sym_w_library_symbol=05065_W_Symbol "$1" is belongs to a library +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{library} is used. Library symbols may not be +% available in other libraries. +sym_w_deprecated_symbol_with_msg=05066_W_Symbol "$1" is deprecated: "$2" +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{deprecated} is used. Deprecated symbols may no longer +% be available in newer versions of the unit / library. Use of this symbol +% should be avoided as much as possible. +sym_e_no_enumerator=05067_E_Cannot find an enumerator for the type "$1" +% This means that compiler cannot find an appropriate enumerator to use in the for-in loop. +% To create an enumerator you need to define an operator enumerator or add a public or published +% GetEnumerator method to the class or object definition. +sym_e_no_enumerator_move=05068_E_Cannot find a "MoveNext" method in enumerator "$1" +% This means that compiler cannot find a public MoveNext method with the Boolean return type in +% the enumerator class or object definition. +sym_e_no_enumerator_current=05069_E_Cannot find a "Current" property in enumerator "$1" +% This means that compiler cannot find a public Current property in the enumerator class or object +% definition. +sym_e_objc_para_mismatch=05070_E_Mismatch between number of declared parameters and number of colons in message string. +% In Objective-C, a message name automatically contains as many colons as parameters. +% In order to prevent mistakes when specifying the message name in FPC, the compiler +% checks whether this is also the case here. Note that in case of messages taking a +% variable number of arguments translated to FPC via an \var{array of const} parameter, +% this final \var{array of const} parameter is not counted. Neither are the hidden +% \var{self} and \var{\_cmd} parameters. +sym_n_private_type_not_used=05071_N_Private type "$1.$2" never used +% The indicated private type is declared but is never used in the code. +sym_n_private_const_not_used=05072_N_Private const "$1.$2" never used +% The indicated private const is declared but is never used in the code. +sym_n_private_property_not_used=05073_N_Private property "$1.$2" never used +% The indicated private property is declared but is never used in the code. +sym_w_deprecated_unit=05074_W_Unit "$1" is deprecated +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_deprecated_unit_with_msg=05075_W_Unit "$1" is deprecated: "$2" +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_non_portable_unit=05076_W_Unit "$1" is not portable +% This means that a unit which is +% declared as \var{platform} is used. This unit use +% and availability is platform specific and should not be used +% if the source code must be portable. +sym_w_library_unit=05077_W_Unit "$1" is belongs to a library +% This means that a unit which is +% declared as \var{library} is used. Library units may not be +% available in other libraries. +sym_w_non_implemented_unit=05078_W_Unit "$1" is not implemented +% This means that a unit which is +% declared as \var{unimplemented} is used. This unit is defined, +% but is not yet implemented on this specific platform. +sym_w_experimental_unit=05079_W_Unit "$1" is experimental +% This means that a unit which is +% declared as \var{experimental} is used. Experimental units +% might disappear or change semantics in future versions. Usage of this unit +% should be avoided as much as possible. +sym_e_formal_class_not_resolved=05080_E_No complete definition of the formally declared class "$1" is in scope +% Objecive-C and Java classes can be imported formally, without using the unit in which it is fully declared. +% This enables making forward references to such classes and breaking circular dependencies amongst units. +% However, as soon as you wish to actually do something with an entity of this class type (such as +% access one of its fields, send a message to it, or use it to inherit from), the compiler requires the full definition +% of the class to be in scope. +sym_e_interprocgoto_into_init_final_code_not_allowed=05081_E_Gotos into initialization or finalization blocks of units are not allowed +% Gotos into initialization or finalization blockse of units are not allowed. +sym_e_external_class_name_mismatch1=05082_E_Invalid external name "$1" for formal class "$2" +sym_e_external_class_name_mismatch2=05083_E_Complete class definition with external name "$1" here +% When a class is declared using a formal external definition, the actual external +% definition (if any) must specify the same external name as the formal definition +% (since both definitions refer to the same actual class type). +sym_w_library_overload=05084_W_Possible library conflict: symbol "$1" from library "$2" also found in library "$3" +% Some OS do not have library specific namespaces, for those +% OS, the function declared as "external 'libname' name 'funcname'", +% the 'libname' part is only a hint, funcname might also be loaded +% by another library. This warning appears if 'funcname' is used twice +% with two different library names. +sym_e_duplicate_id_create_java_constructor=05085_E_Cannot add implicit constructor 'Create' because identifier already used by "$1" +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. In Java, constructors are nameless, +% but in FPC they are all called ``Create''. Therefore, if you do not add a constructor to +% a Java class and furthermore use the ``Create'' identifier for another entity (e.g., a field, +% or a parameterless method), the compiler cannot satisfy this requirement. +sym_e_no_matching_inherited_parameterless_constructor=05086_E_Cannot generate default constructor for class, because parent has no parameterless constructor +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. This compiler must then call +% the parameterless constructor from the parent class inside this added constructor. +% This is however impossible if the parent class does not declare such a constructor. +% In this case you must add a valid constructor yourself. +sym_d_adding_helper_for=05087_D_Adding helper for $1 +% A helper for the mentioned type is added to the current scope +sym_e_param_list=05088_E_Found declaration: $1 +% This message shows all overloaded declarations in case of an error. +sym_w_uninitialized_managed_local_variable=05089_W_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_uninitialized_managed_variable=05090_W_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_local_variable=05091_H_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. it did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_variable=05092_H_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. t did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_managed_function_result_uninitialized=05093_W_function result variable of a managed type does not seem to initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. before it appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_managed_function_result_uninitialized=05094_H_Function result variable of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. it appears in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_duplicate_id=05095_W_Duplicate identifier "$1" +% The identifier was already declared in an Objective-C category that's in the +% same scope as the current identifier. This is a warning instead of an error, +% because while this hides the identifier from the category, there are often +% many unused categories in scope. +% \end{description} +# +# Codegenerator +# +# 06049 is the last used one +# +% \section{Code generator messages} +% This section lists all messages that can be displayed if the code +% generator encounters an error condition. +% \begin{description} cg_e_parasize_too_big=06009_E_Ukuran daftar parameter melebihi 65535 byte % Prosesor I386 membatasi daftar parameter ke 65535 byte (instruksi \var{RET} % menyebabkan ini) @@ -1738,6 +2472,41 @@ cg_h_inherited_ignored=06048_H_Pemanggilan turunan ke metode abstrak diabaikan # # 07105 is the last used one # +cg_e_goto_label_not_found=06049_E_Goto label "$1" not defined or optimized away +% The label used in the goto definition is not defined or optimized away by the +% unreachable code elemination. +cg_f_unknown_type_in_unit=06050_F_Cannot find type "$1" in unit "$2". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_e_interprocedural_goto_only_to_outer_scope_allowed=06051_E_Interprocedural gotos are allowed only to outer subroutines +% Gotos between subroutines are only allowed if the goto jumps from an inner to an outer subroutine or +% from a subroutine to the main program +cg_e_labels_cannot_defined_outside_declaration_scope=06052_E_Label must be defined in the same scope as it is declared +% In ISO mode, labels must be defined in the same scope as they are declared. +cg_e_goto_across_procedures_with_exceptions_not_allowed=06053_E_Leaving procedures containing explicit or implicit exceptions frames using goto is not allowed +% Non-local gotos might not be used to leave procedures using exceptions either implicitly or explicitly. Procedures +% which use automated types like ansistrings or class constructurs are affected by this too. +cg_e_mod_only_defined_for_pos_quotient=06054_E_In ISO mode, the mod operator is defined only for positive quotient +% In ISO pascal, only positive values are allowed for the quotient: \var{n mod m} is only valid if \var{m>0}. +cg_d_autoinlining=06055_DL_Auto inlining: $1 +% Due to auto inlining turned on, the compiler auto inlines this subroutine. +cg_e_function_not_support_by_selected_instruction_set=06056_E_The function used, is not supported by the selected instruction set: $1 +% Some functions cannot be implemented efficiently for certain instruction sets, one example is fused multiply/add. +% To avoid very inefficient code, the compiler complains in this case, so either select another instruction set +% or replace the function call by alternative code +cg_f_max_units_reached=06057_F_Maximum number of units ($1) reached for the current target +% Depending of target architecture, the number of units is limited. This limit +% has been reached. A unit counts only if it contains initialization or finalization count. +% +% \end{description} +# EndOfTeX +# +# Assembler reader +# +# 07125 is the last used one +# asmr_d_start_reading=07000_DL_Mulai penguraian assembler gaya $1 % Ini memberitahu anda bahwa blok assembler sedang diuraikan asmr_d_finish_reading=07001_DL_Selesasi penguraian assembler gaya $1 @@ -1982,6 +2751,71 @@ asmr_e_no_vmtoffset_possible=07106_E_VMTOffset harus dipakai dalam kombinasi den # # 08018 is the last used one # +asmr_e_need_pic_ref=07107_E_Generating PIC, but reference is not PIC-safe +% The compiler has been configured to generate position-independent code +% (PIC), but there are position-dependent references in the current +% handwritten assembler instruction. +asmr_e_mixing_regtypes=07108_E_All registers in a register set must be of the same kind and width +% Instructions on the ARM architecture that take a register set as argument require that all registers +% in this set are of the same kind (e.g., integer, vfp) and width (e.g., single precision, double precision). +asmr_e_empty_regset=07109_E_A register set cannot be empty +% Instructions on the ARM architecture that take a register set as argument require that such a set +% contains at least one register. +asmr_w_useless_got_for_local=07110_W_@GOTPCREL is useless and potentially dangerous for local symbols +% The use of @GOTPCREL supposes an extra indirection that is +% not present if the symbol is local, which might lead to wrong assembler code +asmr_w_general_segment_with_constant=07111_W_Constant with general purpose segment register +% General purpose register should not have constant offsets +% as OS memory allocation might not be compatible with that. +asmr_e_bad_seh_directive_offset=07112_E_Invalid offset value for $1 +% Win64 SEH directives have certain restrictions on possible offset values, e.g. they should +% be positive and have 3 or 4 low bits clear. +asmr_e_bad_seh_directive_register=07113_E_Invalid register for $1 +% Win64 SEH directives accept only 64-bit integer registers or XMM registers. +asmr_e_seh_in_pure_asm_only=07114_E_SEH directives are allowed only in pure assembler procedures +% Win64 SEH directives are allowed only in pure assembler procedures, not in assembler +% blocks of regular procedures. +asmr_e_unsupported_directive=07115_E_Directive "$1" is not supported for the current target +asmr_e_complex_function_result_location=07116_E_This function's result location cannot be encoded directly in a single operand when "nostackframe" is used +% Functions declared with the \var{nostackframe} modifier do not have a stack frame, and hence +% do not have a local variable to hold the temporary function result. Accesses to the function +% result in such routines directly go to the registers or memory location that will be used +% to return their result to the caller. In some cases this result may be spread over multiple +% registers, in which case it is not possible to access the location via its symbolic name. +% You have to directly use the appropriate register names in this case. +asmr_e_wrong_gotpcrel_intel_syntax=07117_E_GOTPCREL references in Intel assembler syntax cannot contain a base or index register, and their offset must 0. +% The syntax for a gotpcrel PIC memory expression in Intel assembler syntax is +% \verb*[global_symbol wrt ..gotpcrel]* +asmr_e_no_gotpcrel_support=07118_E_The current target does not support GOTPCREL relocations +% Not all targets support position-independent code using a global offset table. +% Use a different way to access symbols in a position-indepent way in these cases. +asmr_w_global_access_without_got=07119_W_Exported/global symbols should be accessed via the GOT +% Global symbols (symbols from the unit interface, or defined in a program +% or library) should be accessed via the GOT when generating position-indepent code. +asmr_w_check_mem_operand_size=07120_W_Check size of memory operand "$1" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size3=07121_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size_offset=07122_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits + $4 byte offset]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_negative_offset=07123_W_Check "$1: offset of memory operand is negative "$2 byte" +% The offset of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_automap_multiple_size=07124_W_Check "$1: size of memory operand is empty, but es exists different definitions of the memory size =>> map to $2 (smallest option)" +% The size of memory operand is empty and we have different definitions of possible memory sizes. Check it! +asmr_e_invalid_ref_register=07125_E_Invalid register used in memory reference expression: "$1" +% FPU, vector and sometimes integer registers cannot be used in memory reference +% expressions, due to limitations of the cpu architecture or simple because +% it is not meaningful. + +# +# Assembler/binary writers +# +# 08029 is the last used one +# asmw_f_too_many_asm_files=08000_F_Terlalu banyak file assembler % Dengan menghidupkan smartlinking, ada terlalu banyak file assembler yang dibuat. % Matikan smartlinking. @@ -2019,6 +2853,41 @@ asmw_e_64bit_not_supported=08021_E_Asm: 64 Bit operand tidak didukung % Seksi ini mendaftarkan kesalahan yang terjadi saat kompilator memproses % baris perintah atau menangani file konfigurasi. % \begin{description} +asmw_e_bad_reg_with_rex=08022_E_Asm: AH,BH,CH or DH cannot be used in an instruction requiring REX prefix +% x86_64 only: instruction encoding of this platform does not allow using +% 8086 high byte registers (AH,BH,CH or DH) together with REX prefix in a single instruction. +% The REX prefix is required whenever the instruction operand size is 64 bits, or +% when it uses one of extended x86_64 registers (R8-R15 or XMM8-XMM15). +asmw_e_missing_endprologue=08023_E_Missing .seh_endprologue directive +% x86_64-win64 only: Normally, SEH directives are handled internally by compiler. +% However, in pure assembler procedures .seh_endprologue directive is required +% if other SEH directives are present. +asmw_e_prologue_too_large=08024_E_Function prologue exceeds 255 bytes +% x86_64-win64: .seh_prologue directive must be placed within 255 bytes from function start. +asmw_e_handlerdata_no_handler=08025_E_.seh_handlerdata directive without preceding .seh_handler +% x86_64-win64: If .seh_handlerdata directive is used, then a .seh_handler directive must be +% present earlier in the same function. +asmw_f_too_many_relocations=08026_F_Relocation count for section $1 exceeds 65535 +% Legacy COFF targets limit number of relocations per section to 65535 because they use a 2-byte field +% to store the relocation count. Targets using newer PECOFF format do not have this limitation. +asmw_w_changing_bind_type=08027_N_Change of bind type of symbol $1 from $2 to $3 after use +asmw_h_changing_bind_type=08028_H_Change of bind type of symbol $1 from $2 to $3 after use +% An assembler symbol bind type has been altered after use, which can lead to wrong code. +% First version is reserved for changig to local label, which is the most probable cause +% of wrong code generation, but currently set to Note level as it appears inside +% the compiler compilation. +asmw_e_32bit_not_supported=08029_E_Asm: 32 Bit references not supported +# +# Executing linker/assembler +# +# 09035 is the last used one +# +# BeginOfTeX +% +% \section{Errors of assembling/linking stage} +% This section lists errors that occur when the compiler is processing the +% command line or handling the configuration files. +% \begin{description} exec_w_source_os_redefined=09000_W_Sistem operasi sumber didefinisikan ulang % Sistem operasi sumber didefinisikan ulang. exec_i_assembling_pipe=09001_I_Assembling (pipe) $1 @@ -2072,6 +2941,9 @@ exec_e_exe_not_supported=09018_E_Pembuatan Executable tidak didukung exec_e_dll_not_supported=09019_E_Pembuatan Librari Dinamis/Berbagai tidak didukung % Pembuatan dynamically loadable libraries tidak didukung untuk platform ini, % karena belum diimplementasikan dalam kompilator. +exec_e_static_lib_not_supported=09035_E_Creation of Static Libraries not supported +% Creating static libraries is not supported for this platform, because it was +% not yet implemented in the compiler. exec_i_closing_script=09020_I_Menutup naskah $1 % Pesan informasional yang tampil saat naskah linking assembling eskternal selesai. exec_e_res_not_found=09021_E_kompilator resource tidak ditemukan, beralih ke mode eksternal @@ -2102,6 +2974,35 @@ exec_d_resbin_params=09028_D_Memanggil kompilator resource "$1" dengan "$2" seba % Seksi ini mendaftarkan semua pesan yang dikeluarkan kompilator saat program % executable dihasilkan, dan hanya ketika linker internal yang dipakai. % \begin{description} +exec_e_error_while_compiling_resources=09029_E_Error while compiling resources +% The resource compiler or converter returned an error. +exec_e_cant_call_resource_compiler=09030_E_Can't call the resource compiler "$1", switching to external mode +% An error occurred when calling a resource compiler. The compiler will produce +% a script that can be used to assemble, compile resources and link or +% postprocess the program. +exec_e_cant_open_resource_file=09031_E_Can't open resource file "$1" +% An error occurred resource file cannot be opened. +exec_e_cant_write_resource_file=09032_E_Can't write resource file "$1" +% An error occurred resource file cannot be written. +exec_n_backquote_cat_file_not_found=09033_N_File "$1" not found for backquoted cat command +% The compiler did not find the file that should be expanded into linker parameters +exec_w_init_file_not_found=09034_W_"$1" not found, this will probably cause a linking failure +% The compiler adds certain startup code files to the linker only when they are found. +% If they are not found, they are not added and this might cause a linking failure. +% +%\end{description} +# EndOfTeX + +# +# Executable information +# +# 09134 is the last used one +# +# BeginOfTeX +% \section{Executable information messages.} +% This section lists all messages that the compiler emits when an executable program is produced, +% and only when the internal linker is used. +% \begin{description} execinfo_f_cant_process_executable=09128_F_Tidak dapat memproses akhir executable $1 % Kesalahan fatal saat kompilator tidak bisa memproses akhir sebuah executable. execinfo_f_cant_open_executable=09129_F_Tidak bisa membuka executable $1 @@ -2130,6 +3031,26 @@ execinfo_x_stackcommit=09134_X_Ruang stack dikomit: $1 byte % menggambil unit dari disk ke dalam memori. Banyak dari pesan ini berupa % pesan informasional. % \begin{description} +link_f_executable_too_big=09200_F_Executable image size is too big for $1 target. +% Fatal error when resulting executable is too big. +link_w_32bit_absolute_reloc=09201_W_Object file "$1" contains 32-bit absolute relocation to symbol "$2". +% Warning when 64-bit object file contains 32-bit absolute relocations. +% In such case an executable image can be loaded into lower 4Gb of +% address space only. +%\end{description} +# EndOfTeX + +# +# Unit loading +# +# 10062 is the last used one +# +# BeginOfTeX +% \section{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. +% \begin{description} unit_t_unitsearch=10000_T_Pencarian unit: $1 % Ketika anda menggunakan saklar \var{-vt}, kompilator memberitahu anda ke mana % ia mencoba mencari file unit. @@ -2320,6 +3241,29 @@ unit_u_skipping_reresolving_unit=10059_U_Melewati pemecahan ulang unit $1, masih # # 11041 is the last used one # +unit_u_unload_resunit=10060_U_Unloading resource unit $1 (not needed) +% When you use the \var{-vu} flag, the compiler warns that it is unloading the +% resource handling unit, since no resources are used. +unit_e_different_wpo_file=10061_E_Unit $1 was compiled using a different whole program optimization feedback input ($2, $3); 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 (\var{-FW} \var{-OW}), +% 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. +unit_u_indirect_crc_changed=10062_U_Indirect interface (objects/classes) CRC changed for unit $1 +% When you use the \var{-vu} flag, the compiler warns that the +% indirect CRC calculated for the unit (this is the CRC of all classes/objects/interfaces/$\ldots$ +% in the interfaces of units directly or indirectly used by this unit in the interface) has been changed after the +% implementation has been parsed. +unit_u_ppu_invalid_memory_model=10063_U_PPU is compiled for another i8086 memory model +% This unit file was compiled for a different i8086 memory model and +% cannot be read. +% \end{description} +# EndOfTeX + +# +# Options +# +# 11057 is the last used one +# option_usage=11000_O_$1 [opsi] [opsi] # BeginOfTeX % @@ -2396,18 +3340,29 @@ option_using_env=11027_T_Membaca opsi dari lingkungan $1 option_handling_option=11028_D_Menangani opsi "$1" % Info debug yang opsinya ditemukan akan ditangani option_help_press_enter=11029__*** tekan enter *** +% Message shown when help is shown page per page. When pressing the ENTER +% Key, the next page of help is shown. If you press q and then ENTER, the +% compiler exits. option_start_reading_configfile=11030_H_Mulai membaca file konfigurasi $1 % Memulai penguraian file konfigurasi. option_end_reading_configfile=11031_H_Akhir pembacaan file konfigurasi $1 % Akhir penguraian file konfigurasi. option_interpreting_option=11032_D_menginterpretasikan opsi "$1" +% The compiler is interpreting an option option_interpreting_firstpass_option=11036_D_menginterpretasikan operan opsi pertama "$1" +% The compiler is interpreting an option for the first time. option_interpreting_file_option=11033_D_menginterpretasikan opsi file "$1" +% The compiler is interpreting an option which it read from the configuration file. option_read_config_file=11034_D_Membaca file konfigurasi "$1" +% The compiler is starting to read the configuration file. option_found_file=11035_D_ditemukan nama file sumber "$1" % Info tambahan mengenai opsi, ditampilkan saat anda menghidupkan opsi % debug. option_code_page_not_available=11039_E_Halaman kode tidak dikenal +% An unknown codepage for the source files was requested. +% The compiler is compiled with support for several codepages built-in. +% The requested codepage is not in that list. You will need to recompile +% the compiler with support for the codepage you need. option_config_is_dir=11040_F_File konfigurasi $1 adalah sebuah direktori % Direktori tidak bisa dipakai sebagai file konfigurasi. option_confict_asm_debug=11041_W_Output assembler yang dipilih "$1" tidak bisa menghasilkan info debug, debugging dimatikan @@ -2416,6 +3371,131 @@ option_confict_asm_debug=11041_W_Output assembler yang dipilih "$1" tidak bisa m %\end{description} # EndOfTeX +# +# Logo (option -l) +# +option_ppc386_deprecated=11042_W_Use of ppc386.cfg is deprecated, please use fpc.cfg instead +% Using ppc386.cfg is still supported for historical reasons, however, for a multiplatform +% system the naming makes no sense anymore. Please continue to use fpc.cfg instead. +option_else_without_if=11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DEF found +% An \var{\#ELSE} statement was found in the options file without a matching \var{\#IF(N)DEF} statement. +option_unsupported_target=11044_F_Option "$1" is not, or not yet, supported on the current target platform +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is incompatible with the currently selected target platform. +option_unsupported_target_for_feature=11045_F_The feature "$1" is not, or not yet, supported on the selected target platform +% Not all features are supported or implemented for all target platforms. This message informs you that a chosen +% feature is incompatible with the currently selected target platform. +option_dwarf_smart_linking=11046_N_DWARF debug information cannot be used with smart linking on this target, switching to static linking +% Smart linking is currently incompatible with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_ignored_target=11047_W_Option "$1" is ignored for the current target platform. +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is ignored for the currently selected target platform. +option_debug_external_unsupported=11048_W_Disabling external debug information because it is unsupported for the selected target/debug format combination. +% Not all debug formats can be stored in an external file on all platforms. In particular, on +% Mac OS X only DWARF debug information can be stored externally. +option_dwarf_smartlink_creation=11049_N_DWARF debug information cannot be used with smart linking with external assembler, disabling static library creation. +% Smart linking is currently incompatble with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_invalid_macosx_deployment_target=11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variable: $1 +option_invalid_iphoneos_deployment_target=11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment variable: $1 +% On Mac OS X, the MACOSX\_DEPLOYMENT\_TARGET/IPHONEOS\_DEPLOYMENT\_TARGET environment variable can be +% used to set the default target OS version. In case of Mac OS X, it has to be of the format +% XY.Z or XY.Z.AB with X, Y,Z , A and B all digits from 0-9. +% In case of iOS, it has to be X.Z.A, where X, Z and A can all be either 1 or 2 +% digits from 0-9. +option_illegal_fpu_eabihf=11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when using the EABIHF ABI target +% The EABIHF (VFP hardfloat) ABI target can only be used with VFP FPUs. +option_w_unsupported_debug_format=11053_W_The selected debug format is not supported on the current target, not changing the current setting +% Not all targets support all debug formats (in particular, Stabs is not supported on 64 bit targets). +option_missing_arg=11054_E_argument to "$1" is missing +% Displayed when parameter must be followed by an argument. +option_malformed_para=11055_E_malformed parameter: $1 +% Given argument is not valid for parameter. +option_smart_link_requires_external_linker=11056_W_Smart linking requires external linker +option_com_files_require_tiny_model=11057_E_Creating .COM files is not supported in the current memory model. Only the tiny memory model supports making .COM files. + + +%\end{description} +# EndOfTeX + +# +# Whole program optimization +# +# 12019 is the last used one +# +# BeginOfTeX +% +% \section{Whole program optimization messages} +% This section lists errors that occur when the compiler is performing +% whole program optimization. +% \begin{description} +wpo_cant_find_file=12000_F_Cannot open whole program optimization feedback file "$1" +% The compiler cannot open the specified feedback file with whole program optimization information. +wpo_begin_processing=12001_D_Processing whole program optimization information in wpo feedback file "$1" +% The compiler starts processing whole program optimization information found in the named file. +wpo_end_processing=12002_D_Finished processing the whole program optimization information in wpo feedback file "$1" +% The compiler has finished processing the whole program optimization information found in the named file. +wpo_expected_section=12003_E_Expected section header, but got "$2" at line $1 of wpo feedback file +% The compiler expected a section header in the whole program optimization file (starting with \%), +% but did not find it. +wpo_no_section_handler=12004_W_No handler registered for whole program optimization section "$2" at line $1 of wpo feedback file, ignoring +% The compiler has no handler to deal with the mentioned whole program optimization information +% section, and will therefore ignore it and skip to the next section. +wpo_found_section=12005_D_Found whole program optimization section "$1" with information about "$2" +% The compiler encountered a section with whole program optimization information, and according +% to its handler this section contains information usable for the mentioned purpose. +wpo_no_input_specified=12006_F_The selected whole program optimizations require a previously generated feedback file (use -Fw to specify) +% The compiler needs information gathered during a previous compilation run to perform the selected +% whole program optimizations. You can specify the location of the feedback file containing this +% information using the -Fw switch. +wpo_not_enough_info=12007_E_No collected information necessary to perform "$1" whole program optimization found +% While you pointed the compiler to a file containing whole program optimization feedback, it +% did not contain the information necessary to perform the selected optimizations. You most likely +% have to recompile the program using the appropriate -OWxxx switch. +wpo_no_output_specified=12008_F_Specify a whole program optimization feedback file to store the generated info in (using -FW) +% You have to specify the feedback file in which the compiler has to store the whole program optimization +% feedback that is generated during the compilation run. This can be done using the -FW switch. +wpo_output_without_info_gen=12009_E_Not generating any whole program optimization information, yet a feedback file was specified (using -FW) +% The compiler was instructed to store whole program optimization feedback into a file specified using -FW, +% but not to actually generated any whole program optimization feedback. The classes of to be +% generated information can be specified using -OWxxx. +wpo_input_without_info_use=12010_E_Not performing any whole program optimizations, yet an input feedback file was specified (using -Fw) +% The compiler was not instructed to perform any whole program optimizations (no -Owxxx parameters), +% but nevertheless an input file with such feedback was specified (using -Fwyyy). Since this can +% indicate that you forgot to specify an -Owxxx parameter, the compiler generates an error in this case. +wpo_skipping_unnecessary_section=12011_D_Skipping whole program optimization section "$1", because not needed by the requested optimizations +% The whole program optimization feedback file contains a section with information that is not +% required by the selected whole program optimizations. +wpo_duplicate_wpotype=12012_W_Overriding previously read information for "$1" from feedback input file using information in section "$2" +% The feedback file contains multiple sections that provide the same class of information (e.g., +% information about which virtual methods can be devirtualized). In this case, the information in last encountered +% section is used. Turn on debugging output (-vd) to see which class of information is provided by each section. +wpo_cannot_extract_live_symbol_info_strip=12013_E_Cannot extract symbol liveness information from program when stripping symbols, use -Xs- +% Certain symbol liveness collectors extract the symbol information from the linked program. If the symbol information +% is stripped (option -Xs), this is not possible. +wpo_cannot_extract_live_symbol_info_no_link=12014_E_Cannot extract symbol liveness information from program when when not linking +% Certain symbol liveness collectors extract the symbol information from the linked program. If the program is not +% linked by the compiler, this is not possible. +wpo_cannot_find_symbol_progs=12015_F_Cannot find "$1" or "$2" to extract symbol liveness information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% This helper program is normally 'nm', which is part of the GNU binutils. +wpo_error_reading_symbol_file=12016_E_Error during reading symbol liveness information produced by "$1" +% An error occurred during the reading of the symbol liveness file that was generated using the 'nm' or 'objdump' program. The reason +% can be that it was shorter than expected, or that its format was not understood. +wpo_error_executing_symbol_prog=12017_F_Error executing "$1" (exitcode: $2) to extract symbol information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% The helper program produced the reported error code when it was run on the linked program. +wpo_symbol_live_info_needs_smart_linking=12018_E_Collection of symbol liveness information can only help when using smart linking, use -CX -XX +% Whether or not a symbol is live is determined by looking whether it exists in the final linked program. +% Without smart linking/dead code stripping, all symbols are always included, regardless of whether they are +% actually used or not. So in that case all symbols will be seen as live, which makes this optimization ineffective. +wpo_cant_create_feedback_file=12019_E_Cannot create specified whole program optimisation feedback file "$1" +% The compiler is unable to create the file specified using the -FW parameter to store the whole program optimisation information. +%\end{description} +# EndOfTeX + + # # Logo (option -l) # @@ -2709,3 +3789,76 @@ P*2WT_Tetapkan aplikasi tipe piranti MPW (Mac OS Klasik) # # The End... +%%% parser_e_only_class_methods_via_class_ref=03053_E_Hanya metode kelas dapat dirujuk dengan referensi kelas +% Kesalahan ini terjadi dalam situasi seperti berikut: +% \begin{verbatim} +% Type : +% Tclass = Class of Tobject; +% +% Var C : TClass; +% +% begin +% ... +% C.free +% \end{verbatim} +% \var{Free} bukan metode kelas dan tidak bisa dipanggil dengan referensi +% kelas. +%%% parser_e_only_class_methods=03054_E_Hanya metode kelas bisa diakses dalam metode kelas +% Ini terkait dengan kesalahan sebelumnya. Anda tidak bisa memanggil metode obyek dari +% dalam metode kelas. Kode berikut akan menghasilkan kesalahan ini: +% \begin{verbatim} +% class procedure tobject.x; +% +% begin +% free +% \end{verbatim} +% Karena free adalah metode normal sebuah kelas, ia tidak bisa dipanggil dari +% metode kelas. +%%% parser_e_absolute_only_one_var=03095_E_absolute hanya bisa dikaitkan ke satu variabel +% Anda tidak bisa menetapkan lebih dari satu variabel sebelum direktif \var{absolute}. +% Selanjutnya, konstruksi berikut akan menghasilkan kesalahan ini: +% \begin{verbatim} +% Var Z : Longint; +% X,Y : Longint absolute Z; +% \end{verbatim} +% \item [ absolute hanya bisa dikaitkan ke sebuah var atau const ] +% Alamat dari direktif \var{absolute} hanya dapat mengarah ke variabel atau +% tipe konstan. Oleh karena itu, kode berikut akan menghasilkan kesalahan ini: +% \begin{verbatim} +% Procedure X; +% +% var p : longint absolute x; +% \end{verbatim} +% +%%% parser_e_type_and_var_only_in_generics=03224_E_VAR dan TYPE hanya dibolehkan dalam generik +% Penggunaan VAR dan TYPE untuk mendeklarasikan tipe baru di dalam sebuah obyek +% hanya dibolehkan di dalam generik. +%%% parser_f_no_anonymous_specializations=03232_F_Spesialisasi generik anonim tidak diperbolehkan +% Sesuatu seperti +% \begin{verbatim} +% var +% MyLinkedList: specialize TLinkedList; +% \end{verbatim} +% tidak dibolehkan. Deklarasikan tipe spesialisasi lebih dulu: +% \begin{verbatim} +% type +% TMyLinkedList = specialize TLinkedList; +% var +% MyLinkedList: TMyLinkedList +% \end{verbatim} +%%% type_w_mixed_signed_unsigned=04035_W_Mencampur ekspresi bertanda dan longword memberikan hasil 64bit +% Jika anda membagi (atau menghitung modulus dari) ekspresi bertanda dengan +% longword (atau sebaliknya), atau jika anda memiliki overflow dan/atau +% menghidupkan pemeriksaan jangkauan dan menggunakan ekspresi aritmatika +% (+, -, *, div, mod) dalam kedua angka bertanda dan longwords muncul, +% maka kesemuanya harus dievaluasi dalam 64bit yang lebih lambat daripada +% aritmatika 32bit normal. Anda bisa menghindari ini dengan typecasting satu +% operand agar ia sesuai tipe hasil atas yang lainnya. +%%% type_w_signed_unsigned_always_false=04044_W_Perbandingan selalu salah karena jangkauan nilai +% Ada perbandingan antara nilai unsigned dan konstan bertanda yang kurang dari +% nol. Karena promosi tipe, pernyataan akan selalu dievaluasi menjadi false. +% Typecast secara eksplisit konstan ke jangkauan yang benar guna menghindari masalah ini. +%%% type_w_signed_unsigned_always_true=04045_W_Perbandingan selalu true karena jangkauan nilai +% Ada perbandingan antara nilai unsigned dan konstan bertanda yang kurang dari +% nol. Karena promosi tipe, pernyataan akan selalu dievaluasi menjadi true. +% Typecast secara eksplisit konstan ke jangkauan yang benar guna menghindari masalah ini. diff --git a/compiler/msg/errorn.msg b/compiler/msg/errorn.msg index 8242e260cb..7e53f30a93 100644 --- a/compiler/msg/errorn.msg +++ b/compiler/msg/errorn.msg @@ -1,3 +1,5 @@ +%%% Reordering of errorn.msg respective to errore.msg +%%% Contains all comments from errorn.msg # # This file is part of the Free Pascal Compiler # Copyright (c) 1999-2008 by the Free Pascal Development team @@ -46,14 +48,6 @@ # # 01023 is the last used one # -general_text_bytes_code=01019_bytes code -general_text_bytes_data=01020_bytes data -# BeginOfTeX -% \section{General compiler messages} -% This section gives the compiler messages which are not fatal, but which -% display useful information. The number of such messages can be -% controlled with the various verbosity level \var{-v} switches. -% \begin{description} general_t_compilername=01000_T_Gebruikte compiler: $1 % When the \var{-vt} switch is used, this line tells you what compiler % is used. @@ -115,6 +109,15 @@ general_e_path_does_not_exist=01017_E_Pad "$1" bestaat niet % The specified path does not exist. general_f_compilation_aborted=01018_F_Compilatie afgebroken % Compilation was aborted. +general_text_bytes_code=01019_bytes code +% The size of the generated executable code, in bytes. +general_text_bytes_data=01020_bytes data +# BeginOfTeX +% \section{General compiler messages} +% This section gives the compiler messages which are not fatal, but which +% display useful information. The number of such messages can be +% controlled with the various verbosity level \var{-v} switches. +% \begin{description} general_i_number_of_warnings=01021_I_$1 warning(s) issued % Total number of warnings issued during compilation. general_i_number_of_hints=01022_I_$1 hint(s) issued @@ -133,6 +136,22 @@ general_i_number_of_notes=01023_I_$1 tip(s) gegeven % reserved words, strings, etc. It also takes care of directives and % conditional compiling handling. % \begin{description} +general_f_ioerror=01024_F_I/O error: $1 +% During compilation an I/O error happened which allows no further compilation. +general_f_oserror=01025_F_Operating system error: $1 +% During compilation an operating system error happened which allows no further compilation. +% \end{description} +# +# Scanner +# +# 02098 is the last used one +# +% \section{Scanner messages.} +% This section lists the messages that the scanner emits. The scanner takes +% care of the lexical structure of the pascal file, i.e. it tries to find +% reserved words, strings, etc. It also takes care of directives and +% conditional compilation handling. +% \begin{description} scan_f_end_of_file=02000_F_Onverwacht einde van bestand % this typically happens in one of the following cases : % \begin{itemize} @@ -352,6 +371,72 @@ scan_w_maxstacksize_not_support=02078_W_MAXSTACKSIZE wordt niet ondersteund door % semantics of you language, i.e. it determines if your pascal constructs % are correct. % \begin{description} +scanner_e_illegal_warn_state=02079_E_Illegal state "$1" for $WARN directive +% Only ON and OFF can be used as state with a \var{\{\$WARN\}} compiler directive. +scan_e_only_packset=02080_E_Illegal set packing value +% Only 0, 1, 2, 4, 8, DEFAULT and NORMAL are allowed as packset parameters. +scan_w_pic_ignored=02081_W_PIC directive or switch ignored +% Several targets, such as \windows, do not support nor need PIC, +% so the PIC directive and switch are ignored. +scan_w_unsupported_switch_by_target=02082_W_The switch "$1" is not supported by the currently selected target +% Some compiler switches like \$E are not supported by all targets. +scan_w_frameworks_darwin_only=02084_W_Framework-related options are only supported for Darwin/Mac OS X +% Frameworks are not a known concept, or at least not supported by FPC, +% on operating systems other than Darwin/Mac OS X. +scan_e_illegal_minfpconstprec=02085_E_Illegal minimal floating point constant precision "$1" +% Valid minimal precisions for floating point constants are default, 32 and 64, +% which mean respectively minimal (usually 32 bit), 32 bit and 64 bit precision. +scan_w_multiple_main_name_overrides=02086_W_Overriding name of "main" procedure multiple times, was previously set to "$1" +% The name for the main entry procedure is specified more than once. Only the last +% name will be used. +scanner_w_illegal_warn_identifier=02087_W_Illegal identifier "$1" for $WARN directive +% Identifier is not known by a \var{\{\$WARN\}} compiler directive. +scanner_e_illegal_alignment_directive=02088_E_Illegal alignment directive +% The alignment directive is not valid. Either the alignment type is not known or the alignment +% value is not a power of two. +scanner_f_illegal_utf8_bom=02089_F_It is not possible to include a file that starts with an UTF-8 BOM in a module that uses a different code page +% All source code that is part of a single compilation entity (program, library, unit) must be encoded +% in the same code page +scanner_w_directive_ignored_on_target=02090_W_Directive "$1" is ignored for the current target platform +% Some directives are ignored for certain targets, such as changing the +% packrecords and packenum settings on managed platforms. +scan_w_unavailable_system_codepage=02091_W_Current system codepage "$1" is not available for the compiler. Switching default codepage back to "$2". +% The current system codepage is not known by the compiler. +% The compiler is compiled with support for several codepages built-in. +% The codepage of the operation system is not in that list. You will need to recompile +% the compiler with support for this codepage. +scan_w_setpeoptflags_not_support=02092_W_SETPEOPTFLAGS is not supported by the target OS +% The \var{\{\$SETPEOPTFLAGS\}} directive is not supported by the target OS. +scan_e_illegal_peflag=02093_E_Illegal argument for SETPEFLAGS +% The given argument for SETPEFLAGS is neither a correct named value nor an +% ordinal value +scan_e_illegal_peoptflag=02094_E_Illegal argument for SETPEOPTFLAGS +% The given argument for SETPEOPTFLAGS is neither a correct named value nor an +% ordinal value +scan_e_unsupported_switch=02095_E_Directive $1 is not supported on this target +% Not all compiler directives are supported on all targets. +scan_w_invalid_stacksize=02096_W_The specified stack size is not within the valid range for the platform. Setting the stack size ignored. +% The valid range for the stack size is 1024 - 67107839 on 32-bit and 64-bit +% platforms and 1024 - 65520 on 16-bit platforms. Additionally, for Turbo Pascal 7 +% compatibility reasons, specifying a stack size of 65521 on 16-bit platforms +% actually sets the stack size to 65520. +scan_w_heapmax_lessthan_heapmin=02097_W_The specified HeapMax value is smaller than the HeapMin value. Setting HeapMax ignored. +% The HeapMax value (if specified) must be greater than or equal to the HeapMin +% value. Otherwise, the HeapMax value is ignored. +scan_e_illegal_hugepointernormalization=02098_E_Illegal argument for HUGEPOINTERNORMALIZATION +% The only allowed values for HUGEPOINTERNORMALIZATION are BORLANDC, MICROSOFTC +% and WATCOMC. +% \end{description} +# +# Parser +# +# 03339 is the last used one +# +% \section{Parser messages} +% This section lists all parser messages. The parser takes care of the +% semantics of you language, i.e. it determines if your Pascal constructs +% are correct. +% \begin{description} parser_e_syntax_error=03000_E_Parser - Taalfout % An error against the Turbo Pascal language was encountered. This happens % typically when an illegal character is found in the sources file. @@ -369,6 +454,7 @@ parser_e_export_ordinal_double=03009_E_Dubbel geexporteerde functie index $1 parser_e_export_invalid_index=03010_E_Ongeldige index for geexporteerde functie % DLL function index must be in the range \var{1..\$FFFF} parser_w_parser_reloc_no_debug=03011_W_Relocatable bibliotheek of applicatie $1 debug informatie niet ondersteund. +% It is currently not possible to include debug information in a relocatable DLL. parser_w_parser_win32_debug_needs_WN=03012_W_Om win32 code te debuggen moet relocatie afgezet worden door de -WN optie % Stabs info is wrong for relocatable DLL or EXES use -WN % if you want to debug win32 executables. @@ -492,7 +578,7 @@ parser_e_fail_only_in_constructor=03051_E_FAIL mag alleen in constructors gebrui parser_e_no_paras_for_destructor=03052_E_Destructors hebben geen parameters % You are declaring a destructor with a parameter list. Destructor methods % cannot have parameters. -parser_e_only_class_methods_via_class_ref=03053_E_Alleen klassemethoden kunnen gerefereerd worden via een klasse +parser_e_only_class_members_via_class_ref=03053_E_Only class methods, class properties and class variables can be referred with class references % This error occurs in a situation like the following: % \begin{verbatim} % Type : @@ -506,9 +592,9 @@ parser_e_only_class_methods_via_class_ref=03053_E_Alleen klassemethoden kunnen g % \end{verbatim} % \var{Free} is not a class method and hence cannot be called with a class % reference. -parser_e_only_class_methods=03054_E_Alleen klassemethoden zijn toegankelijk in klassen +parser_e_only_class_members=03054_E_Only class methods, class properties and class variables can be accessed in class methods % This is related to the previous error. You cannot call a method of an object -% from a inside a class method. The following code would produce this error: +% from inside a class method. The following code would produce this error: % \begin{verbatim} % class procedure tobject.x; % @@ -644,22 +730,14 @@ parser_e_mix_of_classes_and_objects=03093_E_CLASSES and OBJECTS kunnen niet geme % a class cannot have an object as parent and vice versa. parser_w_unknown_proc_directive_ignored=03094_W_Onbekende proceduredirective is genegeerd: $1 % The procedure directive you specified is unknown. -parser_e_absolute_only_one_var=03095_E_Absolute kan maar aan een variabele verbonden worden. -% You cannot specify more than one variable before the \var{absolute} directive. -% Thus, the following construct will provide this error: +parser_e_directive_only_one_var=03095_E_$1 can be associated with only one variable +% You cannot specify more than one variable before the \var{absolute}, \var{export}, \var{external}, +% \var{weakexternal}, \var{public} and \var{cvar} directives. +% As a result, for example the following construct will provide this error: % \begin{verbatim} % Var Z : Longint; % X,Y : Longint absolute Z; % \end{verbatim} -% \item [ absolute can only be associated a var or const ] -% The address of a \var{absolute} directive can only point to a variable or a -% typed constant. Therefore, the following code will produce this error: -% \begin{verbatim} -% Procedure X; -% -% var p : longint absolute x; -% \end{verbatim} -% parser_e_absolute_only_to_var_or_const=03096_E_Absolute kan slechts aan variabelen of constanten verbonden worden. % The address of a \var{absolute} directive can only point to a variable or % constant. Therefore, the following code will produce this error: @@ -841,10 +919,10 @@ parser_e_ill_property_storage_sym=03155_E_Dit symbool is niet toegestaan achter % You can't use this type of symbol as storage specifier in property % declaration. You can use only methods with the result type boolean, % boolean class fields or boolean constants -parser_e_only_publishable_classes_can__be_published=03156_E_Alleen klassen gecompileerd in $M+ modus kunnen een published sectie hebben. -% In the published section of a class can be only class as fields used which -% are compiled in \var{\{\$M+\}} or which are derived from such a class. Normally -% such a class should be derived from TPersitent +parser_e_only_publishable_classes_can_be_published=03156_E_Only classes which are compiled in $M+ mode can be published +% A class-typed field in the published section of a class can only be a class which was +% compiled in \var{\{\$M+\}} or which is derived from such a class. Normally +% such a class should be derived from \var{TPersistent}. parser_e_proc_directive_expected=03157_E_Proceduredirective verwacht. % This error is triggered when you have a \var{\{\$Calling\}} directive without % a calling convention specified. @@ -877,7 +955,14 @@ parser_e_no_export_with_index_for_target=03163_E_Kan niet exporteren met indexen parser_e_no_export_of_variables_for_target=03164_E_Exporteren van variabelen is niet ondersteund op $1 % Exporting of variables is not supported on this target. parser_e_improper_guid_syntax=03165_E_Ongeldige GUID aanduiding +% The GUID indication does not have the proper syntax. It should be of the form +% \begin{verbatim} +% {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} +% \end{verbatim} +% Where each \var{X} represents a hexadecimal digit. parser_w_interface_mapping_notfound=03168_W_PGeen procedure genaamd "$1" om "$2.$3" te implementeren gevonden +% The compiler cannot find a suitable procedure which implements the given method of an interface. +% A procedure with the same name is found, but the arguments do not match. parser_e_interface_id_expected=03169_E_Interface aanduiding verwacht % This happens when the compiler scans a \var{class} declaration that contains % \var{interface} function name mapping code like this: @@ -935,7 +1020,17 @@ parser_e_no_procvarobj_const=03183_E_Getypeerde constanten van type "procedure % 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). parser_e_default_value_only_one_para=03184_E_De default aanduiding kan maar bij 1 parameter horen. +% It is not possible to specify a default value for several parameters at once. +% The following is invalid: +% \begin{verbatim} +% Procedure MyProcedure (A,B : Integer = 0); +% \end{verbatim} +% Instead, this should be declared as +% \begin{verbatim} +% Procedure MyProcedure (A : Integer = 0; B : Integer = 0); +% \end{verbatim} parser_e_default_value_expected_for_para=03185_E_Default parameter vereist voor "$1" +% The specified parameter requires a default value. parser_w_unsupported_feature=03186_W_Gebruik van niet-ondersteunde mogelijkheden % You're trying to force the compiler into doing something it cannot do yet. parser_h_c_arrays_are_references=03187_H_C arrays worden via referentie doorgegeven @@ -1064,6 +1159,420 @@ parser_e_dispid_must_be_ord_const=03219_E_Bericht ID-s moeten ordinale constante % This section lists all errors that can occur when type checking is % performed. % \begin{description} +parser_e_array_range_out_of_bounds=03220_E_The range of the array is too large +% Regardless of the size taken up by its elements, an array cannot have more +% than high(ptrint) elements. Additionally, the range type must be a subrange +% of ptrint. +parser_e_packed_element_no_var_addr=03221_E_The address cannot be taken of bit packed array elements and record fields +% If you declare an array or record as \var{packed} in Mac Pascal mode +% (or as \var{packed} in any mode with \var{\{\$bitpacking on\}}), it will +% be packed at the bit level. This means it becomes impossible to take addresses +% of individual array elements or record fields. The only exception to this rule +% is in the case of packed arrays elements whose packed size is a multiple of 8 bits. +parser_e_packed_dynamic_open_array=03222_E_Dynamic arrays cannot be packed +% Only regular (and possibly in the future also open) arrays can be packed. +parser_e_packed_element_no_loop=03223_E_Bit packed array elements and record fields cannot be used as loop variables +% If you declare an array or record as \var{packed} in Mac Pascal mode +% (or as \var{packed} in any mode with \var{\{\$bitpacking on\}}), it will +% be packed at the bit level. For performance reasons, they cannot be +% used as loop variables. +parser_e_type_var_const_only_in_records_and_classes=03224_E_VAR, TYPE and CONST are allowed only in records, objects and classes +% The usage of VAR, TYPE and CONST to declare new types inside an object is allowed only inside +% records, objects and classes. +parser_e_cant_create_generics_of_this_type=03225_E_This type cannot be a generic +% Only Classes, Objects, Interfaces and Records are allowed to be used as generic. +parser_w_no_lineinfo_use_switch=03226_W_Don't load LINEINFO unit manually, Use the -gl compiler switch instead +% Do not use the \file{lineinfo} unit directly, Use the \var{-gl} switch which +% automatically adds the correct unit for reading the selected type of debugging +% information. The unit that needs to be used depends on the type of +% debug information used when compiling the binary. +parser_e_no_funcret_specified=03227_E_No function result type specified for function "$1" +% The first time you declare a function you have to declare it completely, +% including all parameters and the result type. +parser_e_special_onlygenerics=03228_E_Specialization is only supported for generic types +% Types which are not generics cannot be specialized. +parser_e_no_generics_as_params=03229_E_Generics cannot be used as parameters when specializing generics +% When specializing a generic, only non-generic types can be used as parameters. +parser_e_type_object_constants=03230_E_Constants of objects containing a VMT are not allowed +% If an object requires a VMT either because it contains a constructor or virtual methods, +% it's not allowed to create constants of it. In TP and Delphi mode this is allowed +% for compatibility reasons. +parser_e_label_outside_proc=03231_E_Taking the address of labels defined outside the current scope isn't allowed +% It isn't allowed to take the address of labels outside the +% current procedure. +parser_e_initialized_not_for_external=03233_E_Cannot initialize variables declared as external +% Variables declared as external cannot be initialized with a default value. +parser_e_illegal_function_result=03234_E_Illegal function result type +% Some types like file types cannot be used as function result. +parser_e_no_common_type=03235_E_No common type possible between "$1" and "$2" +% To perform an operation on integers, the compiler converts both operands +% to their common type, which appears to be an invalid type. To determine the +% common type of the operands, the compiler takes the minimum of the minimal values +% of both types, and the maximum of the maximal values of both types. The common +% type is then minimum..maximum. +parser_e_no_generics_as_types=03236_E_Generics without specialization cannot be used as a type for a variable +% Generics must be always specialized before being used as variable type. +parser_w_register_list_ignored=03237_W_Register list is ignored for pure assembler routines +% When using pure assembler routines, the list with modified registers is ignored. +parser_e_implements_must_be_class_or_interface=03238_E_Implements property must have class or interface type +% A property which implements an interface must be of type class or interface. +parser_e_implements_must_have_correct_type=03239_E_Implements-property must implement interface of correct type, found "$1" expected "$2" +% A property which implements an interface actually implements a different interface. +parser_e_implements_must_read_specifier=03240_E_Implements-property must have read specifier +% A property which implements an interface must have at least a read specifier. +parser_e_implements_must_not_have_write_specifier=03241_E_Implements-property must not have write-specifier +% A property which implements an interface may not have a write specifier. +parser_e_implements_must_not_have_stored_specifier=03242_E_Implements-property must not have stored-specifier +% A property which implements an interface may not have a stored specifier. +parser_e_implements_uses_non_implemented_interface=03243_E_Implements-property used on unimplemented interface: "$1" +% The interface which is implemented by a property is not an interface implemented by the class. +parser_e_unsupported_real=03244_E_Floating point not supported for this target +% The compiler parsed a floating point expression, but it is not supported. +parser_e_class_doesnt_implement_interface=03245_E_Class "$1" does not implement interface "$2" +% The delegated interface is not implemented by the class given in the implements clause. +parser_e_class_implements_must_be_interface=03246_E_Type used by implements must be an interface +% The \var{implements} keyword must be followed by an interface type. +parser_e_cant_export_var_different_name=03247_E_Variables cannot be exported with a different name on this target, add the name to the declaration using the "export" directive (variable name: $1, declared export name: $2) +% On most targets it is not possible to change the name under which a variable +% is exported inside the \var{exports} statement of a library. +% In that case, you have to specify the export name at the point where the +% variable is declared, using the \var{export} and \var{alias} directives. +parser_e_weak_external_not_supported=03248_E_Weak external symbols are not supported for the current target +% A "weak external" symbol is a symbol which may or may not exist at (either static +% or dynamic) link time. This concept may not be available (or implemented yet) +% on the current cpu/OS target. +parser_e_forward_mismatch=03249_E_Forward type definition does not match +% Classes and interfaces being defined forward must have the same type +% when being implemented. A forward interface cannot be changed into a class. +parser_n_ignore_lower_visibility=03250_N_Virtual method "$1" has a lower visibility ($2) than parent class $3 ($4) +% The virtual method overrides an method that is declared with a higher visibility. This might give +% unexpected results. E.g., in case the new visibility is private then a call to ``inherited'' in a +% new child class will call the higher-visible method in a parent class and ignores the private method. +parser_e_field_not_allowed_here=03251_E_Fields cannot appear after a method or property definition, start a new visibility section first +% Once a method or property has been defined in a class or object, you cannot define any fields afterwards +% without starting a new visibility section (such as \var{public}, \var{private}, etc.). The reason is +% that otherwise the source code can appear ambiguous to the compiler, since it is possible to use modifiers +% such as \var{default} and \var{register} also as field names. +parser_e_no_local_para_def=03252_E_Parameters or result types cannot contain local type definitions. Use a separate type definition in a type block. +% In Pascal, types are not considered to be identical simply because they are semantically equivalent. +% Two variables or parameters are only considered to be of the same type if they refer to the +% same type definition. +% As a result, it is not allowed to define new types inside parameter lists, because then it is impossible to +% refer to the same type definition in the procedure headers of the interface and implementation of a unit +% (both procedure headers would define a separate type). Keep in mind that expressions such as +% ``file of byte'' or ``string[50]'' also define a new type. +parser_e_abstract_and_sealed_conflict=03253_E_ABSTRACT and SEALED conflict +% ABSTRACT and SEALED cannot be used together in one declaration +parser_e_sealed_descendant=03254_E_Cannot create a descendant of the sealed class "$1" +% Sealed means that class cannot be derived by another class. +parser_e_sealed_class_cannot_have_abstract_methods=03255_E_SEALED class cannot have an ABSTRACT method +% Sealed means that class cannot be derived. Therefore no one class is able to override an abstract method in a sealed class. +parser_e_only_virtual_methods_final=03256_E_Only virtual methods can be final +% You are declaring a method as final, when it is not declared to be +% virtual. +parser_e_final_can_no_be_overridden=03257_E_Final method cannot be overridden: "$1" +% You are trying to \var{override} a virtual method of a parent class that does +% not exist. +parser_e_multiple_messages=03258_E_Only one message can be used per method. +% It is not possible to associate multiple messages with a single method. +parser_e_invalid_enumerator_identifier=03259_E_Invalid enumerator identifier: "$1" +% Only "MoveNext" and "Current" enumerator identifiers are supported. +parser_e_enumerator_identifier_required=03260_E_Enumerator identifier required +% "MoveNext" or "Current" identifier must follow the \var{enumerator} modifier. +parser_e_enumerator_movenext_is_not_valid=03261_E_Enumerator MoveNext pattern method is not valid. Method must be a function with the Boolean return type and no required arguments. +% "MoveNext" enumerator pattern method must be a function with Boolean return type and no required arguments +parser_e_enumerator_current_is_not_valid=03262_E_Enumerator Current pattern property is not valid. Property must have a getter. +% "Current" enumerator pattern property must have a getter +parser_e_only_one_enumerator_movenext=03263_E_Only one enumerator MoveNext method is allowed per class/object +% Class or Object can have only one enumerator MoveNext declaration. +parser_e_only_one_enumerator_current=03264_E_Only one enumerator Current property is allowed per class/object +% Class or Object can have only one enumerator Current declaration. +parser_e_for_in_loop_cannot_be_used_for_the_type=03265_E_For in loop cannot be used for the type "$1" +% For in loop can be used not for all types. For example it cannot be used for the enumerations with jumps. +parser_e_objc_requires_msgstr=03266_E_Objective-C messages require their Objective-C selector name to be specified using the "message" directive. +% Objective-C messages require their Objective-C name (selector name) to be specified using the \var{message `someName:'} procedure directive. +% While bindings to other languages automatically generate such names based on the identifier you use (by replacing +% all underscores with colons), this is unsafe since nothing prevents an Objective-C method name to contain actual +% colons. +parser_e_objc_no_constructor_destructor=03267_E_Objective-C does not have formal constructors nor destructors. Use the alloc, initXXX and dealloc messages. +% The Objective-C language does not have any constructors or destructors. While there are some messages with a similar +% purpose (such as \var{init} and \var{dealloc}), these cannot be identified using automatic parsers and do not +% guarantee anything like Pascal constructors/destructors (e.g., you have to take care of only calling ``designated'' +% inherited ``constructors''). For these reasons, we have opted to follow the standard Objective-C patterns for +% instance creation/destruction. +parser_e_message_string_too_long=03268_E_Message name is too long (max. 255 characters) +% Due to compiler implementation reasons, message names are currently limited to 255 characters. +parser_e_objc_message_name_too_long=03269_E_Objective-C message symbol name for "$1" is too long +% Due to compiler implementation reasons, mangled message names (i.e., the symbol names used in the assembler +% code) are currently limited to 255 characters. +parser_h_no_objc_parent=03270_H_Defining a new Objective-C root class. To derive from another root class (e.g., NSObject), specify it as the parent class. +% If no parent class is specified for an Object Pascal class, then it automatically derives from TObject. +% Objective-C classes however do not automatically derive from NSObject, because one can have multiple +% root classes in Objective-C. For example, in the Cocoa framework both NSObject and NSProxy are root classes. +% Therefore, you have to explicitly define a parent class (such as NSObject) if you want to derive your +% Objective-C class from it. +parser_e_no_objc_published=03271_E_Objective-C classes cannot have published sections. +% In Object Pascal, ``published'' determines whether or not RTTI is generated. Since the Objective-C runtime always needs +% RTTI for everything, this specified does not make sense for Objective-C classes. +parser_f_need_objc=03272_F_This module requires an Objective-C mode switch to be compiled +% This error indicates the use of Objective-C language features without an Objective-C mode switch +% active. Enable one via the -M command line switch, or the {\$modeswitch x} directive. +parser_e_must_use_override=03273_E_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1) +parser_h_should_use_override=03274_H_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1). +% It is not possible to \var{reintroduce} methods in Objective-C or Java like in Object Pascal. Methods with the same +% name always map to the same virtual method entry. In order to make this clear in the source code, +% the compiler always requires the \var{override} directive to be specified when implementing overriding +% Objective-C or Java methods in Pascal. If the implementation is external, this rule is relaxed because Objective-C and Java +% do not have any \var{override}-style keyword (since it's the default and only behaviour in these languages), +% which makes it hard for automated header conversion tools to include it everywhere. +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory in case of Objective-C. +parser_e_objc_message_name_changed=03275_E_Message name "$1" in inherited class is different from message name "$2" in current class. +% An overriding Objective-C method cannot have a different message name than an inherited method. The reason +% is that these message names uniquely define the message to the Objective-C runtime, which means that +% giving them a different message name breaks the ``override'' semantics. +parser_e_unique_unsupported=03276_E_It is not yet possible to make unique copies of Objective-C or Java types +% Duplicating an Objective-C or Java type using \var{type x = type y;} is not yet supported. You may be able to +% obtain the desired effect using \var{type x = objcclass(y) end;} resp.{} \var{type x = class(y) end;} instead. +parser_e_no_category_as_types=03277_E_Objective-C categories and Object Pascal class helpers cannot be used as types +% It is not possible to declare a variable as an instance of an Objective-C +% category or an Object Pascal class helper. A category/class helper adds +% methods to the scope of an existing class, but does not define a type by +% itself. An exception of this rule is when inheriting an Object Pascal class +% helper from another class helper. +parser_e_no_category_override=03278_E_Categories do not override, but replace methods. Use "reintroduce" instead. +parser_e_must_use_reintroduce_objc=03279_E_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +parser_h_should_use_reintroduce_objc=03280_H_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +% A category replaces an existing method in an Objective-C class, rather than that it overrides it. +% Calling an inherited method from an category method will call that method in +% the extended class' parent, not in the extended class itself. The +% replaced method in the original class is basically lost, and can no longer be +% called or referred to. This behaviour corresponds somewhat more closely to +% \var{reintroduce} than to \var{override} (although in case of \var{reintroduce} +% in Object Pascal, hidden methods are still reachable via inherited). +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory. +parser_e_implements_getter_not_default_cc=03281_E_Getter for implements interface must use the target's default calling convention. +% Interface getters are called via a helper in the run time library, and hence +% have to use the default calling convention for the target (\var{register} on +% i386 and x86\_64, \var{stdcall} on other architectures). +parser_e_no_refcounted_typed_file=03282_E_Typed files cannot contain reference-counted types. +% The data in a typed file cannot be of a reference counted type (such as +% \var{ansistring} or a record containing a field that is reference counted). +parser_e_operator_not_overloaded_2=03283_E_Operator is not overloaded: $2 "$1" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_operator_not_overloaded_3=03284_E_Operator is not overloaded: "$1" $2 "$3" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_more_array_elements_expected=03285_E_Expected another $1 array elements +% When declaring a typed constant array, you provided to few elements to initialize the array +parser_e_string_const_too_long=03286_E_String constant too long while ansistrings are disabled +% Only when a piece of code is compiled with ansistrings enabled (\var{\{\$H+\}}), string constants +% longer than 255 characters are allowed. +parser_e_invalid_univ_para=03287_E_Type cannot be used as univ parameter because its size is unknown at compile time: "$1" +% \var{univ} parameters are compatible with all values of the same size, but this +% cannot be checked in case a parameter's size is unknown at compile time. +parser_e_only_one_class_constructor_allowed=03288_E_Only one class constructor can be declared in class: "$1" +% You are trying to declare more than one class constructor but only one class constructor can be declared. +parser_e_only_one_class_destructor_allowed=03289_E_Only one class destructor can be declared in class: "$1" +% You are trying to declare more than one class destructor but only one class destructor can be declared. +parser_e_no_paras_for_class_constructor=03290_E_Class constructors cannot have parameters +% You are declaring a class constructor with a parameter list. Class constructor methods +% cannot have parameters. +parser_e_no_paras_for_class_destructor=03291_E_Class destructors cannot have parameters +% You are declaring a class destructor with a parameter list. Class destructor methods +% cannot have parameters. +parser_f_modeswitch_objc_required=03292_F_This construct requires the \{\$modeswitch objectivec1\} mode switch to be active +% Objective-Pascal constructs are not supported when \{\$modeswitch ObjectiveC1\} +% is not active. +parser_e_widestring_to_ansi_compile_time=03293_E_Unicodechar/string constants cannot be converted to ansi/shortstring at compile-time +% It is not possible to use unicodechar and unicodestring constants in +% constant expressions that have to be converted into an ansistring or shortstring +% at compile time, for example inside typed constants. The reason is that the +% compiler cannot know what the actual ansi encoding will be at run time. +parser_e_objc_enumerator_2_0=03294_E_For-in Objective-Pascal loops require \{\$modeswitch ObjectiveC2\} to be active +% Objective-C ``fast enumeration'' support was added in Objective-C 2.0, and +% hence the appropriate modeswitch has to be activated to expose this feature. +% Note that Objective-C 2.0 programs require Mac OS X 10.5 or later. +parser_e_objc_missing_enumeration_defs=03295_E_The compiler cannot find the NSFastEnumerationProtocol or NSFastEnumerationState type in the CocoaAll unit +% Objective-C for-in loops (fast enumeration) require that the compiler can +% find a unit called CocoaAll that contains definitions for the +% NSFastEnumerationProtocol and NSFastEnumerationState types. If you get this +% error, most likely the compiler is finding and loading an alternate CocoaAll +% unit. +parser_e_no_procvarnested_const=03296_E_Typed constants of the type 'procedure is nested' can only be initialized with NIL and global procedures/functions +% A nested procedural variable consists of two components: the address of the +% procedure/function to call (which is always known at compile time), and also +% a parent frame pointer (which is never known at compile time) in case the +% procedural variable contains a reference to a nested procedure/function. +% Therefore such typed constants can only be initialized with global +% functions/procedures since these do not require a parent frame pointer. +parser_f_no_generic_inside_generic=03297_F_Declaration of generic class inside another generic class is not allowed +% At the moment, scanner supports recording of only one token buffer at the time +% (guarded by internal error 200511173 in tscannerfile.startrecordtokens). +% Since generics are implemented by recording tokens, it is not possible to +% have declaration of generic class inside another generic class. +parser_e_forward_intf_declaration_must_be_resolved=03298_E_Forward declaration "$1" must be resolved before a class can conform to or implement it +% An Objective-C protocol or Java Interface must be fully defined before classes can conform to it. +% This error occurs in the following situation (example for Objective-C, but the same goes for Java interfaces): +% \begin{verbatim} +% Type MyProtocol = objcprotoocl; +% ChildClass = Class(NSObject,MyProtocol) +% ... +% end; +% \end{verbatim} +% where \var{MyProtocol} is declared but not defined. +parser_e_no_record_published=03299_E_Record types cannot have published sections +% Published sections can be used only inside classes. +parser_e_no_destructor_in_records=03300_E_Destructors are not allowed in records or helpers +% Destructor declarations are not allowed in records or helpers. +parser_e_class_methods_only_static_in_records=03301_E_Class methods must be static in records +% Class methods declarations are not allowed in records without static modifier. +% Records have no inheritance and therefore non static class methods have no sense for them. +parser_e_no_parameterless_constructor_in_records=03302_E_Parameterless constructors are not allowed in records or record/type helpers +% Constructor declarations with no arguments are not allowed in records or record/type helpers. +parser_e_at_least_one_argument_must_be_of_type=03303_E_Either the result or at least one parameter must be of type "$1" +% It is required that either the result of the routine or at least one of its parameters be of the specified type. +% For example class operators either take an instance of the structured type in which they are defined, or they return one. +parser_e_cant_use_type_parameters_here=03304_E_Type parameters may require initialization/finalization - cannot be used in variant records +% Type parameters may be specialized with types which (e.g. \var{ansistring}) need initialization/finalization +% code which is implicitly generated by the compiler. +parser_e_externals_no_section=03305_E_Variables being declared as external cannot be in a custom section +% A section directive is not valid for variables being declared as external. +parser_e_section_no_locals=03306_E_Non-static and non-global variables cannot have a section directive +% A variable placed in a custom section is always statically allocated so it must be either a static or global variable. +parser_e_not_allowed_in_helper=03307_E_"$1" is not allowed in helper types +% Some directives and specifiers like "virtual", "dynamic", "override" are not +% allowed inside helper types in mode ObjFPC (they are ignored in mode Delphi), +% because they have no meaning within helpers. Also "abstract" isn't allowed in +% either mode. +parser_e_no_class_constructor_in_helpers=03308_E_Class constructors are not allowed in helpers +% Class constructor declarations are not allowed in helpers. +parser_e_inherited_not_in_record=03309_E_The use of "inherited" is not allowed in a record +% As records don't support inheritance the use of "inherited" is prohibited for +% these as well as for record helpers (in mode "Delphi" only). +parser_e_no_types_in_local_anonymous_records=03310_E_Type declarations are not allowed in local or anonymous records +% Records with types must be defined globally. Types cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_duplicate_implements_clause=03311_E_Duplicate implements clause for interface "$1" +% A class may delegate an interface using the "implements" clause only to a single property. Delegating it multiple times +% is a error. +parser_e_mapping_no_implements=03312_E_Interface "$1" cannot be delegated by "$2", it already has method resolutions +% Method resolution clause maps a method of an interface to a method of the current class. Therefore the current class +% has to implement the interface directly. Delegation is not possible. +parser_e_implements_no_mapping=03313_E_Interface "$1" cannot have method resolutions, "$2" already delegates it +% Method resolution is only possible for interfaces that are implemented directly, not by delegation. +parser_e_invalid_codepage=03314_E_Invalid codepage +% When declaring a string with a given codepage, the range of valid codepages values is limited +% to 0 to 65535. +parser_e_final_only_const_var=03315_E_Only fields (var-sections) and constants can be final in object types +% A final (class) field must be assigned a single value in the (class) constructor, and cannot +% be overwritten afterwards. A final (typed) constant is read-only. +parser_e_final_only_external=03316_E_Final fields are currently only supported for external classes +% Support for final fields in non-external classes requires a full data flow +% analysis implementation in FPC, which it currently still lacks. +parser_e_no_typed_const=03317_E_Typed constants are not allowed here, only formal constants are +% Java interfaces define a namespace in which formal constant can be defined, +% but since they define no storage it is not possible to define typed constants +% in them (those are more or less the same as initialised class fields). +parser_e_java_no_inherited_constructor=03318_E_Constructors are not automatically inherited in the JVM; explicitly add a constructor that calls the inherited one if you need it +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% For compatibility with external Java code, FPC does the same. If you require access to the same +% constructors in a child class, define them in the child class and call the inherited one from +% there. +parser_d_internal_parser_string=03319_D_Parsing internally generated code: $1 +% The compiler sometimes internally constructs Pascal code that is subsequently +% injected into the program. These messages display such code, in order to help +% with debugging errors in them. +parser_e_feature_unsupported_for_vm=03320_E_This language feature is not supported on managed VM targets +% Certain language features are not supported on targets that are managed virtual machines. +parser_e_jvm_invalid_virtual_constructor_call=03321_E_Calling a virtual constructor for the current instance inside another constructor is not possible on the JVM target +% The JVM does not natively support virtual constructor. Unforunately, we are not aware of a way to +% emulate them in a way that makes it possible to support calling virtual constructors +% for the current instance inside another constructor. +parser_e_method_lower_visibility=03322_E_Overriding method "$1" cannot have a lower visibility ($2) than in parent class $3 ($4) +% The JVM does not allow lowering the visibility of an overriding method. +parser_e_nostackframe_without_assembler=03323_E_Procedure/Function declared with call option NOSTACKFRAME but without ASSEMBLER +% nostackframe call modifier is supposed to be used in conjunction with assembler. +parser_e_nostackframe_with_locals=03324_E_Procedure/Function declared with call option NOSTACKFRAME but local stack size is $1 +% nostackframe call modifier used without assembler modifier +% might still generate local stack needs. +parser_e_cannot_generate_property_getter_setter=03325_E_Cannot generate property getter/setter $1 because its name clashes with existing identifier $2 +% Automatically generated getters/setters cannot have the same name as existing +% identifiers, because this may change the behaviour of existing code. +parser_w_overriding_property_getter_setter=03326_W_Automatically generated property getter/setter $1 overrides the same-named getter/setter in class $2 +% Automatically generated property getters/setters on the JVM platform are virtual methods, because +% the JVM does not support non-virtual methods that can be changed in child classes. This means +% that if a child class changes an inherited property definition, the behaviour of that property +% can change compared to native targets since even if a variable is declared as the parent type, +% by calling the virtual method the getter from the child will be used. This is different from +% the behaviour on native targets or when not activating automatically generated setters/getters, +% because in that case only the declared type of a variable influences the property behaviour. +parser_w_case_difference_auto_property_getter_setter_prefix=03327_W_Case mismatch between declared property getter/setter $1 and automatically constructed name $2, not changing declared name +% If a property's specified getter/setter already corresponded to the naming convention specified +% by the automatic getter/setter generation setting except in terms of upper/lowercase, the +% compiler will print a warning because it cannot necessarily change that other declaration itself +% not can it add one using the correct case (it could conflict with the original declaration). +% Manually correct the case of the getter/setter to conform to the desired coding rules. +% \var{TChild} overrides +parser_e_no_consts_in_local_anonymous_records=03328_E_Constants declarations are not allowed in local or anonymous records +% Records with constants must be defined globally. Constants cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_methods_in_local_anonymous_records=03329_E_Method declarations are not allowed in local or anonymous records +% Records with methods must be defined globally. Methods cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_properties_in_local_anonymous_records=03330_E_Property declarations are not allowed in local or anonymous records +% Records with properties must be defined globally. Properties cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_class_in_local_anonymous_records=03331_E_Class member declarations are not allowed in local or anonymous records +% Records with class members must be defined globally. Class members cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_not_allowed_in_record=03332_E_Visibility section "$1" not allowed in records +% The visibility sections \var(protected) and \var(strict protected) are only +% useful together with inheritance. Since records do not support that they are +% forbidden. +parser_e_dir_not_allowed=03333_E_Directive "$1" not allowed here +% This directive is not allowed in the given context. E.g. "static" +% is not allowed for instance methods or class operators. +parser_e_no_assembler_in_generic=03334_E_Assembler blocks not allowed inside generics +% The use of assembler blocks/routines is not allowed inside generics. +parser_e_property_only_sgr=03335_E_Properties can be only static, global or inside structured types +% Properties cannot be declared local, only global, using the static +% directive or inside structured types. +parser_e_overloaded_have_same_mangled_name=03336_E_Overloaded routines have the same mangled name +% Some platforms, such as the JVM platform, encode the parameters in the routine name in +% a prescribed way, and this encoding may map different Pascal types to the same encoded +% (a.k.a.\ ``mangled'') name. This error can only be solved by removing or changing the +% conflicting definitions' parameter declarations or routine names. +parser_e_default_value_val_const=03337_E_Default values can only be specified for value, const and constref parameters +% A default parameter value allows you to not specify a value for this parameter +% when calling the routine, and the compiler will instead pass the specified +% default (constant) value. As a result, default values can only be specified +% for parameters that can accept constant values. +parser_w_ptr_type_ignored=03338_W_Pointer type "$1" ignored +% The specified pointer type modifier is ignored, because it is not supported on +% the current platform. This happens, for example, when a far pointer is +% declared on a non-x86 platform. +parser_e_global_generic_references_static=03339_E_Global Generic template references static symtable +% A generic declared in the interface section of a unit must not reference symbols that belong +% solely to the implementation section of that unit. +parser_u_already_compiled=03340_UL_Unit $1 has been already compiled meanwhile. +% This tells you that the recursive reading of the uses clauses triggered already +% a compilation of the current unit, so the current compilation can be aborted. +% +% +% +% \end{description} +% +# Type Checking +# +# 04123 is the last used one +# +% \section{Type checking errors} +% This section lists all errors that can occur when type checking is +% performed. +% \begin{description} type_e_mismatch=04000_E_Typen stemmen niet overeen % This can happen in many cases: % \begin{itemize} @@ -1197,12 +1706,18 @@ type_e_array_required=04033_E_ARRAY type verwacht % If you are accessing a variable using an index '[]' then % the type must be an array. In FPC mode also a pointer is allowed. type_e_interface_type_expected=04034_E_Interface type verwacht, maar kreeg "$1" -type_w_mixed_signed_unsigned=04035_W_Mengen van mogelijk negatieve uitdrukkingen en longwords geeft een 64-bits resultaat +% The compiler expected to encounter an interface type name, but got something else. +% The following code would produce this error: +% \begin{verbatim} +% Type +% TMyStream = Class(TStream,Integer) +% \end{verbatim} +type_h_mixed_signed_unsigned=04035_H_Mixing signed expressions and longwords gives a 64bit result % If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), % or if you have overflow and/or range checking turned on and use an arithmetic % expression (+, -, *, div, mod) in which both signed numbers and longwords appear, -% then everything has to be evaluated in 64bit which is slower than normal -% 32bit arithmetic. You can avoid this by typecasting one operand so it +% then everything has to be evaluated in 64-bit arithmetic which is slower than normal +% 32-bit arithmetic. You can avoid this by typecasting one operand so it % matches the result type of the other one. type_w_mixed_signed_unsigned2=04036_W_Mengen van mogelijk negatieve uitdrukkingen en cardinals kan tot range check fouten leiden % If you use a binary operator (and, or, xor) and one of @@ -1228,18 +1743,23 @@ type_w_classes_not_related=04040_W_Klasse types "$1" en "$2" zijn niet verwant % There is a typecast from one class or object to another while the class/object % are not related. This will probably lead to errors type_e_class_or_interface_type_expected=04041_E_Klasse of interface type verwacht, maar kreeg "$1" +% The compiler expected a class or interface name, but got another type or identifier. type_e_type_is_not_completly_defined=04042_E_Type "$1" is niet volledig gedefinieerd +% This error occurs when a type is not complete: i.e. a pointer type which points to +% an undefined type. type_w_string_too_long=04043_W_String constante heeft meer karakters dan de lengte van een shortstring % The size of the constant string, which is assigned to a shortstring, % is longer than the maximum size of the shortstring -type_w_signed_unsigned_always_false=04044_W_De vergelijking is steeds onwaar omwille van de interval waarden -% There is a comparison between an unsigned value and a signed constant which is -% less than zero. Because of type promotion, the statement will always evaluate to -% false. Exlicitly typecast the constant to the correct range to avoid this problem. -type_w_signed_unsigned_always_true=04045_W_e vergelijking is steeds waar omwille van de interval waarden -% There is a comparison between an unsigned value and a signed constant which is -% less than zero. Because of type promotion, the statement will always evaluate to -% true. Exlicitly typecast the constant to the correct range to avoid this problem. +type_w_comparison_always_false=04044_W_Comparison might be always false due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% false. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. +type_w_comparison_always_true=04045_W_Comparison might be always true due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% true. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. type_w_instance_with_abstract=04046_W_Constructie van een klasse "$1" met abstracte methoden % An instance of a class is created which contains non-implemented abstract % methods. This will probably lead to a runtime error 211 in the code if that @@ -1258,9 +1778,9 @@ type_h_smaller_possible_range_check=04049_H_Grootte-fout voor type, mogelijk ver % this may cause a range-check error, or may lead to possible loss of data. type_e_cant_take_address_of_abstract_method=04050_E_Het adres van een abstracte methode kan niet opgevraagd worden % An abstract method has no body, so the address of an abstract method can't be taken. -type_e_operator_not_allowed=04051_E_De operator kan niet gebruikt worden op dit type operand -% You are trying an operator that is not available for the type of the -% operands +type_e_assignment_not_allowed=04051_E_Assignments to formal parameters and open arrays are not possible +% You are trying to assign a value to a formal (untyped var, const or out) +% parameter, or to an open array. type_e_constant_expr_expected=04052_E_Constante uitdrukking verwacht % The compiler expects an constant expression, but gets a variable expression. type_e_operator_not_supported_for_types=04053_E_Operatie "$1" niet ondersteund voor types "$2" en "$3" @@ -1300,6 +1820,206 @@ type_e_class_or_cominterface_type_expected=04060_E_Verwachtte een classe- of COM % This section lists all the messages that concern the handling of symbols. % This means all things that have to do with procedure and variable names. % \begin{description} +type_e_no_const_packed_array=04061_E_Constant packed arrays are not yet supported +% You cannot declare a (bit)packed array as a typed constant. +type_e_got_expected_packed_array=04062_E_Incompatible type for arg no. $1: Got "$2" expected "(Bit)Packed Array" +% The compiler expects a (bit)packed array as the specified parameter. +type_e_got_expected_unpacked_array=04063_E_Incompatible type for arg no. $1: Got "$2" expected "(not packed) Array" +% The compiler expects a regular (i.e., not packed) array as the specified parameter. +type_e_no_packed_inittable=04064_E_Elements of packed arrays cannot be of a type which need to be initialised +% Support for packed arrays of types that need initialization +% (such as ansistrings, or records which contain ansistrings) is not yet implemented. +type_e_no_const_packed_record=04065_E_Constant packed records and objects are not yet supported +% You cannot declare a (bit)packed array as a typed constant at this time. +type_w_untyped_arithmetic_unportable=04066_W_Arithmetic "$1" on untyped pointer is unportable to {$T+}, suggest typecast +% Addition/subtraction from an untyped pointer may work differently in \var{\{\$T+\}}. +% Use a typecast to a typed pointer. +type_e_cant_take_address_of_local_subroutine=04076_E_Can't take address of a subroutine marked as local +% The address of a subroutine marked as local cannot be taken. +type_e_cant_export_local=04077_E_Can't export subroutine marked as local from a unit +% A subroutine marked as local cannot be exported from a unit. +type_e_not_automatable=04078_E_Type is not automatable: "$1" +% Only byte, integer, longint, smallint, currency, single, double, ansistring, +% widestring, tdatetime, variant, olevariant, wordbool and all interfaces are automatable. +type_h_convert_add_operands_to_prevent_overflow=04079_H_Converting the operands to "$1" before doing the add could prevent overflow errors. +% Adding two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the addition. +type_h_convert_sub_operands_to_prevent_overflow=04080_H_Converting the operands to "$1" before doing the subtract could prevent overflow errors. +% Subtracting two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the subtraction. +type_h_convert_mul_operands_to_prevent_overflow=04081_H_Converting the operands to "$1" before doing the multiply could prevent overflow errors. +% Multiplying two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the multiplication. +type_w_pointer_to_signed=04082_W_Converting pointers to signed integers may result in wrong comparison results and range errors, use an unsigned type instead. +% The virtual address space on 32-bit machines runs from \$00000000 to \$ffffffff. +% Many operating systems allow you to allocate memory above \$80000000. +% For example both \windows and \linux allow pointers in the range \$0000000 to \$bfffffff. +% If you convert pointers to signed types, this can cause overflow and range check errors, +% but also \$80000000 < \$7fffffff. This can cause random errors in code like "if p>q". +type_e_interface_has_no_guid=04083_E_Interface type $1 has no valid GUID +% When applying the as-operator to an interface or class, the desired interface (i.e. the right operand of the +% as-operator) must have a valid GUID. +type_e_invalid_objc_selector_name=04084_E_Invalid selector name "$1" +% An Objective-C selector cannot be empty, must be a valid identifier or a single colon, +% and if it contains at least one colon it must also end in one. +type_e_expected_objc_method_but_got=04085_E_Expected Objective-C method, but got $1 +% A selector can only be created for Objective-C methods, not for any other kind +% of procedure/function/method. +type_e_expected_objc_method=04086_E_Expected Objective-C method or constant method name +% A selector can only be created for Objective-C methods, either by specifying +% the name using a string constant, or by using an Objective-C method identifier +% that is visible in the current scope. +type_e_no_type_info=04087_E_No type info available for this type +% Type information is not generated for some types, such as enumerations with gaps +% in their value range (this includes enumerations whose lower bound is different +% from zero). +type_e_ordinal_or_string_expr_expected=04088_E_Ordinal or string expression expected +% The expression must be an ordinal or string type. +type_e_string_expr_expected=04089_E_String expression expected +% The expression must be a string type. +type_w_zero_to_nil=04090_W_Converting 0 to NIL +% Use NIL rather than 0 when initialising a pointer. +type_e_protocol_type_expected=04091_E_Objective-C protocol type expected, but got "$1" +% The compiler expected a protocol type name, but found something else. +type_e_objc_type_unsupported=04092_E_The type "$1" is not supported for interaction with the Objective-C and the blocks runtime. +% Objective-C and Blocks make extensive use of run time type information (RTTI). This format +% is defined by the maintainers of the run time and can therefore not be adapted +% to all possible Object Pascal types. In particular, types that depend on +% reference counting by the compiler (such as ansistrings and certain kinds of +% interfaces) cannot be used as fields of Objective-C classes, cannot be +% directly passed to Objective-C methods or Blocks, and cannot be encoded using \var{objc\_encode}. +type_e_class_or_objcclass_type_expected=04093_E_Class or objcclass type expected, but got "$1" +% It is only possible to create class reference types of \var{class} and \var{objcclass} +type_e_objcclass_type_expected=04094_E_Objcclass type expected +% The compiler expected an \var{objcclass} type +type_w_procvar_univ_conflicting_para=04095_W_Coerced univ parameter type in procedural variable may cause crash or memory corruption: $1 to $2 +% \var{univ} parameters are implicitly compatible with all types of the same size, +% also in procedural variable definitions. That means that the following code is +% legal, because \var{single} and \var{longint} have the same size: +% \begin{verbatim} +% {$mode macpas} +% Type +% TIntProc = procedure (l: univ longint); +% +% procedure test(s: single); +% begin +% writeln(s); +% end; +% +% var +% p: TIntProc; +% begin +% p:=test; +% p(4); +% end. +% \end{verbatim} +% This code may however crash on platforms that pass integers in registers and +% floating point values on the stack, because then the stack will be unbalanced. +% Note that this warning will not flag all potentially dangerous situations. +% when \var{test} returns. +type_e_generics_cannot_reference_itself=04096_E_Type parameters of specializations of generics cannot reference the currently specialized type +% Recursive specializations of generics like \var{Type MyType = specialize MyGeneric;} are not possible. +type_e_type_parameters_are_not_allowed_here=04097_E_Type parameters are not allowed on non-generic class/record/object procedure or function +% Type parameters are only allowed for methods of generic classes, records or objects +type_e_generic_declaration_does_not_match=04098_E_Generic declaration of "$1" differs from previous declaration +% Generic declaration does not match the previous declaration +type_e_helper_type_expected=04099_E_Helper type expected +% The compiler expected a \var{class helper} type. +type_e_record_type_expected=04100_E_Record type expected +% The compiler expected a \var{record} type. +type_e_class_helper_must_extend_subclass=04101_E_Derived class helper must extend a subclass of "$1" or the class itself +% If a class helper inherits from another class helper the extended class must +% extend either the same class as the parent class helper or a subclass of it +type_e_record_helper_must_extend_same_record=04102_E_Derived record or type helper must extend "$1" +% If a record helper inherits from another record helper it must extend the same +% record that the parent record helper extended. +type_e_procedures_return_no_value=04103_E_Invalid assignment, procedures return no value +% This error occurs when one tries to assign the result of a procedure or destructor call. +% A procedure or destructor returns no value so this is not +% possible. +type_w_implicit_string_cast=04104_W_Implicit string type conversion from "$1" to "$2" +% An implicit type conversion from an ansi string type to an unicode string type is +% encountered. To avoid this warning perform an explicit type conversion. +type_w_implicit_string_cast_loss=04105_W_Implicit string type conversion with potential data loss from "$1" to "$2" +% An implicit type conversion from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. +type_w_explicit_string_cast=04106_-W_Explicit string typecast from "$1" to "$2" +% An explicit typecast from an ansi string type to an unicode string type is +% encountered. This warning is off by default. You can turn it on to see all suspicious string conversions. +type_w_explicit_string_cast_loss=04107_-W_Explicit string typecast with potential data loss from "$1" to "$2" +% An explicit typecast from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. This warning is off by default. You can turn it on to see all the places with lossy string +% conversions. +type_w_unicode_data_loss=04108_W_Unicode constant cast with potential data loss +% Conversion from a WideChar to AnsiChar can lose data since now all unicode characters may be represented in the current +% system codepage +% You can nest function definitions only 31 levels deep. +type_e_range_check_error_bounds=04109_E_range check error while evaluating constants ($1 must be between $2 and $3) +type_w_range_check_error_bounds=04110_W_range check error while evaluating constants ($1 must be between $2 and $3) +% The constants are outside their allowed range. +type_e_type_not_allowed_for_default=04111_E_This type is not supported for the Default() intrinsic +% Some types like for example Text and File Of X are not supported by the Default intrinsic. +type_e_java_class_method_not_static_virtual=04112_E_JVM virtual class methods cannot be static +% Virtual class methods cannot be static when targeting the JVM platform, because +% the self pointer is required for correct dispatching. +type_e_invalid_final_assignment=04113_E_Final (class) fields can only be assigned in their class' (class) constructor +% It is only possible to assign a value to a final (class) field inside a (class) constructor of its owning class. +type_e_no_managed_formal_assign_typecast=04114_E_It is not possible to typecast untyped parameters on managed platforms, simply assign a value to them instead. +% On managed platforms, untyped parameters are translated by the compiler into +% the equivalent of \var{var x: BaseClassType}. Non-class-based types passed to +% such parameters are automatically wrapped (or boxed) in a class, and after the +% call the potentially modified value is assigned back to the original variable. +% On the caller side, changing untyped var/out parameters happens by simply assigning +% values to them (either class-based or primitive ones). On the caller side, +% they will be extracted and if their type does not match the original variable's, +% an exception will be raised. +type_e_no_managed_assign_generic_typecast=04115_E_The assignment side of an expression cannot be typecasted to a supertype on managed platforms +% Managed platforms guarantee type safety at the bytecode level. This means that the virtual machine must be able +% to statically determine that no type-unsafe assignments or operations occur. By assigning a parent class type to a +% variable of a child type by typecasting the assignment side to the parent class type, the type safety would no +% longer be guaranteed and the generated code would fail verification at run time time. +type_w_interface_lower_visibility=04116_-W_The interface method "$1" raises the visibility of "$2" to public when accessed via an interface instance +type_e_interface_lower_visibility=04117_E_The interface method "$1" has a higher visibility (public) than "$2" +% All methods in an interface have always public visibility. That means that if +% an interface method is implemented using a (strict) protected or private method, +% this method is actually publicly accessible via the interface. On the JVM +% target this situation results in an error because the JVM rejects such +% attempts to circumvent the visibility rules. On other targets this is a +% warning that is disabled by default because such situations are common +% practice, but it can be enabled in case you are concerned with keeping your +% code compilable for the JVM target. +type_e_typeof_requires_vmt=04118_E_TYPEOF can only be used on object types with VMT +% Typeof() intrinsic returns pointer to VMT of its argument. It cannot be used on object types that do not have VMT. +type_e_invalid_default_value=04119_E_It is not possible to define a default value for a parameter of type "$1" +% Parameters declared as structured types, such as files, variants, non-dynamic +% arrays and TP-style objects, cannot have a default value. +type_e_type_not_allowed_for_type_helper=04120_E_Type "$1" cannot be extended by a type helper +% Types like procedural variables cannot be extended by type helpers +type_e_procedure_must_be_far=04121_E_Procedure or function must be far in order to allow taking its address: "$1" +% In certain i8086 memory models (medium, large and huge), procedures and functions +% have to be declared 'far' in order to allow their address to be taken. +type_w_instance_abstract_class=04122_W_Creating an instance of abstract class "$1" +% The specified class is declared as \var{abstract} and thus no instance of this class +% should be created. This is merely a warning for Delphi compatibility. +type_e_function_reference_kind=04123_E_Subroutine references cannot be declared as "of object" or "is nested", they can always refer to any kind of subroutine +% Subroutine references can refer to any kind of subroutine and hence do not +% require specialisation for methods or nested subroutines. +type_e_anonymous_function_unsupported=04999_E_Function references are not yet supported, only blocks (add "cdecl;" at the end) +% Remove this error message once Delphi-style anonymous are implemented. It has +% number 4999 so as not to result in a gap in the error message numbering once +% it's removed. +% \end{description} +# +# Symtable +# +# 05095 is the last used one +# +% \section{Symbol handling} +% This section lists all the messages that concern the handling of symbols. +% This means all things that have to do with procedure and variable names. +% \begin{description} sym_e_id_not_found=05000_E_Symbool niet gevonden $1 % The compiler doesn't know this symbol. Usually happens when you misspel % the name of a variable or procedure, or when you forgot to declare a @@ -1374,8 +2094,11 @@ sym_n_local_identifier_only_set=05027_N_Lokale variabele $1 gedeclareerd maar ni sym_h_local_symbol_not_used=05028_H_Lokaal $1 $2 is niet gebruikt % A local symbol is never used. sym_n_private_identifier_not_used=05029_N_Privaat veld $1.$2 wordt niet gebruikt +% The indicated private field is defined, but is never used in the code. sym_n_private_identifier_only_set=05030_N_Privaat veld $1.$2 gedeclareerd maar niet gebruikt. +% The indicated private field is declared and assigned to, but never read. sym_n_private_method_not_used=05031_N_Private methode $1.$2 wordt nooit gebruikt. +% The indicated private method is declared but is never used in the code. sym_e_set_expected=05032_E_Set type verwacht % The variable or expression is not of type \var{set}. This happens in an % \var{in} statement. @@ -1461,6 +2184,165 @@ sym_w_identifier_only_read=05061_W_Variabele "$1" wordt gelezen, maar % This section lists all messages that can be displayed if the code % generator encounters an error condition. % \begin{description} +sym_h_abstract_method_list=05062_H_Found abstract method: $1 +% When getting a warning about constructing a class/object with abstract methods +% you get this hint to assist you in finding the affected method. +sym_w_experimental_symbol=05063_W_Symbol "$1" is experimental +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{experimental} is used. Experimental symbols +% might disappear or change semantics in future versions. Usage of this symbol +% should be avoided as much as possible. +sym_w_forward_not_resolved=05064_W_Forward declaration "$1" not resolved, assumed external +% This happens if you declare a function in the \var{interface} of a unit in macpas mode, +% but do not implement it. +sym_w_library_symbol=05065_W_Symbol "$1" is belongs to a library +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{library} is used. Library symbols may not be +% available in other libraries. +sym_w_deprecated_symbol_with_msg=05066_W_Symbol "$1" is deprecated: "$2" +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{deprecated} is used. Deprecated symbols may no longer +% be available in newer versions of the unit / library. Use of this symbol +% should be avoided as much as possible. +sym_e_no_enumerator=05067_E_Cannot find an enumerator for the type "$1" +% This means that compiler cannot find an appropriate enumerator to use in the for-in loop. +% To create an enumerator you need to define an operator enumerator or add a public or published +% GetEnumerator method to the class or object definition. +sym_e_no_enumerator_move=05068_E_Cannot find a "MoveNext" method in enumerator "$1" +% This means that compiler cannot find a public MoveNext method with the Boolean return type in +% the enumerator class or object definition. +sym_e_no_enumerator_current=05069_E_Cannot find a "Current" property in enumerator "$1" +% This means that compiler cannot find a public Current property in the enumerator class or object +% definition. +sym_e_objc_para_mismatch=05070_E_Mismatch between number of declared parameters and number of colons in message string. +% In Objective-C, a message name automatically contains as many colons as parameters. +% In order to prevent mistakes when specifying the message name in FPC, the compiler +% checks whether this is also the case here. Note that in case of messages taking a +% variable number of arguments translated to FPC via an \var{array of const} parameter, +% this final \var{array of const} parameter is not counted. Neither are the hidden +% \var{self} and \var{\_cmd} parameters. +sym_n_private_type_not_used=05071_N_Private type "$1.$2" never used +% The indicated private type is declared but is never used in the code. +sym_n_private_const_not_used=05072_N_Private const "$1.$2" never used +% The indicated private const is declared but is never used in the code. +sym_n_private_property_not_used=05073_N_Private property "$1.$2" never used +% The indicated private property is declared but is never used in the code. +sym_w_deprecated_unit=05074_W_Unit "$1" is deprecated +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_deprecated_unit_with_msg=05075_W_Unit "$1" is deprecated: "$2" +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_non_portable_unit=05076_W_Unit "$1" is not portable +% This means that a unit which is +% declared as \var{platform} is used. This unit use +% and availability is platform specific and should not be used +% if the source code must be portable. +sym_w_library_unit=05077_W_Unit "$1" is belongs to a library +% This means that a unit which is +% declared as \var{library} is used. Library units may not be +% available in other libraries. +sym_w_non_implemented_unit=05078_W_Unit "$1" is not implemented +% This means that a unit which is +% declared as \var{unimplemented} is used. This unit is defined, +% but is not yet implemented on this specific platform. +sym_w_experimental_unit=05079_W_Unit "$1" is experimental +% This means that a unit which is +% declared as \var{experimental} is used. Experimental units +% might disappear or change semantics in future versions. Usage of this unit +% should be avoided as much as possible. +sym_e_formal_class_not_resolved=05080_E_No complete definition of the formally declared class "$1" is in scope +% Objecive-C and Java classes can be imported formally, without using the unit in which it is fully declared. +% This enables making forward references to such classes and breaking circular dependencies amongst units. +% However, as soon as you wish to actually do something with an entity of this class type (such as +% access one of its fields, send a message to it, or use it to inherit from), the compiler requires the full definition +% of the class to be in scope. +sym_e_interprocgoto_into_init_final_code_not_allowed=05081_E_Gotos into initialization or finalization blocks of units are not allowed +% Gotos into initialization or finalization blockse of units are not allowed. +sym_e_external_class_name_mismatch1=05082_E_Invalid external name "$1" for formal class "$2" +sym_e_external_class_name_mismatch2=05083_E_Complete class definition with external name "$1" here +% When a class is declared using a formal external definition, the actual external +% definition (if any) must specify the same external name as the formal definition +% (since both definitions refer to the same actual class type). +sym_w_library_overload=05084_W_Possible library conflict: symbol "$1" from library "$2" also found in library "$3" +% Some OS do not have library specific namespaces, for those +% OS, the function declared as "external 'libname' name 'funcname'", +% the 'libname' part is only a hint, funcname might also be loaded +% by another library. This warning appears if 'funcname' is used twice +% with two different library names. +sym_e_duplicate_id_create_java_constructor=05085_E_Cannot add implicit constructor 'Create' because identifier already used by "$1" +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. In Java, constructors are nameless, +% but in FPC they are all called ``Create''. Therefore, if you do not add a constructor to +% a Java class and furthermore use the ``Create'' identifier for another entity (e.g., a field, +% or a parameterless method), the compiler cannot satisfy this requirement. +sym_e_no_matching_inherited_parameterless_constructor=05086_E_Cannot generate default constructor for class, because parent has no parameterless constructor +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. This compiler must then call +% the parameterless constructor from the parent class inside this added constructor. +% This is however impossible if the parent class does not declare such a constructor. +% In this case you must add a valid constructor yourself. +sym_d_adding_helper_for=05087_D_Adding helper for $1 +% A helper for the mentioned type is added to the current scope +sym_e_param_list=05088_E_Found declaration: $1 +% This message shows all overloaded declarations in case of an error. +sym_w_uninitialized_managed_local_variable=05089_W_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_uninitialized_managed_variable=05090_W_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_local_variable=05091_H_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. it did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_variable=05092_H_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. t did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_managed_function_result_uninitialized=05093_W_function result variable of a managed type does not seem to initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. before it appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_managed_function_result_uninitialized=05094_H_Function result variable of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. it appears in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_duplicate_id=05095_W_Duplicate identifier "$1" +% The identifier was already declared in an Objective-C category that's in the +% same scope as the current identifier. This is a warning instead of an error, +% because while this hides the identifier from the category, there are often +% many unused categories in scope. +% \end{description} +# +# Codegenerator +# +# 06049 is the last used one +# +% \section{Code generator messages} +% This section lists all messages that can be displayed if the code +% generator encounters an error condition. +% \begin{description} cg_e_parasize_too_big=06009_E_Parameters gebruiken meer dan 64 kilobyte % The I386 processor limits the parameter list to 65535 bytes (the \var{RET} % instruction causes this) @@ -1576,6 +2458,49 @@ cg_f_unknown_compilerproc=06046_F_Ongekende schakel-aanduiding "$1". Kijk na of % you're using doesn't match the used compiler. If you changed the runtime library this error means % that you removed a subroutine which the compiler needs for internal use. % \end{description} +cg_f_unknown_system_type=06047_F_Cannot find system type "$1". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_h_inherited_ignored=06048_H_Inherited call to abstract method ignored +% This message appears only in Delphi mode when you call an abstract method +% of a parent class via \var{inherited;}. The call is then ignored. +cg_e_goto_label_not_found=06049_E_Goto label "$1" not defined or optimized away +% The label used in the goto definition is not defined or optimized away by the +% unreachable code elemination. +cg_f_unknown_type_in_unit=06050_F_Cannot find type "$1" in unit "$2". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_e_interprocedural_goto_only_to_outer_scope_allowed=06051_E_Interprocedural gotos are allowed only to outer subroutines +% Gotos between subroutines are only allowed if the goto jumps from an inner to an outer subroutine or +% from a subroutine to the main program +cg_e_labels_cannot_defined_outside_declaration_scope=06052_E_Label must be defined in the same scope as it is declared +% In ISO mode, labels must be defined in the same scope as they are declared. +cg_e_goto_across_procedures_with_exceptions_not_allowed=06053_E_Leaving procedures containing explicit or implicit exceptions frames using goto is not allowed +% Non-local gotos might not be used to leave procedures using exceptions either implicitly or explicitly. Procedures +% which use automated types like ansistrings or class constructurs are affected by this too. +cg_e_mod_only_defined_for_pos_quotient=06054_E_In ISO mode, the mod operator is defined only for positive quotient +% In ISO pascal, only positive values are allowed for the quotient: \var{n mod m} is only valid if \var{m>0}. +cg_d_autoinlining=06055_DL_Auto inlining: $1 +% Due to auto inlining turned on, the compiler auto inlines this subroutine. +cg_e_function_not_support_by_selected_instruction_set=06056_E_The function used, is not supported by the selected instruction set: $1 +% Some functions cannot be implemented efficiently for certain instruction sets, one example is fused multiply/add. +% To avoid very inefficient code, the compiler complains in this case, so either select another instruction set +% or replace the function call by alternative code +cg_f_max_units_reached=06057_F_Maximum number of units ($1) reached for the current target +% Depending of target architecture, the number of units is limited. This limit +% has been reached. A unit counts only if it contains initialization or finalization count. +% +% \end{description} +# EndOfTeX +# +# Assembler reader +# +# 07125 is the last used one +# asmr_d_start_reading=07000_DL_Begonnen met verwerken van $1 assembler % This informs you that an assembler block is being parsed asmr_d_finish_reading=07001_DL_Gedaan met verwerken van $1 assembler @@ -1796,6 +2721,96 @@ asmr_e_illegal_shifterop_syntax=07099_E_Syntax fout bij het bepalen van een shif % orr r2,r2,r2,lsl #8 % end; % \end{verbatim} +asmr_e_packed_element=07100_E_Address of packed component is not at a byte boundary +% Packed components (record fields and array elements) may start at an arbitrary +% bit inside a byte. On CPU which do not support bit-addressable memory (which +% includes all currently supported CPUs by FPC) you will therefore get an error +% message when trying to index arrays with elements whose size is not a multiple +% of 8 bits. The same goes for accessing record fields with such an address. +% multiple of 8 bits. +asmr_w_unable_to_determine_reference_size_using_byte=07101_W_No size specified and unable to determine the size of the operands, using BYTE as default +% You should specify explicitly a size for the reference, because +% the compiler is unable to determine what size (byte,word,dword,etc.) it +% should use for the reference. This warning is only used in Delphi mode where +% it falls back to use BYTE as default. +asmr_w_no_direct_ebp_for_parameter=07102_W_Use of +offset(%ebp) for parameters invalid here +% Using direct 8(%ebp) reference for function/procedure parameters is invalid +% if parameters are in registers. +asmr_w_direct_ebp_for_parameter_regcall=07103_W_Use of +offset(%ebp) is not compatible with regcall convention +% Using direct 8(%ebp) reference for function/procedure parameters is invalid +% if parameters are in registers. +asmr_w_direct_ebp_neg_offset=07104_W_Use of -offset(%ebp) is not recommended for local variable access +% Using -8(%ebp) to access a local variable is not recommended +asmr_w_direct_esp_neg_offset=07105_W_Use of -offset(%esp), access may cause a crash or value may be lost +% Using -8(%esp) to access a local stack is not recommended, as +% this stack portion can be overwritten by any function calls or interrupts. +asmr_e_no_vmtoffset_possible=07106_E_VMTOffset must be used in combination with a virtual method, and "$1" is not virtual +% Only virtual methods have VMT offsets +asmr_e_need_pic_ref=07107_E_Generating PIC, but reference is not PIC-safe +% The compiler has been configured to generate position-independent code +% (PIC), but there are position-dependent references in the current +% handwritten assembler instruction. +asmr_e_mixing_regtypes=07108_E_All registers in a register set must be of the same kind and width +% Instructions on the ARM architecture that take a register set as argument require that all registers +% in this set are of the same kind (e.g., integer, vfp) and width (e.g., single precision, double precision). +asmr_e_empty_regset=07109_E_A register set cannot be empty +% Instructions on the ARM architecture that take a register set as argument require that such a set +% contains at least one register. +asmr_w_useless_got_for_local=07110_W_@GOTPCREL is useless and potentially dangerous for local symbols +% The use of @GOTPCREL supposes an extra indirection that is +% not present if the symbol is local, which might lead to wrong assembler code +asmr_w_general_segment_with_constant=07111_W_Constant with general purpose segment register +% General purpose register should not have constant offsets +% as OS memory allocation might not be compatible with that. +asmr_e_bad_seh_directive_offset=07112_E_Invalid offset value for $1 +% Win64 SEH directives have certain restrictions on possible offset values, e.g. they should +% be positive and have 3 or 4 low bits clear. +asmr_e_bad_seh_directive_register=07113_E_Invalid register for $1 +% Win64 SEH directives accept only 64-bit integer registers or XMM registers. +asmr_e_seh_in_pure_asm_only=07114_E_SEH directives are allowed only in pure assembler procedures +% Win64 SEH directives are allowed only in pure assembler procedures, not in assembler +% blocks of regular procedures. +asmr_e_unsupported_directive=07115_E_Directive "$1" is not supported for the current target +asmr_e_complex_function_result_location=07116_E_This function's result location cannot be encoded directly in a single operand when "nostackframe" is used +% Functions declared with the \var{nostackframe} modifier do not have a stack frame, and hence +% do not have a local variable to hold the temporary function result. Accesses to the function +% result in such routines directly go to the registers or memory location that will be used +% to return their result to the caller. In some cases this result may be spread over multiple +% registers, in which case it is not possible to access the location via its symbolic name. +% You have to directly use the appropriate register names in this case. +asmr_e_wrong_gotpcrel_intel_syntax=07117_E_GOTPCREL references in Intel assembler syntax cannot contain a base or index register, and their offset must 0. +% The syntax for a gotpcrel PIC memory expression in Intel assembler syntax is +% \verb*[global_symbol wrt ..gotpcrel]* +asmr_e_no_gotpcrel_support=07118_E_The current target does not support GOTPCREL relocations +% Not all targets support position-independent code using a global offset table. +% Use a different way to access symbols in a position-indepent way in these cases. +asmr_w_global_access_without_got=07119_W_Exported/global symbols should be accessed via the GOT +% Global symbols (symbols from the unit interface, or defined in a program +% or library) should be accessed via the GOT when generating position-indepent code. +asmr_w_check_mem_operand_size=07120_W_Check size of memory operand "$1" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size3=07121_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size_offset=07122_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits + $4 byte offset]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_negative_offset=07123_W_Check "$1: offset of memory operand is negative "$2 byte" +% The offset of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_automap_multiple_size=07124_W_Check "$1: size of memory operand is empty, but es exists different definitions of the memory size =>> map to $2 (smallest option)" +% The size of memory operand is empty and we have different definitions of possible memory sizes. Check it! +asmr_e_invalid_ref_register=07125_E_Invalid register used in memory reference expression: "$1" +% FPU, vector and sometimes integer registers cannot be used in memory reference +% expressions, due to limitations of the cpu architecture or simple because +% it is not meaningful. + +# +# Assembler/binary writers +# +# 08029 is the last used one +# asmw_f_too_many_asm_files=08000_F_Te veel assemblerbestanden % With smartlinking enabled, there are too many assembler % files generated. Disable smartlinking. @@ -1832,8 +2847,45 @@ asmw_e_64bit_not_supported=08021_E_Asm: 64 Bit operands not supported % This section lists errors that occur when the compiler is processing the % command line or handling the configuration files. % \begin{description} +asmw_e_bad_reg_with_rex=08022_E_Asm: AH,BH,CH or DH cannot be used in an instruction requiring REX prefix +% x86_64 only: instruction encoding of this platform does not allow using +% 8086 high byte registers (AH,BH,CH or DH) together with REX prefix in a single instruction. +% The REX prefix is required whenever the instruction operand size is 64 bits, or +% when it uses one of extended x86_64 registers (R8-R15 or XMM8-XMM15). +asmw_e_missing_endprologue=08023_E_Missing .seh_endprologue directive +% x86_64-win64 only: Normally, SEH directives are handled internally by compiler. +% However, in pure assembler procedures .seh_endprologue directive is required +% if other SEH directives are present. +asmw_e_prologue_too_large=08024_E_Function prologue exceeds 255 bytes +% x86_64-win64: .seh_prologue directive must be placed within 255 bytes from function start. +asmw_e_handlerdata_no_handler=08025_E_.seh_handlerdata directive without preceding .seh_handler +% x86_64-win64: If .seh_handlerdata directive is used, then a .seh_handler directive must be +% present earlier in the same function. +asmw_f_too_many_relocations=08026_F_Relocation count for section $1 exceeds 65535 +% Legacy COFF targets limit number of relocations per section to 65535 because they use a 2-byte field +% to store the relocation count. Targets using newer PECOFF format do not have this limitation. +asmw_w_changing_bind_type=08027_N_Change of bind type of symbol $1 from $2 to $3 after use +asmw_h_changing_bind_type=08028_H_Change of bind type of symbol $1 from $2 to $3 after use +% An assembler symbol bind type has been altered after use, which can lead to wrong code. +% First version is reserved for changig to local label, which is the most probable cause +% of wrong code generation, but currently set to Note level as it appears inside +% the compiler compilation. +asmw_e_32bit_not_supported=08029_E_Asm: 32 Bit references not supported +# +# Executing linker/assembler +# +# 09035 is the last used one +# +# BeginOfTeX +% +% \section{Errors of assembling/linking stage} +% This section lists errors that occur when the compiler is processing the +% command line or handling the configuration files. +% \begin{description} exec_w_source_os_redefined=09000_W_Bronbesturingssysteem geherdefinieerd +% The source operating system is redefined. exec_i_assembling_pipe=09001_I_Assembleren (pijp) van $1 +% Assembling using a pipe to an external assembler. exec_d_cant_create_asmfile=09002_E_Kan geen assembler bestand $1 niet maken % The mentioned file can't be created. Check if you have got % access permissions to create this file @@ -1844,14 +2896,21 @@ exec_e_cant_create_archivefile=09004_E_kan geen archief bestand openen: $1 % The mentioned file can't be created. Check if you've % access permissions to create this file exec_e_assembler_not_found=09005_E_Assembler $1 niet gevonden. Schakel over op externe assemblage +% The assembler program was not found. The compiler will produce a script that +% can be used to assemble and link the program. exec_t_using_assembler=09006_T_Gebruikte assembler: $1 +% An informational message saying which assembler is being used. exec_e_error_while_assembling=09007_E_Fout bij het assembleren, exit code $1 % There was an error while assembling the file using an external assembler. % Consult the documentation of the assembler tool to find out more information % on this error. exec_e_cant_call_assembler=09008_E_Kan de assembler niet oproepen, fout $1. Schakel over op externe assemblage +% An error occurred when calling an external assembler. The compiler will produce a script that +% can be used to assemble and link the program. exec_i_assembling=09009_I_Assembleren van $1 +% An informational message stating which file is being assembled. exec_i_assembling_smart=09010_I_Assembleren slim-link $1 +% An informational message stating which file is being assembled using smartlinking. exec_w_objfile_not_found=09011_W_Bestand $1 niet gevonden, linken kan foutlopen ! % One of the object file is missing, and linking will probably fail. % Check your paths. @@ -1861,31 +2920,88 @@ exec_w_libfile_not_found=09012_W_Bibliotheek $1 niet gevonden, linken kan foutlo exec_e_error_while_linking=09013_E_Fout bij het linken % Generic error while linking. exec_e_cant_call_linker=09014_E_Kan de linker niet oproepen, schakel over op extern linken +% An error occurred when calling an external linker. The compiler will produce a script that +% can be used to assemble and link the program. exec_i_linking=09015_I_Linken van $1 +% An informational message, showing which program or library is being linked. exec_e_util_not_found=09016_E_Gereedschap $1 niet gevonden, schakel over op extern linken +% An external tool was not found. The compiler will produce a script that +% can be used to assemble and link or postprocess the program. exec_t_using_util=09017_T_Gebruik tool $1 +% An informational message, showing which external program (usually a postprocessor) is being used. exec_e_exe_not_supported=09018_E_Creatie van executable bestanden niet ondersteund. +% Creating executable programs is not supported for this platform, because it was +% not yet implemented in the compiler. exec_e_dll_not_supported=09019_E_Dynamische bibliotheken niet ondersteund +% Creating dynamically loadable libraries is not supported for this platform, because it was +% not yet implemented in the compiler. +exec_e_static_lib_not_supported=09035_E_Creation of Static Libraries not supported +% Creating static libraries is not supported for this platform, because it was +% not yet implemented in the compiler. exec_i_closing_script=09020_I_Afsluiten batch $1 +% Informational message showing when writing of the external assembling and linking script is finished. exec_e_res_not_found=09021_E_Resource compiler niet gevonde, schakel over op externe modus +% An external resource compiler was not found. The compiler will produce a script that +% can be used to assemble, compile resources and link or postprocess the program. exec_i_compilingresource=09022_I_Compileer resource $1 +% An informational message, showing which resource is being compiled. exec_t_unit_not_static_linkable_switch_to_smart=09023_T_Unit $1 kan niet statisch gelinkt worden. Schakel over op slim linken +% Static linking was requested, but a unit which is not statically linkable was used. exec_t_unit_not_smart_linkable_switch_to_static=09024_T_Unit $1 kan niet slim gelinkt worden. Schakel over op statisch linken +% Smart linking was requested, but a unit which is not smart-linkable was used. exec_t_unit_not_shared_linkable_switch_to_static=09025_T_Unit $1 kan niet gedeeld gelinkt worden, Schakel over op statisch linken +% Shared linking was requested, but a unit which is not shared-linkable was used. exec_e_unit_not_smart_or_static_linkable=09026_E_Unit $1 kan niet slim of statisch gelinkt worden +% Smart or static linking was requested, but a unit which cannot be used for either was used. exec_e_unit_not_shared_or_static_linkable=09027_E_Unit $1 kan niet gedeeld of statisch gelinkt worden +% Shared or static linking was requested, but a unit which cannot be used for either was used. exec_d_resbin_params=09028_D_Oproep resource compiler "$1" met "$2" als commando-lijn opties # EndOfTeX # # Executable information # %\end{description} +exec_e_error_while_compiling_resources=09029_E_Error while compiling resources +% The resource compiler or converter returned an error. +exec_e_cant_call_resource_compiler=09030_E_Can't call the resource compiler "$1", switching to external mode +% An error occurred when calling a resource compiler. The compiler will produce +% a script that can be used to assemble, compile resources and link or +% postprocess the program. +exec_e_cant_open_resource_file=09031_E_Can't open resource file "$1" +% An error occurred resource file cannot be opened. +exec_e_cant_write_resource_file=09032_E_Can't write resource file "$1" +% An error occurred resource file cannot be written. +exec_n_backquote_cat_file_not_found=09033_N_File "$1" not found for backquoted cat command +% The compiler did not find the file that should be expanded into linker parameters +exec_w_init_file_not_found=09034_W_"$1" not found, this will probably cause a linking failure +% The compiler adds certain startup code files to the linker only when they are found. +% If they are not found, they are not added and this might cause a linking failure. +% +%\end{description} +# EndOfTeX + +# +# Executable information +# +# 09134 is the last used one +# +# BeginOfTeX +% \section{Executable information messages.} +% This section lists all messages that the compiler emits when an executable program is produced, +% and only when the internal linker is used. +% \begin{description} execinfo_f_cant_process_executable=09128_F_Kan applicatie niet nabehandelen $1 +% Fatal error when the compiler is unable to post-process an executable. execinfo_f_cant_open_executable=09129_F_Kan applicatie niet openen $1 +% Fatal error when the compiler cannot open the file for the executable. execinfo_x_codesize=09130_X_Grootte van de code: $1 bytes +% Informational message showing the size of the produced code section. execinfo_x_initdatasize=09131_X_Grootte van geinitialiseerde data: $1 bytes +% Informational message showing the size of the initialized data section. execinfo_x_uninitdatasize=09132_X_Grootte van niet-geinitialiseerde data: $1 bytes +% Informational message showing the size of the uninitialized data section. execinfo_x_stackreserve=09133_X_Gereserveerde stackruimte: $1 bytes +% Informational message showing the stack size that the compiler reserved for the executable. execinfo_x_stackcommit=09134_X_Toegewezen stackruimte: $1 bytes # # Unit loading @@ -1898,6 +3014,26 @@ execinfo_x_stackcommit=09134_X_Toegewezen stackruimte: $1 bytes % loading a unit from disk into memory. Many of these messages are % informational messages. % \begin{description} +link_f_executable_too_big=09200_F_Executable image size is too big for $1 target. +% Fatal error when resulting executable is too big. +link_w_32bit_absolute_reloc=09201_W_Object file "$1" contains 32-bit absolute relocation to symbol "$2". +% Warning when 64-bit object file contains 32-bit absolute relocations. +% In such case an executable image can be loaded into lower 4Gb of +% address space only. +%\end{description} +# EndOfTeX + +# +# Unit loading +# +# 10062 is the last used one +# +# BeginOfTeX +% \section{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. +% \begin{description} unit_t_unitsearch=10000_T_Unit zoeken: $1 % When you use the \var{-vt}, the compiler tells you where it tries to find % unit files. @@ -1960,6 +3096,7 @@ unit_f_cant_find_ppu=10022_F_Kan unit $1 niet vinden % 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 unit_w_unit_name_error=10023_W_Unit $1 niet gevonden maar $2 bestaat +% This error message is no longer used. unit_f_unit_name_error=10024_F_Unit $1 gezocht maar $2 gevonden % Dos truncation of 8 letters for unit PPU files % may lead to problems when unit name is longer than 8 letters. @@ -1973,6 +3110,8 @@ unit_u_load_unit=10027_U_Laden van $1 ($2) unit $3 % When you use the \var{-vu} flag, which unit is loaded from which unit is % shown. unit_u_recompile_crc_change=10028_U_Hercompileer $1, checksum voor $2 veranderd +% The unit is recompiled because the checksum of a unit it depends on has +% changed. unit_u_recompile_source_found_alone=10029_U_herkompileer $1, alleen bron gevonden % When you use the \var{-vu} flag, these messages tell you why the current % unit is recompiled. @@ -2015,10 +3154,8 @@ unit_u_check_time=10037_U_PPU Controleren van bestand $1 tijd $2 unit_w_cant_compile_unit_with_changed_incfile=10040_W_Kan unit $1 niet hercompileren, maar vond gewijzigde include bestanden % A unit was found to have modified include files, but % some source files were not found, so recompilation is impossible. -unit_h_source_modified=10041_H_Bestand $1 is nieuwer dan release PPU bestand $2 -% A modified source file for a unit was found that was compiled with the -% release flag (-Ur). The unit will not implicitly be recompiled because -% this release flag is set. +unit_u_source_modified=10041_U_File $1 is newer than the one used for creating PPU file $2 +% A modified source file for a compiler unit was found. unit_u_ppu_invalid_fpumode=10042_U_Er wordt een unit gebruikt die niet met de correcte FPU modus is gecompileerd % Trying to compile code while using units which were not compiled with % the same floating point format mode. Either all code should be compiled @@ -2086,6 +3223,29 @@ unit_u_skipping_reresolving_unit=10059_U_Oplossen van unit $1 wordt overgeslagen % skips to recalculate the internal data of the unit because there % is no data to recalculate % \end{description} +unit_u_unload_resunit=10060_U_Unloading resource unit $1 (not needed) +% When you use the \var{-vu} flag, the compiler warns that it is unloading the +% resource handling unit, since no resources are used. +unit_e_different_wpo_file=10061_E_Unit $1 was compiled using a different whole program optimization feedback input ($2, $3); 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 (\var{-FW} \var{-OW}), +% 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. +unit_u_indirect_crc_changed=10062_U_Indirect interface (objects/classes) CRC changed for unit $1 +% When you use the \var{-vu} flag, the compiler warns that the +% indirect CRC calculated for the unit (this is the CRC of all classes/objects/interfaces/$\ldots$ +% in the interfaces of units directly or indirectly used by this unit in the interface) has been changed after the +% implementation has been parsed. +unit_u_ppu_invalid_memory_model=10063_U_PPU is compiled for another i8086 memory model +% This unit file was compiled for a different i8086 memory model and +% cannot be read. +% \end{description} +# EndOfTeX + +# +# Options +# +# 11057 is the last used one +# option_usage=11000_O_$1 [opties] [opties] # BeginOfTeX % @@ -2162,18 +3322,29 @@ option_using_env=11027_T_Opties worden gelezen van omgevingsvariabelen $1 option_handling_option=11028_D_Behandelen van optie "$1" % Debug info that an option is found and will be handled option_help_press_enter=11029__***Druk op de ENTER toets*** +% Message shown when help is shown page per page. When pressing the ENTER +% Key, the next page of help is shown. If you press q and then ENTER, the +% compiler exits. option_start_reading_configfile=11030_H_Start lezen van configuratie bestand $1 % Starting of config file parsing. option_end_reading_configfile=11031_H_Einde van lezen van configuratie bestand $1 % End of config file parsing. option_interpreting_option=11032_D_Optie $1 wordt behandeld +% The compiler is interpreting an option option_interpreting_firstpass_option=11036_D_Behandel prioritaire optie "$1" +% The compiler is interpreting an option for the first time. option_interpreting_file_option=11033_D_Behandel bestandsoptie "$1" +% The compiler is interpreting an option which it read from the configuration file. option_read_config_file=11034_D_Lezen configuratie bestand "$1" +% The compiler is starting to read the configuration file. option_found_file=11035_D_Bronbestand "$1" gevonden % Additional infos about options, displayed % when you have debug option turned on. option_code_page_not_available=11039_E_Ongekende coderingspagina +% An unknown codepage for the source files was requested. +% The compiler is compiled with support for several codepages built-in. +% The requested codepage is not in that list. You will need to recompile +% the compiler with support for the codepage you need. option_config_is_dir=11040_F_Config bestand $1 is een directorie # EndOfTeX # @@ -2181,6 +3352,134 @@ option_config_is_dir=11040_F_Config bestand $1 is een directorie # % Directories can not be used as configuration files. %\end{description} +option_confict_asm_debug=11041_W_Assembler output selected "$1" cannot generate debug info, debugging disabled +% The selected assembler output cannot generate +% debugging information, debugging option is therefore disabled. +option_ppc386_deprecated=11042_W_Use of ppc386.cfg is deprecated, please use fpc.cfg instead +% Using ppc386.cfg is still supported for historical reasons, however, for a multiplatform +% system the naming makes no sense anymore. Please continue to use fpc.cfg instead. +option_else_without_if=11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DEF found +% An \var{\#ELSE} statement was found in the options file without a matching \var{\#IF(N)DEF} statement. +option_unsupported_target=11044_F_Option "$1" is not, or not yet, supported on the current target platform +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is incompatible with the currently selected target platform. +option_unsupported_target_for_feature=11045_F_The feature "$1" is not, or not yet, supported on the selected target platform +% Not all features are supported or implemented for all target platforms. This message informs you that a chosen +% feature is incompatible with the currently selected target platform. +option_dwarf_smart_linking=11046_N_DWARF debug information cannot be used with smart linking on this target, switching to static linking +% Smart linking is currently incompatible with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_ignored_target=11047_W_Option "$1" is ignored for the current target platform. +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is ignored for the currently selected target platform. +option_debug_external_unsupported=11048_W_Disabling external debug information because it is unsupported for the selected target/debug format combination. +% Not all debug formats can be stored in an external file on all platforms. In particular, on +% Mac OS X only DWARF debug information can be stored externally. +option_dwarf_smartlink_creation=11049_N_DWARF debug information cannot be used with smart linking with external assembler, disabling static library creation. +% Smart linking is currently incompatble with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_invalid_macosx_deployment_target=11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variable: $1 +option_invalid_iphoneos_deployment_target=11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment variable: $1 +% On Mac OS X, the MACOSX\_DEPLOYMENT\_TARGET/IPHONEOS\_DEPLOYMENT\_TARGET environment variable can be +% used to set the default target OS version. In case of Mac OS X, it has to be of the format +% XY.Z or XY.Z.AB with X, Y,Z , A and B all digits from 0-9. +% In case of iOS, it has to be X.Z.A, where X, Z and A can all be either 1 or 2 +% digits from 0-9. +option_illegal_fpu_eabihf=11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when using the EABIHF ABI target +% The EABIHF (VFP hardfloat) ABI target can only be used with VFP FPUs. +option_w_unsupported_debug_format=11053_W_The selected debug format is not supported on the current target, not changing the current setting +% Not all targets support all debug formats (in particular, Stabs is not supported on 64 bit targets). +option_missing_arg=11054_E_argument to "$1" is missing +% Displayed when parameter must be followed by an argument. +option_malformed_para=11055_E_malformed parameter: $1 +% Given argument is not valid for parameter. +option_smart_link_requires_external_linker=11056_W_Smart linking requires external linker +option_com_files_require_tiny_model=11057_E_Creating .COM files is not supported in the current memory model. Only the tiny memory model supports making .COM files. + + +%\end{description} +# EndOfTeX + +# +# Whole program optimization +# +# 12019 is the last used one +# +# BeginOfTeX +% +% \section{Whole program optimization messages} +% This section lists errors that occur when the compiler is performing +% whole program optimization. +% \begin{description} +wpo_cant_find_file=12000_F_Cannot open whole program optimization feedback file "$1" +% The compiler cannot open the specified feedback file with whole program optimization information. +wpo_begin_processing=12001_D_Processing whole program optimization information in wpo feedback file "$1" +% The compiler starts processing whole program optimization information found in the named file. +wpo_end_processing=12002_D_Finished processing the whole program optimization information in wpo feedback file "$1" +% The compiler has finished processing the whole program optimization information found in the named file. +wpo_expected_section=12003_E_Expected section header, but got "$2" at line $1 of wpo feedback file +% The compiler expected a section header in the whole program optimization file (starting with \%), +% but did not find it. +wpo_no_section_handler=12004_W_No handler registered for whole program optimization section "$2" at line $1 of wpo feedback file, ignoring +% The compiler has no handler to deal with the mentioned whole program optimization information +% section, and will therefore ignore it and skip to the next section. +wpo_found_section=12005_D_Found whole program optimization section "$1" with information about "$2" +% The compiler encountered a section with whole program optimization information, and according +% to its handler this section contains information usable for the mentioned purpose. +wpo_no_input_specified=12006_F_The selected whole program optimizations require a previously generated feedback file (use -Fw to specify) +% The compiler needs information gathered during a previous compilation run to perform the selected +% whole program optimizations. You can specify the location of the feedback file containing this +% information using the -Fw switch. +wpo_not_enough_info=12007_E_No collected information necessary to perform "$1" whole program optimization found +% While you pointed the compiler to a file containing whole program optimization feedback, it +% did not contain the information necessary to perform the selected optimizations. You most likely +% have to recompile the program using the appropriate -OWxxx switch. +wpo_no_output_specified=12008_F_Specify a whole program optimization feedback file to store the generated info in (using -FW) +% You have to specify the feedback file in which the compiler has to store the whole program optimization +% feedback that is generated during the compilation run. This can be done using the -FW switch. +wpo_output_without_info_gen=12009_E_Not generating any whole program optimization information, yet a feedback file was specified (using -FW) +% The compiler was instructed to store whole program optimization feedback into a file specified using -FW, +% but not to actually generated any whole program optimization feedback. The classes of to be +% generated information can be specified using -OWxxx. +wpo_input_without_info_use=12010_E_Not performing any whole program optimizations, yet an input feedback file was specified (using -Fw) +% The compiler was not instructed to perform any whole program optimizations (no -Owxxx parameters), +% but nevertheless an input file with such feedback was specified (using -Fwyyy). Since this can +% indicate that you forgot to specify an -Owxxx parameter, the compiler generates an error in this case. +wpo_skipping_unnecessary_section=12011_D_Skipping whole program optimization section "$1", because not needed by the requested optimizations +% The whole program optimization feedback file contains a section with information that is not +% required by the selected whole program optimizations. +wpo_duplicate_wpotype=12012_W_Overriding previously read information for "$1" from feedback input file using information in section "$2" +% The feedback file contains multiple sections that provide the same class of information (e.g., +% information about which virtual methods can be devirtualized). In this case, the information in last encountered +% section is used. Turn on debugging output (-vd) to see which class of information is provided by each section. +wpo_cannot_extract_live_symbol_info_strip=12013_E_Cannot extract symbol liveness information from program when stripping symbols, use -Xs- +% Certain symbol liveness collectors extract the symbol information from the linked program. If the symbol information +% is stripped (option -Xs), this is not possible. +wpo_cannot_extract_live_symbol_info_no_link=12014_E_Cannot extract symbol liveness information from program when when not linking +% Certain symbol liveness collectors extract the symbol information from the linked program. If the program is not +% linked by the compiler, this is not possible. +wpo_cannot_find_symbol_progs=12015_F_Cannot find "$1" or "$2" to extract symbol liveness information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% This helper program is normally 'nm', which is part of the GNU binutils. +wpo_error_reading_symbol_file=12016_E_Error during reading symbol liveness information produced by "$1" +% An error occurred during the reading of the symbol liveness file that was generated using the 'nm' or 'objdump' program. The reason +% can be that it was shorter than expected, or that its format was not understood. +wpo_error_executing_symbol_prog=12017_F_Error executing "$1" (exitcode: $2) to extract symbol information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% The helper program produced the reported error code when it was run on the linked program. +wpo_symbol_live_info_needs_smart_linking=12018_E_Collection of symbol liveness information can only help when using smart linking, use -CX -XX +% Whether or not a symbol is live is determined by looking whether it exists in the final linked program. +% Without smart linking/dead code stripping, all symbols are always included, regardless of whether they are +% actually used or not. So in that case all symbols will be seen as live, which makes this optimization ineffective. +wpo_cant_create_feedback_file=12019_E_Cannot create specified whole program optimisation feedback file "$1" +% The compiler is unable to create the file specified using the -FW parameter to store the whole program optimisation information. +%\end{description} +# EndOfTeX + + +# +# Logo (option -l) +# option_logo=11023_[ Free Pascal Compiler versie $FPCFULLVERSION [$FPCDATE] voor $FPCTARGET Copyright (c) 1993-2015 door Florian Klaempfl en anderen @@ -2369,3 +3668,73 @@ option_help_pages=11025_[ **1?_Toont deze hulp **1h_Toont deze hulp zonder wachten ] + +# +# The End... +%%% parser_e_only_class_methods_via_class_ref=03053_E_Alleen klassemethoden kunnen gerefereerd worden via een klasse +% This error occurs in a situation like the following: +% \begin{verbatim} +% Type : +% Tclass = Class of Tobject; +% +% Var C : TClass; +% +% begin +% ... +% C.free +% \end{verbatim} +% \var{Free} is not a class method and hence cannot be called with a class +% reference. +%%% parser_e_only_class_methods=03054_E_Alleen klassemethoden zijn toegankelijk in klassen +% This is related to the previous error. You cannot call a method of an object +% from a inside a class method. The following code would produce this error: +% \begin{verbatim} +% class procedure tobject.x; +% +% begin +% free +% \end{verbatim} +% Because free is a normal method of a class it cannot be called from a class +% method. +%%% parser_e_absolute_only_one_var=03095_E_Absolute kan maar aan een variabele verbonden worden. +% You cannot specify more than one variable before the \var{absolute} directive. +% Thus, the following construct will provide this error: +% \begin{verbatim} +% Var Z : Longint; +% X,Y : Longint absolute Z; +% \end{verbatim} +% \item [ absolute can only be associated a var or const ] +% The address of a \var{absolute} directive can only point to a variable or a +% typed constant. Therefore, the following code will produce this error: +% \begin{verbatim} +% Procedure X; +% +% var p : longint absolute x; +% \end{verbatim} +% +%%% parser_e_only_publishable_classes_can__be_published=03156_E_Alleen klassen gecompileerd in $M+ modus kunnen een published sectie hebben. +% In the published section of a class can be only class as fields used which +% are compiled in \var{\{\$M+\}} or which are derived from such a class. Normally +% such a class should be derived from TPersitent +%%% type_w_mixed_signed_unsigned=04035_W_Mengen van mogelijk negatieve uitdrukkingen en longwords geeft een 64-bits resultaat +% If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), +% or if you have overflow and/or range checking turned on and use an arithmetic +% expression (+, -, *, div, mod) in which both signed numbers and longwords appear, +% then everything has to be evaluated in 64bit which is slower than normal +% 32bit arithmetic. You can avoid this by typecasting one operand so it +% matches the result type of the other one. +%%% type_w_signed_unsigned_always_false=04044_W_De vergelijking is steeds onwaar omwille van de interval waarden +% There is a comparison between an unsigned value and a signed constant which is +% less than zero. Because of type promotion, the statement will always evaluate to +% false. Exlicitly typecast the constant to the correct range to avoid this problem. +%%% type_w_signed_unsigned_always_true=04045_W_e vergelijking is steeds waar omwille van de interval waarden +% There is a comparison between an unsigned value and a signed constant which is +% less than zero. Because of type promotion, the statement will always evaluate to +% true. Exlicitly typecast the constant to the correct range to avoid this problem. +%%% type_e_operator_not_allowed=04051_E_De operator kan niet gebruikt worden op dit type operand +% You are trying an operator that is not available for the type of the +% operands +%%% unit_h_source_modified=10041_H_Bestand $1 is nieuwer dan release PPU bestand $2 +% A modified source file for a unit was found that was compiled with the +% release flag (-Ur). The unit will not implicitly be recompiled because +% this release flag is set. diff --git a/compiler/msg/errorptu.msg b/compiler/msg/errorptu.msg index 8a0663c0ed..c5ba7502ce 100644 --- a/compiler/msg/errorptu.msg +++ b/compiler/msg/errorptu.msg @@ -1,3 +1,5 @@ +%%% Reordering of errorptu.msg respective to errore.msg +%%% Contains all comments from errorptu.msg # # This file is part of the Free Pascal Compiler # Copyright (c) 1999-2009 by the Free Pascal Development team @@ -387,6 +389,49 @@ scanner_e_illegal_alignment_directive=02088_E_Diretiva de alinhamento ilegal % semantics of you language, i.e. it determines if your Pascal constructs % are correct. % \begin{description} +scanner_f_illegal_utf8_bom=02089_F_It is not possible to include a file that starts with an UTF-8 BOM in a module that uses a different code page +% All source code that is part of a single compilation entity (program, library, unit) must be encoded +% in the same code page +scanner_w_directive_ignored_on_target=02090_W_Directive "$1" is ignored for the current target platform +% Some directives are ignored for certain targets, such as changing the +% packrecords and packenum settings on managed platforms. +scan_w_unavailable_system_codepage=02091_W_Current system codepage "$1" is not available for the compiler. Switching default codepage back to "$2". +% The current system codepage is not known by the compiler. +% The compiler is compiled with support for several codepages built-in. +% The codepage of the operation system is not in that list. You will need to recompile +% the compiler with support for this codepage. +scan_w_setpeoptflags_not_support=02092_W_SETPEOPTFLAGS is not supported by the target OS +% The \var{\{\$SETPEOPTFLAGS\}} directive is not supported by the target OS. +scan_e_illegal_peflag=02093_E_Illegal argument for SETPEFLAGS +% The given argument for SETPEFLAGS is neither a correct named value nor an +% ordinal value +scan_e_illegal_peoptflag=02094_E_Illegal argument for SETPEOPTFLAGS +% The given argument for SETPEOPTFLAGS is neither a correct named value nor an +% ordinal value +scan_e_unsupported_switch=02095_E_Directive $1 is not supported on this target +% Not all compiler directives are supported on all targets. +scan_w_invalid_stacksize=02096_W_The specified stack size is not within the valid range for the platform. Setting the stack size ignored. +% The valid range for the stack size is 1024 - 67107839 on 32-bit and 64-bit +% platforms and 1024 - 65520 on 16-bit platforms. Additionally, for Turbo Pascal 7 +% compatibility reasons, specifying a stack size of 65521 on 16-bit platforms +% actually sets the stack size to 65520. +scan_w_heapmax_lessthan_heapmin=02097_W_The specified HeapMax value is smaller than the HeapMin value. Setting HeapMax ignored. +% The HeapMax value (if specified) must be greater than or equal to the HeapMin +% value. Otherwise, the HeapMax value is ignored. +scan_e_illegal_hugepointernormalization=02098_E_Illegal argument for HUGEPOINTERNORMALIZATION +% The only allowed values for HUGEPOINTERNORMALIZATION are BORLANDC, MICROSOFTC +% and WATCOMC. +% \end{description} +# +# Parser +# +# 03339 is the last used one +# +% \section{Parser messages} +% This section lists all parser messages. The parser takes care of the +% semantics of you language, i.e. it determines if your Pascal constructs +% are correct. +% \begin{description} parser_e_syntax_error=03000_E_Analizador - Erro sintaxe % An error against the Turbo Pascal language was encountered. This typically % happens when an illegal character is found in the source file. @@ -638,7 +683,7 @@ parser_e_void_function=03080_E_Procedimentos não podem retornar um valor % In \fpc, you can specify a return value for a function when using % the \var{exit} statement. This error occurs when you try to do this with a % procedure. Procedures cannot return a value. -parser_e_constructors_always_objects=03081_E_Construtores, destruidores e operadores de classe devem ser métodos +parser_e_only_methods_allowed=03081_E_constructors, destructors and class operators must be methods % You're declaring a procedure as destructor, constructor or class operator, when the % procedure isn't a class method. parser_e_operator_not_overloaded=03082_E_Operador não é sobrecarregado @@ -680,9 +725,10 @@ parser_e_mix_of_classes_and_objects=03093_E_A mistura de diferentes espécies de % a class cannot have an object as parent and vice versa. parser_w_unknown_proc_directive_ignored=03094_W_Diretiva desconhecida de procedimento teve que ser ignorada: "$1" % The procedure directive you specified is unknown. -parser_e_absolute_only_one_var=03095_E_Absolute só pode estar associada a uma variável -% You cannot specify more than one variable before the \var{absolute} directive. -% Thus, the following construct will provide this error: +parser_e_directive_only_one_var=03095_E_$1 can be associated with only one variable +% You cannot specify more than one variable before the \var{absolute}, \var{export}, \var{external}, +% \var{weakexternal}, \var{public} and \var{cvar} directives. +% As a result, for example the following construct will provide this error: % \begin{verbatim} % Var Z : Longint; % X,Y : Longint absolute Z; @@ -1259,23 +1305,23 @@ parser_e_no_objc_published=03271_E_Classes Objective-C não podem ter seções P parser_f_need_objc=03272_F_Este módulo requer que seja especificado uma chave de modo Objective-C para ser compilado % This error indicates the use of Objective-C language features without an Objective-C mode switch % active. Enable one via the -M command line switch, or the {\$modeswitch x} directive. -parser_e_must_use_override_objc=03273_E_Métodos herdados podem apenas ser sobrepostos em Objective-C, adicione "OVERRIDE" (método herdado definido em $1) -parser_h_should_use_override_objc=03274_H_Métodos herdados podem apenas ser sobrepostos em Objective-C, adicione "OVERRIDE" (método herdado definido em $1). -% It is not possible to \var{reintroduce} methods in Objective-C like in Object Pascal. Methods with the same +parser_e_must_use_override=03273_E_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1) +parser_h_should_use_override=03274_H_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1). +% It is not possible to \var{reintroduce} methods in Objective-C or Java like in Object Pascal. Methods with the same % name always map to the same virtual method entry. In order to make this clear in the source code, % the compiler always requires the \var{override} directive to be specified when implementing overriding -% Objective-C methods in Pascal. If the implementation is external, this rule is relaxed because Objective-C -% does not have any \var{override}-style keyword (since it's the default and only behaviour in that language), +% Objective-C or Java methods in Pascal. If the implementation is external, this rule is relaxed because Objective-C and Java +% do not have any \var{override}-style keyword (since it's the default and only behaviour in these languages), % which makes it hard for automated header conversion tools to include it everywhere. % The type in which the inherited method is defined is explicitly mentioned, because this may either -% be an objcclass or an objccategory. +% be an objcclass or an objccategory in case of Objective-C. parser_e_objc_message_name_changed=03275_E_Nome mensagem "$1" na classe herdada é diferente do nome mensagem "$2" na classe atual. % An overriding Objective-C method cannot have a different message name than an inherited method. The reason % is that these message names uniquely define the message to the Objective-C runtime, which means that % giving them a different message name breaks the ``override'' semantics. -parser_e_no_objc_unique=03276_E_Ainda não é possível fazer cópias únicas de tipos Objective-C -% Duplicating an Objective-C type using \var{type x = type y;} is not yet supported. You may be able to -% obtain the desired effect using \var{type x = objcclass(y) end;} instead. +parser_e_unique_unsupported=03276_E_It is not yet possible to make unique copies of Objective-C or Java types +% Duplicating an Objective-C or Java type using \var{type x = type y;} is not yet supported. You may be able to +% obtain the desired effect using \var{type x = objcclass(y) end;} resp.{} \var{type x = class(y) end;} instead. parser_e_no_category_as_types=03277_E_Categorias Objective-C e classes auxiliares Object Pascal não podem ser usadas como tipos % It is not possible to declare a variable as an instance of an Objective-C % category or an Object Pascal class helper. A category/class helper adds @@ -1355,9 +1401,9 @@ parser_f_no_generic_inside_generic=03297_F_Declaração de classe genérica dent % (guarded by internal error 200511173 in tscannerfile.startrecordtokens). % Since generics are implemented by recording tokens, it is not possible to % have declaration of generic class inside another generic class. -parser_e_forward_protocol_declaration_must_be_resolved=03298_E_Declaração posterior de objcprotocl "$1" deve ser resolvida antes de uma objcclass possa conformá-la -% An objcprotocol must be fully defined before classes can conform to it. -% This error occurs in the following situation: +parser_e_forward_intf_declaration_must_be_resolved=03298_E_Forward declaration "$1" must be resolved before a class can conform to or implement it +% An Objective-C protocol or Java Interface must be fully defined before classes can conform to it. +% This error occurs in the following situation (example for Objective-C, but the same goes for Java interfaces): % \begin{verbatim} % Type MyProtocol = objcprotoocl; % ChildClass = Class(NSObject,MyProtocol) @@ -1372,8 +1418,8 @@ parser_e_no_destructor_in_records=03300_E_Destruidores não são permitidos em r parser_e_class_methods_only_static_in_records=03301_E_Métodos de classe devem ser estáticos em registros % Class methods declarations aren't allowed in records without static modifier. % Records have no inheritance and therefore non static class methods have no sence for them. -parser_e_no_constructor_in_records=03302_E_Construtores não são permitidos em registros ou auxiliares de registro -% Constructor declarations aren't allowed in records or record helpers. +parser_e_no_parameterless_constructor_in_records=03302_E_Parameterless constructors are not allowed in records or record/type helpers +% Constructor declarations with no arguments are not allowed in records or record/type helpers. parser_e_at_least_one_argument_must_be_of_type=03303_E_Tanto o resultado ou ao menos um parâmetro deve ser do tipo "$1" % It is required that either the result of the routine or at least one of its parameters be of the specified type. % For example class operators either take an instance of the structured type in which they are defined, or they return one. @@ -1417,6 +1463,113 @@ parser_e_invalid_codepage=03314_E_Codepage inválido % This section lists all errors that can occur when type checking is % performed. % \begin{description} +parser_e_final_only_const_var=03315_E_Only fields (var-sections) and constants can be final in object types +% A final (class) field must be assigned a single value in the (class) constructor, and cannot +% be overwritten afterwards. A final (typed) constant is read-only. +parser_e_final_only_external=03316_E_Final fields are currently only supported for external classes +% Support for final fields in non-external classes requires a full data flow +% analysis implementation in FPC, which it currently still lacks. +parser_e_no_typed_const=03317_E_Typed constants are not allowed here, only formal constants are +% Java interfaces define a namespace in which formal constant can be defined, +% but since they define no storage it is not possible to define typed constants +% in them (those are more or less the same as initialised class fields). +parser_e_java_no_inherited_constructor=03318_E_Constructors are not automatically inherited in the JVM; explicitly add a constructor that calls the inherited one if you need it +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% For compatibility with external Java code, FPC does the same. If you require access to the same +% constructors in a child class, define them in the child class and call the inherited one from +% there. +parser_d_internal_parser_string=03319_D_Parsing internally generated code: $1 +% The compiler sometimes internally constructs Pascal code that is subsequently +% injected into the program. These messages display such code, in order to help +% with debugging errors in them. +parser_e_feature_unsupported_for_vm=03320_E_This language feature is not supported on managed VM targets +% Certain language features are not supported on targets that are managed virtual machines. +parser_e_jvm_invalid_virtual_constructor_call=03321_E_Calling a virtual constructor for the current instance inside another constructor is not possible on the JVM target +% The JVM does not natively support virtual constructor. Unforunately, we are not aware of a way to +% emulate them in a way that makes it possible to support calling virtual constructors +% for the current instance inside another constructor. +parser_e_method_lower_visibility=03322_E_Overriding method "$1" cannot have a lower visibility ($2) than in parent class $3 ($4) +% The JVM does not allow lowering the visibility of an overriding method. +parser_e_nostackframe_without_assembler=03323_E_Procedure/Function declared with call option NOSTACKFRAME but without ASSEMBLER +% nostackframe call modifier is supposed to be used in conjunction with assembler. +parser_e_nostackframe_with_locals=03324_E_Procedure/Function declared with call option NOSTACKFRAME but local stack size is $1 +% nostackframe call modifier used without assembler modifier +% might still generate local stack needs. +parser_e_cannot_generate_property_getter_setter=03325_E_Cannot generate property getter/setter $1 because its name clashes with existing identifier $2 +% Automatically generated getters/setters cannot have the same name as existing +% identifiers, because this may change the behaviour of existing code. +parser_w_overriding_property_getter_setter=03326_W_Automatically generated property getter/setter $1 overrides the same-named getter/setter in class $2 +% Automatically generated property getters/setters on the JVM platform are virtual methods, because +% the JVM does not support non-virtual methods that can be changed in child classes. This means +% that if a child class changes an inherited property definition, the behaviour of that property +% can change compared to native targets since even if a variable is declared as the parent type, +% by calling the virtual method the getter from the child will be used. This is different from +% the behaviour on native targets or when not activating automatically generated setters/getters, +% because in that case only the declared type of a variable influences the property behaviour. +parser_w_case_difference_auto_property_getter_setter_prefix=03327_W_Case mismatch between declared property getter/setter $1 and automatically constructed name $2, not changing declared name +% If a property's specified getter/setter already corresponded to the naming convention specified +% by the automatic getter/setter generation setting except in terms of upper/lowercase, the +% compiler will print a warning because it cannot necessarily change that other declaration itself +% not can it add one using the correct case (it could conflict with the original declaration). +% Manually correct the case of the getter/setter to conform to the desired coding rules. +% \var{TChild} overrides +parser_e_no_consts_in_local_anonymous_records=03328_E_Constants declarations are not allowed in local or anonymous records +% Records with constants must be defined globally. Constants cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_methods_in_local_anonymous_records=03329_E_Method declarations are not allowed in local or anonymous records +% Records with methods must be defined globally. Methods cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_properties_in_local_anonymous_records=03330_E_Property declarations are not allowed in local or anonymous records +% Records with properties must be defined globally. Properties cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_class_in_local_anonymous_records=03331_E_Class member declarations are not allowed in local or anonymous records +% Records with class members must be defined globally. Class members cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_not_allowed_in_record=03332_E_Visibility section "$1" not allowed in records +% The visibility sections \var(protected) and \var(strict protected) are only +% useful together with inheritance. Since records do not support that they are +% forbidden. +parser_e_dir_not_allowed=03333_E_Directive "$1" not allowed here +% This directive is not allowed in the given context. E.g. "static" +% is not allowed for instance methods or class operators. +parser_e_no_assembler_in_generic=03334_E_Assembler blocks not allowed inside generics +% The use of assembler blocks/routines is not allowed inside generics. +parser_e_property_only_sgr=03335_E_Properties can be only static, global or inside structured types +% Properties cannot be declared local, only global, using the static +% directive or inside structured types. +parser_e_overloaded_have_same_mangled_name=03336_E_Overloaded routines have the same mangled name +% Some platforms, such as the JVM platform, encode the parameters in the routine name in +% a prescribed way, and this encoding may map different Pascal types to the same encoded +% (a.k.a.\ ``mangled'') name. This error can only be solved by removing or changing the +% conflicting definitions' parameter declarations or routine names. +parser_e_default_value_val_const=03337_E_Default values can only be specified for value, const and constref parameters +% A default parameter value allows you to not specify a value for this parameter +% when calling the routine, and the compiler will instead pass the specified +% default (constant) value. As a result, default values can only be specified +% for parameters that can accept constant values. +parser_w_ptr_type_ignored=03338_W_Pointer type "$1" ignored +% The specified pointer type modifier is ignored, because it is not supported on +% the current platform. This happens, for example, when a far pointer is +% declared on a non-x86 platform. +parser_e_global_generic_references_static=03339_E_Global Generic template references static symtable +% A generic declared in the interface section of a unit must not reference symbols that belong +% solely to the implementation section of that unit. +parser_u_already_compiled=03340_UL_Unit $1 has been already compiled meanwhile. +% This tells you that the recursive reading of the uses clauses triggered already +% a compilation of the current unit, so the current compilation can be aborted. +% +% +% +% \end{description} +% +# Type Checking +# +# 04123 is the last used one +# +% \section{Type checking errors} +% This section lists all errors that can occur when type checking is +% performed. +% \begin{description} type_e_mismatch=04000_E_Tipo incompatível % This can happen in many cases: % \begin{itemize} @@ -1598,12 +1751,12 @@ type_e_type_is_not_completly_defined=04042_E_Tipo "$1" não está completamente type_w_string_too_long=04043_W_Literal 'String' tem mais caracteres que comprimento 'string' curta % The size of the constant string, which is assigned to a shortstring, % is longer than the maximum size of the shortstring (255 characters). -type_w_signed_unsigned_always_false=04044_W_Comparação pode ser sempre falsa devido a faixa da constante e expressão +type_w_comparison_always_false=04044_W_Comparison might be always false due to range of constant and expression % There is a comparison between a constant and an expression where the constant is out of the % valid range of values of the expression. Because of type promotion, the statement will always evaluate to % false. Explicitly typecast the constant or the expression to the correct range to avoid this warning % if you think the code is correct. -type_w_signed_unsigned_always_true=04045_W_Comparação pode ser sempre verdadeira devido a faixa da constante e expressão +type_w_comparison_always_true=04045_W_Comparison might be always true due to range of constant and expression % There is a comparison between a constant and an expression where the constant is out of the % valid range of values of the expression. Because of type promotion, the statement will always evaluate to % true. Explicitly typecast the constant or the expression to the correct range to avoid this warning @@ -1803,6 +1956,70 @@ type_w_unicode_data_loss=04108_W_Conversão de constante Unicode com potencial d % This section lists all the messages that concern the handling of symbols. % This means all things that have to do with procedure and variable names. % \begin{description} +type_e_range_check_error_bounds=04109_E_range check error while evaluating constants ($1 must be between $2 and $3) +type_w_range_check_error_bounds=04110_W_range check error while evaluating constants ($1 must be between $2 and $3) +% The constants are outside their allowed range. +type_e_type_not_allowed_for_default=04111_E_This type is not supported for the Default() intrinsic +% Some types like for example Text and File Of X are not supported by the Default intrinsic. +type_e_java_class_method_not_static_virtual=04112_E_JVM virtual class methods cannot be static +% Virtual class methods cannot be static when targeting the JVM platform, because +% the self pointer is required for correct dispatching. +type_e_invalid_final_assignment=04113_E_Final (class) fields can only be assigned in their class' (class) constructor +% It is only possible to assign a value to a final (class) field inside a (class) constructor of its owning class. +type_e_no_managed_formal_assign_typecast=04114_E_It is not possible to typecast untyped parameters on managed platforms, simply assign a value to them instead. +% On managed platforms, untyped parameters are translated by the compiler into +% the equivalent of \var{var x: BaseClassType}. Non-class-based types passed to +% such parameters are automatically wrapped (or boxed) in a class, and after the +% call the potentially modified value is assigned back to the original variable. +% On the caller side, changing untyped var/out parameters happens by simply assigning +% values to them (either class-based or primitive ones). On the caller side, +% they will be extracted and if their type does not match the original variable's, +% an exception will be raised. +type_e_no_managed_assign_generic_typecast=04115_E_The assignment side of an expression cannot be typecasted to a supertype on managed platforms +% Managed platforms guarantee type safety at the bytecode level. This means that the virtual machine must be able +% to statically determine that no type-unsafe assignments or operations occur. By assigning a parent class type to a +% variable of a child type by typecasting the assignment side to the parent class type, the type safety would no +% longer be guaranteed and the generated code would fail verification at run time time. +type_w_interface_lower_visibility=04116_-W_The interface method "$1" raises the visibility of "$2" to public when accessed via an interface instance +type_e_interface_lower_visibility=04117_E_The interface method "$1" has a higher visibility (public) than "$2" +% All methods in an interface have always public visibility. That means that if +% an interface method is implemented using a (strict) protected or private method, +% this method is actually publicly accessible via the interface. On the JVM +% target this situation results in an error because the JVM rejects such +% attempts to circumvent the visibility rules. On other targets this is a +% warning that is disabled by default because such situations are common +% practice, but it can be enabled in case you are concerned with keeping your +% code compilable for the JVM target. +type_e_typeof_requires_vmt=04118_E_TYPEOF can only be used on object types with VMT +% Typeof() intrinsic returns pointer to VMT of its argument. It cannot be used on object types that do not have VMT. +type_e_invalid_default_value=04119_E_It is not possible to define a default value for a parameter of type "$1" +% Parameters declared as structured types, such as files, variants, non-dynamic +% arrays and TP-style objects, cannot have a default value. +type_e_type_not_allowed_for_type_helper=04120_E_Type "$1" cannot be extended by a type helper +% Types like procedural variables cannot be extended by type helpers +type_e_procedure_must_be_far=04121_E_Procedure or function must be far in order to allow taking its address: "$1" +% In certain i8086 memory models (medium, large and huge), procedures and functions +% have to be declared 'far' in order to allow their address to be taken. +type_w_instance_abstract_class=04122_W_Creating an instance of abstract class "$1" +% The specified class is declared as \var{abstract} and thus no instance of this class +% should be created. This is merely a warning for Delphi compatibility. +type_e_function_reference_kind=04123_E_Subroutine references cannot be declared as "of object" or "is nested", they can always refer to any kind of subroutine +% Subroutine references can refer to any kind of subroutine and hence do not +% require specialisation for methods or nested subroutines. +type_e_anonymous_function_unsupported=04999_E_Function references are not yet supported, only blocks (add "cdecl;" at the end) +% Remove this error message once Delphi-style anonymous are implemented. It has +% number 4999 so as not to result in a gap in the error message numbering once +% it's removed. +% \end{description} +# +# Symtable +# +# 05095 is the last used one +# +% \section{Symbol handling} +% This section lists all the messages that concern the handling of symbols. +% This means all things that have to do with procedure and variable names. +% \begin{description} sym_e_id_not_found=05000_E_Identificador não encontrado "$1" % The compiler doesn't know this symbol. Usually happens when you misspell % the name of a variable or procedure, or when you forget to declare a @@ -2028,8 +2245,8 @@ sym_w_experimental_unit=05079_W_Unidade "$1" é experimental % declared as \var{experimental} is used. Experimental units % might disappear or change semantics in future versions. Usage of this unit % should be avoided as much as possible. -sym_e_objc_formal_class_not_resolved=05080_E_Nenhuma definição completa da classe objeto formalmente declarada "$1" está no escopo -% Objecive-C classes can be imported formally, without using the the unit in which it is fully declared. +sym_e_formal_class_not_resolved=05080_E_No complete definition of the formally declared class "$1" is in scope +% Objecive-C and Java classes can be imported formally, without using the unit in which it is fully declared. % This enables making forward references to such classes and breaking circular dependencies amongst units. % However, as soon as you wish to actually do something with an entity of this class type (such as % access one of its fields, send a message to it, or use it to inherit from), the compiler requires the full definition @@ -2058,6 +2275,75 @@ sym_w_library_overload=05084_W_Possível conflito em biblioteca: símbolo "$1" d % This section lists all messages that can be displayed if the code % generator encounters an error condition. % \begin{description} +sym_e_duplicate_id_create_java_constructor=05085_E_Cannot add implicit constructor 'Create' because identifier already used by "$1" +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. In Java, constructors are nameless, +% but in FPC they are all called ``Create''. Therefore, if you do not add a constructor to +% a Java class and furthermore use the ``Create'' identifier for another entity (e.g., a field, +% or a parameterless method), the compiler cannot satisfy this requirement. +sym_e_no_matching_inherited_parameterless_constructor=05086_E_Cannot generate default constructor for class, because parent has no parameterless constructor +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. This compiler must then call +% the parameterless constructor from the parent class inside this added constructor. +% This is however impossible if the parent class does not declare such a constructor. +% In this case you must add a valid constructor yourself. +sym_d_adding_helper_for=05087_D_Adding helper for $1 +% A helper for the mentioned type is added to the current scope +sym_e_param_list=05088_E_Found declaration: $1 +% This message shows all overloaded declarations in case of an error. +sym_w_uninitialized_managed_local_variable=05089_W_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_uninitialized_managed_variable=05090_W_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_local_variable=05091_H_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. it did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_variable=05092_H_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. t did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_managed_function_result_uninitialized=05093_W_function result variable of a managed type does not seem to initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. before it appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_managed_function_result_uninitialized=05094_H_Function result variable of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. it appears in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_duplicate_id=05095_W_Duplicate identifier "$1" +% The identifier was already declared in an Objective-C category that's in the +% same scope as the current identifier. This is a warning instead of an error, +% because while this hides the identifier from the category, there are often +% many unused categories in scope. +% \end{description} +# +# Codegenerator +# +# 06049 is the last used one +# +% \section{Code generator messages} +% This section lists all messages that can be displayed if the code +% generator encounters an error condition. +% \begin{description} cg_e_parasize_too_big=06009_E_Tamanho da lista de parâmetros excede 65535 bytes % The I386 processor limits the parameter list to 65535 bytes. (The \var{RET} % instruction causes this.) @@ -2202,6 +2488,23 @@ cg_e_mod_only_defined_for_pos_quotient=06054_E_No modo ISO, o operador 'mod' é # # 07110 is the last used one # +cg_d_autoinlining=06055_DL_Auto inlining: $1 +% Due to auto inlining turned on, the compiler auto inlines this subroutine. +cg_e_function_not_support_by_selected_instruction_set=06056_E_The function used, is not supported by the selected instruction set: $1 +% Some functions cannot be implemented efficiently for certain instruction sets, one example is fused multiply/add. +% To avoid very inefficient code, the compiler complains in this case, so either select another instruction set +% or replace the function call by alternative code +cg_f_max_units_reached=06057_F_Maximum number of units ($1) reached for the current target +% Depending of target architecture, the number of units is limited. This limit +% has been reached. A unit counts only if it contains initialization or finalization count. +% +% \end{description} +# EndOfTeX +# +# Assembler reader +# +# 07125 is the last used one +# asmr_d_start_reading=07000_DL_Iniciando $1 análise estilo assembler % This informs you that an assembler block is being parsed asmr_d_finish_reading=07001_DL_Finalizada $1 análise estilo assembler @@ -2475,6 +2778,46 @@ asmr_e_unsupported_directive=07115_E_Diretiva "$1" não é suportada pelo alvo a # # 08022 is the last used one # +asmr_e_complex_function_result_location=07116_E_This function's result location cannot be encoded directly in a single operand when "nostackframe" is used +% Functions declared with the \var{nostackframe} modifier do not have a stack frame, and hence +% do not have a local variable to hold the temporary function result. Accesses to the function +% result in such routines directly go to the registers or memory location that will be used +% to return their result to the caller. In some cases this result may be spread over multiple +% registers, in which case it is not possible to access the location via its symbolic name. +% You have to directly use the appropriate register names in this case. +asmr_e_wrong_gotpcrel_intel_syntax=07117_E_GOTPCREL references in Intel assembler syntax cannot contain a base or index register, and their offset must 0. +% The syntax for a gotpcrel PIC memory expression in Intel assembler syntax is +% \verb*[global_symbol wrt ..gotpcrel]* +asmr_e_no_gotpcrel_support=07118_E_The current target does not support GOTPCREL relocations +% Not all targets support position-independent code using a global offset table. +% Use a different way to access symbols in a position-indepent way in these cases. +asmr_w_global_access_without_got=07119_W_Exported/global symbols should be accessed via the GOT +% Global symbols (symbols from the unit interface, or defined in a program +% or library) should be accessed via the GOT when generating position-indepent code. +asmr_w_check_mem_operand_size=07120_W_Check size of memory operand "$1" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size3=07121_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size_offset=07122_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits + $4 byte offset]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_negative_offset=07123_W_Check "$1: offset of memory operand is negative "$2 byte" +% The offset of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_automap_multiple_size=07124_W_Check "$1: size of memory operand is empty, but es exists different definitions of the memory size =>> map to $2 (smallest option)" +% The size of memory operand is empty and we have different definitions of possible memory sizes. Check it! +asmr_e_invalid_ref_register=07125_E_Invalid register used in memory reference expression: "$1" +% FPU, vector and sometimes integer registers cannot be used in memory reference +% expressions, due to limitations of the cpu architecture or simple because +% it is not meaningful. + +# +# Assembler/binary writers +# +# 08029 is the last used one +# asmw_f_too_many_asm_files=08000_F_Muitos arquivos assembler % With smartlinking enabled, there are too many assembler % files generated. Disable smartlinking. @@ -2526,6 +2869,27 @@ asmw_e_handlerdata_no_handler=08025_E_Diretiva .seh_handlerdata sem .seh_handler % This section lists errors that occur when the compiler is processing the % command line or handling the configuration files. % \begin{description} +asmw_f_too_many_relocations=08026_F_Relocation count for section $1 exceeds 65535 +% Legacy COFF targets limit number of relocations per section to 65535 because they use a 2-byte field +% to store the relocation count. Targets using newer PECOFF format do not have this limitation. +asmw_w_changing_bind_type=08027_N_Change of bind type of symbol $1 from $2 to $3 after use +asmw_h_changing_bind_type=08028_H_Change of bind type of symbol $1 from $2 to $3 after use +% An assembler symbol bind type has been altered after use, which can lead to wrong code. +% First version is reserved for changig to local label, which is the most probable cause +% of wrong code generation, but currently set to Note level as it appears inside +% the compiler compilation. +asmw_e_32bit_not_supported=08029_E_Asm: 32 Bit references not supported +# +# Executing linker/assembler +# +# 09035 is the last used one +# +# BeginOfTeX +% +% \section{Errors of assembling/linking stage} +% This section lists errors that occur when the compiler is processing the +% command line or handling the configuration files. +% \begin{description} exec_w_source_os_redefined=09000_W_Sistema operacional fonte redefinido % The source operating system is redefined. exec_i_assembling_pipe=09001_I_Montando (pipe) $1 @@ -2579,6 +2943,9 @@ exec_e_exe_not_supported=09018_E_Criação de Executáveis não suportada exec_e_dll_not_supported=09019_E_Criação de bibliotecas Dinâmicas/Compartilhadas não suportada % Creating dynamically loadable libraries is not supported for this platform, because it was % not yet implemented in the compiler. +exec_e_static_lib_not_supported=09035_E_Creation of Static Libraries not supported +% Creating static libraries is not supported for this platform, because it was +% not yet implemented in the compiler. exec_i_closing_script=09020_I_Fechando roteiro $1 % Informational message showing when writing of the external assembling and linking script is finished. exec_e_res_not_found=09021_E_Compilador recursos "$1" não encontrado, mudando para modo externo @@ -2613,6 +2980,23 @@ exec_n_backquote_cat_file_not_found=09033_N_Arquivo "$1" não encontrado para co %\end{description} # EndOfTeX +# +# Executable information +# +# 09134 is the last used one +# +# BeginOfTeX +% \section{Executable information messages.} +% This section lists all messages that the compiler emits when an executable program is produced, +% and only when the internal linker is used. +% \begin{description} +exec_w_init_file_not_found=09034_W_"$1" not found, this will probably cause a linking failure +% The compiler adds certain startup code files to the linker only when they are found. +% If they are not found, they are not added and this might cause a linking failure. +% +%\end{description} +# EndOfTeX + # # Executable information # @@ -2871,6 +3255,17 @@ unit_u_indirect_crc_changed=10062_U_CRC interface indireta (objetos/classes) alt # # 11049 is the last used one # +unit_u_ppu_invalid_memory_model=10063_U_PPU is compiled for another i8086 memory model +% This unit file was compiled for a different i8086 memory model and +% cannot be read. +% \end{description} +# EndOfTeX + +# +# Options +# +# 11057 is the last used one +# option_usage=11000_O_$1 [options] [options] # BeginOfTeX % @@ -3001,6 +3396,39 @@ option_dwarf_smartlink_creation=11049_N_Informação de depuração DWARF não p %\end{description} # EndOfTeX +# +# Whole program optimization +# +# 12019 is the last used one +# +# BeginOfTeX +% +% \section{Whole program optimization messages} +% This section lists errors that occur when the compiler is performing +% whole program optimization. +% \begin{description} +option_invalid_macosx_deployment_target=11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variable: $1 +option_invalid_iphoneos_deployment_target=11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment variable: $1 +% On Mac OS X, the MACOSX\_DEPLOYMENT\_TARGET/IPHONEOS\_DEPLOYMENT\_TARGET environment variable can be +% used to set the default target OS version. In case of Mac OS X, it has to be of the format +% XY.Z or XY.Z.AB with X, Y,Z , A and B all digits from 0-9. +% In case of iOS, it has to be X.Z.A, where X, Z and A can all be either 1 or 2 +% digits from 0-9. +option_illegal_fpu_eabihf=11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when using the EABIHF ABI target +% The EABIHF (VFP hardfloat) ABI target can only be used with VFP FPUs. +option_w_unsupported_debug_format=11053_W_The selected debug format is not supported on the current target, not changing the current setting +% Not all targets support all debug formats (in particular, Stabs is not supported on 64 bit targets). +option_missing_arg=11054_E_argument to "$1" is missing +% Displayed when parameter must be followed by an argument. +option_malformed_para=11055_E_malformed parameter: $1 +% Given argument is not valid for parameter. +option_smart_link_requires_external_linker=11056_W_Smart linking requires external linker +option_com_files_require_tiny_model=11057_E_Creating .COM files is not supported in the current memory model. Only the tiny memory model supports making .COM files. + + +%\end{description} +# EndOfTeX + # # Whole program optimization # @@ -3441,3 +3869,54 @@ P*2WT_Especifica aplicação do tipo ferramenta MPW (Classic Mac OS) # # The End... +%%% parser_e_constructors_always_objects=03081_E_Construtores, destruidores e operadores de classe devem ser métodos +% You're declaring a procedure as destructor, constructor or class operator, when the +% procedure isn't a class method. +%%% parser_e_absolute_only_one_var=03095_E_Absolute só pode estar associada a uma variável +% You cannot specify more than one variable before the \var{absolute} directive. +% Thus, the following construct will provide this error: +% \begin{verbatim} +% Var Z : Longint; +% X,Y : Longint absolute Z; +% \end{verbatim} +%%% parser_e_must_use_override_objc=03273_E_Métodos herdados podem apenas ser sobrepostos em Objective-C, adicione "OVERRIDE" (método herdado definido em $1) +%%% parser_h_should_use_override_objc=03274_H_Métodos herdados podem apenas ser sobrepostos em Objective-C, adicione "OVERRIDE" (método herdado definido em $1). +% It is not possible to \var{reintroduce} methods in Objective-C like in Object Pascal. Methods with the same +% name always map to the same virtual method entry. In order to make this clear in the source code, +% the compiler always requires the \var{override} directive to be specified when implementing overriding +% Objective-C methods in Pascal. If the implementation is external, this rule is relaxed because Objective-C +% does not have any \var{override}-style keyword (since it's the default and only behaviour in that language), +% which makes it hard for automated header conversion tools to include it everywhere. +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory. +%%% parser_e_no_objc_unique=03276_E_Ainda não é possível fazer cópias únicas de tipos Objective-C +% Duplicating an Objective-C type using \var{type x = type y;} is not yet supported. You may be able to +% obtain the desired effect using \var{type x = objcclass(y) end;} instead. +%%% parser_e_forward_protocol_declaration_must_be_resolved=03298_E_Declaração posterior de objcprotocl "$1" deve ser resolvida antes de uma objcclass possa conformá-la +% An objcprotocol must be fully defined before classes can conform to it. +% This error occurs in the following situation: +% \begin{verbatim} +% Type MyProtocol = objcprotoocl; +% ChildClass = Class(NSObject,MyProtocol) +% ... +% end; +% \end{verbatim} +% where \var{MyProtocol} is declared but not defined. +%%% parser_e_no_constructor_in_records=03302_E_Construtores não são permitidos em registros ou auxiliares de registro +% Constructor declarations aren't allowed in records or record helpers. +%%% type_w_signed_unsigned_always_false=04044_W_Comparação pode ser sempre falsa devido a faixa da constante e expressão +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% false. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. +%%% type_w_signed_unsigned_always_true=04045_W_Comparação pode ser sempre verdadeira devido a faixa da constante e expressão +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% true. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. +%%% sym_e_objc_formal_class_not_resolved=05080_E_Nenhuma definição completa da classe objeto formalmente declarada "$1" está no escopo +% Objecive-C classes can be imported formally, without using the the unit in which it is fully declared. +% This enables making forward references to such classes and breaking circular dependencies amongst units. +% However, as soon as you wish to actually do something with an entity of this class type (such as +% access one of its fields, send a message to it, or use it to inherit from), the compiler requires the full definition +% of the class to be in scope. diff --git a/compiler/msg/errorru.msg b/compiler/msg/errorru.msg index 524a1064b5..b78fc8f460 100644 --- a/compiler/msg/errorru.msg +++ b/compiler/msg/errorru.msg @@ -1,3 +1,5 @@ +%%% Reordering of errorru.msg respective to errore.msg +%%% Contains all comments from errorru.msg # # This file is part of the Free Pascal Compiler # Copyright (c) 1999-2009 by the Free Pascal Development team @@ -141,6 +143,22 @@ general_i_number_of_notes=01023_I_$1 заметок % зарезервированные слова, строки, и т.д. Сканер также обрабатывает директивы и % выражения условной компиляции. % \begin{description} +general_f_ioerror=01024_F_I/O error: $1 +% During compilation an I/O error happened which allows no further compilation. +general_f_oserror=01025_F_Operating system error: $1 +% During compilation an operating system error happened which allows no further compilation. +% \end{description} +# +# Scanner +# +# 02098 is the last used one +# +% \section{Scanner messages.} +% This section lists the messages that the scanner emits. The scanner takes +% care of the lexical structure of the pascal file, i.e. it tries to find +% reserved words, strings, etc. It also takes care of directives and +% conditional compilation handling. +% \begin{description} scan_f_end_of_file=02000_F_Hеожиданный конец файла % Это обычно происходит в следующих случаях: % \begin{itemize} @@ -365,6 +383,54 @@ scan_w_multiple_main_name_overrides=02086_W_Многократное указа % Синтаксический анализатор осуществляет семантический анализ, т.е. % определяет правильность выражений Паскаля. % \begin{description} +scanner_w_illegal_warn_identifier=02087_W_Illegal identifier "$1" for $WARN directive +% Identifier is not known by a \var{\{\$WARN\}} compiler directive. +scanner_e_illegal_alignment_directive=02088_E_Illegal alignment directive +% The alignment directive is not valid. Either the alignment type is not known or the alignment +% value is not a power of two. +scanner_f_illegal_utf8_bom=02089_F_It is not possible to include a file that starts with an UTF-8 BOM in a module that uses a different code page +% All source code that is part of a single compilation entity (program, library, unit) must be encoded +% in the same code page +scanner_w_directive_ignored_on_target=02090_W_Directive "$1" is ignored for the current target platform +% Some directives are ignored for certain targets, such as changing the +% packrecords and packenum settings on managed platforms. +scan_w_unavailable_system_codepage=02091_W_Current system codepage "$1" is not available for the compiler. Switching default codepage back to "$2". +% The current system codepage is not known by the compiler. +% The compiler is compiled with support for several codepages built-in. +% The codepage of the operation system is not in that list. You will need to recompile +% the compiler with support for this codepage. +scan_w_setpeoptflags_not_support=02092_W_SETPEOPTFLAGS is not supported by the target OS +% The \var{\{\$SETPEOPTFLAGS\}} directive is not supported by the target OS. +scan_e_illegal_peflag=02093_E_Illegal argument for SETPEFLAGS +% The given argument for SETPEFLAGS is neither a correct named value nor an +% ordinal value +scan_e_illegal_peoptflag=02094_E_Illegal argument for SETPEOPTFLAGS +% The given argument for SETPEOPTFLAGS is neither a correct named value nor an +% ordinal value +scan_e_unsupported_switch=02095_E_Directive $1 is not supported on this target +% Not all compiler directives are supported on all targets. +scan_w_invalid_stacksize=02096_W_The specified stack size is not within the valid range for the platform. Setting the stack size ignored. +% The valid range for the stack size is 1024 - 67107839 on 32-bit and 64-bit +% platforms and 1024 - 65520 on 16-bit platforms. Additionally, for Turbo Pascal 7 +% compatibility reasons, specifying a stack size of 65521 on 16-bit platforms +% actually sets the stack size to 65520. +scan_w_heapmax_lessthan_heapmin=02097_W_The specified HeapMax value is smaller than the HeapMin value. Setting HeapMax ignored. +% The HeapMax value (if specified) must be greater than or equal to the HeapMin +% value. Otherwise, the HeapMax value is ignored. +scan_e_illegal_hugepointernormalization=02098_E_Illegal argument for HUGEPOINTERNORMALIZATION +% The only allowed values for HUGEPOINTERNORMALIZATION are BORLANDC, MICROSOFTC +% and WATCOMC. +% \end{description} +# +# Parser +# +# 03339 is the last used one +# +% \section{Parser messages} +% This section lists all parser messages. The parser takes care of the +% semantics of you language, i.e. it determines if your Pascal constructs +% are correct. +% \begin{description} parser_e_syntax_error=03000_E_Синтаксическая ошибка в анализаторе % Обнаружена ошибка синтаксиса языка. Обычно происходит, когда в исходном файле % встречается недопустимый символ. @@ -492,8 +558,8 @@ parser_e_fail_only_in_constructor=03051_E_FAIL допустим только в parser_e_no_paras_for_destructor=03052_E_Дестpyктоpы не могyт иметь паpаметpов % Деструктор объявлен со списком параметров. Методы деструкторов не могут иметь параметров. % cannot have parameters. -parser_e_only_class_methods_via_class_ref=03053_E_По ссылке на класс могут быть вызваны только класс-методы -% Ошибка возникает в следующей ситуации: +parser_e_only_class_members_via_class_ref=03053_E_Only class methods, class properties and class variables can be referred with class references +% This error occurs in a situation like the following: % \begin{verbatim} % Type : % Tclass = Class of Tobject; @@ -504,17 +570,19 @@ parser_e_only_class_methods_via_class_ref=03053_E_По ссылке на кла % ... % C.free % \end{verbatim} -% \var{Free} не является класс-методом и поэтому не может быть вызван по ссылке на класс. -parser_e_only_class_methods=03054_E_В класс-методах доступны только другие класс-методы -% Имеет отношение к предыдущей ошибке. Из класс-метода нельзя вызвать обычный метод объекта. -% Следующий код приведет к этой ошибке: +% \var{Free} is not a class method and hence cannot be called with a class +% reference. +parser_e_only_class_members=03054_E_Only class methods, class properties and class variables can be accessed in class methods +% This is related to the previous error. You cannot call a method of an object +% from inside a class method. The following code would produce this error: % \begin{verbatim} % class procedure tobject.x; % % begin % free % \end{verbatim} -% Поскольку free является обычным методом, его нельзя вызвать из класс-метода. +% Because free is a normal method of a class it cannot be called from a class +% method. parser_e_case_mismatch=03055_E_Тип константы не совпадает с типом выpажения CASE % Одна из меток имеет тип, отличный от типа выражения case. parser_e_illegal_symbol_exported=03056_E_Символ не может быть экспортирован из библиотеки @@ -623,9 +691,10 @@ parser_e_mix_of_classes_and_objects=03093_E_Смешивание различн % class не может быть порожден от object, и наоборот. parser_w_unknown_proc_directive_ignored=03094_W_Неизвестная директива процедуры: "$1", игнорировано % Указанная директива процедуры неизвестна компилятору. -parser_e_absolute_only_one_var=03095_E_ABSOLUTE может быть указано только для одной пеpеменной -% Нельзя указывать более одной переменной перед директивой \var{absolute}. -% Следующая конструкция приведет к ошибке: +parser_e_directive_only_one_var=03095_E_$1 can be associated with only one variable +% You cannot specify more than one variable before the \var{absolute}, \var{export}, \var{external}, +% \var{weakexternal}, \var{public} and \var{cvar} directives. +% As a result, for example the following construct will provide this error: % \begin{verbatim} % Var Z : Longint; % X,Y : Longint absolute Z; @@ -1036,9 +1105,9 @@ parser_e_packed_element_no_loop=03223_E_Элементы/поля побитно % Поля записи или элементы массива, объявленных как \var{packed} в режиме Mac Pascal (либо как % \var{packed} в любом режиме при условии \var{\{\$bitpacking on\}}), будут упакованы на уровне % бит. По причинам быстродействия их нельзя использовать как переменные для for-цикла. -parser_e_type_and_var_only_in_generics=03224_E_VAR и TYPE допустимы только в обобщениях (generic) -% Использование VAR и TYPE для объявления новых типов внутри объекта разрешается только для -% обобщений. +parser_e_type_var_const_only_in_records_and_classes=03224_E_VAR, TYPE and CONST are allowed only in records, objects and classes +% The usage of VAR, TYPE and CONST to declare new types inside an object is allowed only inside +% records, objects and classes. parser_e_cant_create_generics_of_this_type=03225_E_Этот тип не может быть обобщением % Обобщения допускаются только для классов, объектов, интерфейсов и записей. parser_w_no_lineinfo_use_switch=03226_W_Не подключайте модуль LINEINFO вручную, используйте для этого ключ -gl @@ -1126,6 +1195,318 @@ parser_e_no_local_para_def=03252_E_Параметры не могут содер % В разделе перечислены все ошибки, которые могут возникать в процессе % проверки типов. % \begin{description} +parser_e_abstract_and_sealed_conflict=03253_E_ABSTRACT and SEALED conflict +% ABSTRACT and SEALED cannot be used together in one declaration +parser_e_sealed_descendant=03254_E_Cannot create a descendant of the sealed class "$1" +% Sealed means that class cannot be derived by another class. +parser_e_sealed_class_cannot_have_abstract_methods=03255_E_SEALED class cannot have an ABSTRACT method +% Sealed means that class cannot be derived. Therefore no one class is able to override an abstract method in a sealed class. +parser_e_only_virtual_methods_final=03256_E_Only virtual methods can be final +% You are declaring a method as final, when it is not declared to be +% virtual. +parser_e_final_can_no_be_overridden=03257_E_Final method cannot be overridden: "$1" +% You are trying to \var{override} a virtual method of a parent class that does +% not exist. +parser_e_multiple_messages=03258_E_Only one message can be used per method. +% It is not possible to associate multiple messages with a single method. +parser_e_invalid_enumerator_identifier=03259_E_Invalid enumerator identifier: "$1" +% Only "MoveNext" and "Current" enumerator identifiers are supported. +parser_e_enumerator_identifier_required=03260_E_Enumerator identifier required +% "MoveNext" or "Current" identifier must follow the \var{enumerator} modifier. +parser_e_enumerator_movenext_is_not_valid=03261_E_Enumerator MoveNext pattern method is not valid. Method must be a function with the Boolean return type and no required arguments. +% "MoveNext" enumerator pattern method must be a function with Boolean return type and no required arguments +parser_e_enumerator_current_is_not_valid=03262_E_Enumerator Current pattern property is not valid. Property must have a getter. +% "Current" enumerator pattern property must have a getter +parser_e_only_one_enumerator_movenext=03263_E_Only one enumerator MoveNext method is allowed per class/object +% Class or Object can have only one enumerator MoveNext declaration. +parser_e_only_one_enumerator_current=03264_E_Only one enumerator Current property is allowed per class/object +% Class or Object can have only one enumerator Current declaration. +parser_e_for_in_loop_cannot_be_used_for_the_type=03265_E_For in loop cannot be used for the type "$1" +% For in loop can be used not for all types. For example it cannot be used for the enumerations with jumps. +parser_e_objc_requires_msgstr=03266_E_Objective-C messages require their Objective-C selector name to be specified using the "message" directive. +% Objective-C messages require their Objective-C name (selector name) to be specified using the \var{message `someName:'} procedure directive. +% While bindings to other languages automatically generate such names based on the identifier you use (by replacing +% all underscores with colons), this is unsafe since nothing prevents an Objective-C method name to contain actual +% colons. +parser_e_objc_no_constructor_destructor=03267_E_Objective-C does not have formal constructors nor destructors. Use the alloc, initXXX and dealloc messages. +% The Objective-C language does not have any constructors or destructors. While there are some messages with a similar +% purpose (such as \var{init} and \var{dealloc}), these cannot be identified using automatic parsers and do not +% guarantee anything like Pascal constructors/destructors (e.g., you have to take care of only calling ``designated'' +% inherited ``constructors''). For these reasons, we have opted to follow the standard Objective-C patterns for +% instance creation/destruction. +parser_e_message_string_too_long=03268_E_Message name is too long (max. 255 characters) +% Due to compiler implementation reasons, message names are currently limited to 255 characters. +parser_e_objc_message_name_too_long=03269_E_Objective-C message symbol name for "$1" is too long +% Due to compiler implementation reasons, mangled message names (i.e., the symbol names used in the assembler +% code) are currently limited to 255 characters. +parser_h_no_objc_parent=03270_H_Defining a new Objective-C root class. To derive from another root class (e.g., NSObject), specify it as the parent class. +% If no parent class is specified for an Object Pascal class, then it automatically derives from TObject. +% Objective-C classes however do not automatically derive from NSObject, because one can have multiple +% root classes in Objective-C. For example, in the Cocoa framework both NSObject and NSProxy are root classes. +% Therefore, you have to explicitly define a parent class (such as NSObject) if you want to derive your +% Objective-C class from it. +parser_e_no_objc_published=03271_E_Objective-C classes cannot have published sections. +% In Object Pascal, ``published'' determines whether or not RTTI is generated. Since the Objective-C runtime always needs +% RTTI for everything, this specified does not make sense for Objective-C classes. +parser_f_need_objc=03272_F_This module requires an Objective-C mode switch to be compiled +% This error indicates the use of Objective-C language features without an Objective-C mode switch +% active. Enable one via the -M command line switch, or the {\$modeswitch x} directive. +parser_e_must_use_override=03273_E_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1) +parser_h_should_use_override=03274_H_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1). +% It is not possible to \var{reintroduce} methods in Objective-C or Java like in Object Pascal. Methods with the same +% name always map to the same virtual method entry. In order to make this clear in the source code, +% the compiler always requires the \var{override} directive to be specified when implementing overriding +% Objective-C or Java methods in Pascal. If the implementation is external, this rule is relaxed because Objective-C and Java +% do not have any \var{override}-style keyword (since it's the default and only behaviour in these languages), +% which makes it hard for automated header conversion tools to include it everywhere. +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory in case of Objective-C. +parser_e_objc_message_name_changed=03275_E_Message name "$1" in inherited class is different from message name "$2" in current class. +% An overriding Objective-C method cannot have a different message name than an inherited method. The reason +% is that these message names uniquely define the message to the Objective-C runtime, which means that +% giving them a different message name breaks the ``override'' semantics. +parser_e_unique_unsupported=03276_E_It is not yet possible to make unique copies of Objective-C or Java types +% Duplicating an Objective-C or Java type using \var{type x = type y;} is not yet supported. You may be able to +% obtain the desired effect using \var{type x = objcclass(y) end;} resp.{} \var{type x = class(y) end;} instead. +parser_e_no_category_as_types=03277_E_Objective-C categories and Object Pascal class helpers cannot be used as types +% It is not possible to declare a variable as an instance of an Objective-C +% category or an Object Pascal class helper. A category/class helper adds +% methods to the scope of an existing class, but does not define a type by +% itself. An exception of this rule is when inheriting an Object Pascal class +% helper from another class helper. +parser_e_no_category_override=03278_E_Categories do not override, but replace methods. Use "reintroduce" instead. +parser_e_must_use_reintroduce_objc=03279_E_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +parser_h_should_use_reintroduce_objc=03280_H_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +% A category replaces an existing method in an Objective-C class, rather than that it overrides it. +% Calling an inherited method from an category method will call that method in +% the extended class' parent, not in the extended class itself. The +% replaced method in the original class is basically lost, and can no longer be +% called or referred to. This behaviour corresponds somewhat more closely to +% \var{reintroduce} than to \var{override} (although in case of \var{reintroduce} +% in Object Pascal, hidden methods are still reachable via inherited). +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory. +parser_e_implements_getter_not_default_cc=03281_E_Getter for implements interface must use the target's default calling convention. +% Interface getters are called via a helper in the run time library, and hence +% have to use the default calling convention for the target (\var{register} on +% i386 and x86\_64, \var{stdcall} on other architectures). +parser_e_no_refcounted_typed_file=03282_E_Typed files cannot contain reference-counted types. +% The data in a typed file cannot be of a reference counted type (such as +% \var{ansistring} or a record containing a field that is reference counted). +parser_e_operator_not_overloaded_2=03283_E_Operator is not overloaded: $2 "$1" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_operator_not_overloaded_3=03284_E_Operator is not overloaded: "$1" $2 "$3" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_more_array_elements_expected=03285_E_Expected another $1 array elements +% When declaring a typed constant array, you provided to few elements to initialize the array +parser_e_string_const_too_long=03286_E_String constant too long while ansistrings are disabled +% Only when a piece of code is compiled with ansistrings enabled (\var{\{\$H+\}}), string constants +% longer than 255 characters are allowed. +parser_e_invalid_univ_para=03287_E_Type cannot be used as univ parameter because its size is unknown at compile time: "$1" +% \var{univ} parameters are compatible with all values of the same size, but this +% cannot be checked in case a parameter's size is unknown at compile time. +parser_e_only_one_class_constructor_allowed=03288_E_Only one class constructor can be declared in class: "$1" +% You are trying to declare more than one class constructor but only one class constructor can be declared. +parser_e_only_one_class_destructor_allowed=03289_E_Only one class destructor can be declared in class: "$1" +% You are trying to declare more than one class destructor but only one class destructor can be declared. +parser_e_no_paras_for_class_constructor=03290_E_Class constructors cannot have parameters +% You are declaring a class constructor with a parameter list. Class constructor methods +% cannot have parameters. +parser_e_no_paras_for_class_destructor=03291_E_Class destructors cannot have parameters +% You are declaring a class destructor with a parameter list. Class destructor methods +% cannot have parameters. +parser_f_modeswitch_objc_required=03292_F_This construct requires the \{\$modeswitch objectivec1\} mode switch to be active +% Objective-Pascal constructs are not supported when \{\$modeswitch ObjectiveC1\} +% is not active. +parser_e_widestring_to_ansi_compile_time=03293_E_Unicodechar/string constants cannot be converted to ansi/shortstring at compile-time +% It is not possible to use unicodechar and unicodestring constants in +% constant expressions that have to be converted into an ansistring or shortstring +% at compile time, for example inside typed constants. The reason is that the +% compiler cannot know what the actual ansi encoding will be at run time. +parser_e_objc_enumerator_2_0=03294_E_For-in Objective-Pascal loops require \{\$modeswitch ObjectiveC2\} to be active +% Objective-C ``fast enumeration'' support was added in Objective-C 2.0, and +% hence the appropriate modeswitch has to be activated to expose this feature. +% Note that Objective-C 2.0 programs require Mac OS X 10.5 or later. +parser_e_objc_missing_enumeration_defs=03295_E_The compiler cannot find the NSFastEnumerationProtocol or NSFastEnumerationState type in the CocoaAll unit +% Objective-C for-in loops (fast enumeration) require that the compiler can +% find a unit called CocoaAll that contains definitions for the +% NSFastEnumerationProtocol and NSFastEnumerationState types. If you get this +% error, most likely the compiler is finding and loading an alternate CocoaAll +% unit. +parser_e_no_procvarnested_const=03296_E_Typed constants of the type 'procedure is nested' can only be initialized with NIL and global procedures/functions +% A nested procedural variable consists of two components: the address of the +% procedure/function to call (which is always known at compile time), and also +% a parent frame pointer (which is never known at compile time) in case the +% procedural variable contains a reference to a nested procedure/function. +% Therefore such typed constants can only be initialized with global +% functions/procedures since these do not require a parent frame pointer. +parser_f_no_generic_inside_generic=03297_F_Declaration of generic class inside another generic class is not allowed +% At the moment, scanner supports recording of only one token buffer at the time +% (guarded by internal error 200511173 in tscannerfile.startrecordtokens). +% Since generics are implemented by recording tokens, it is not possible to +% have declaration of generic class inside another generic class. +parser_e_forward_intf_declaration_must_be_resolved=03298_E_Forward declaration "$1" must be resolved before a class can conform to or implement it +% An Objective-C protocol or Java Interface must be fully defined before classes can conform to it. +% This error occurs in the following situation (example for Objective-C, but the same goes for Java interfaces): +% \begin{verbatim} +% Type MyProtocol = objcprotoocl; +% ChildClass = Class(NSObject,MyProtocol) +% ... +% end; +% \end{verbatim} +% where \var{MyProtocol} is declared but not defined. +parser_e_no_record_published=03299_E_Record types cannot have published sections +% Published sections can be used only inside classes. +parser_e_no_destructor_in_records=03300_E_Destructors are not allowed in records or helpers +% Destructor declarations are not allowed in records or helpers. +parser_e_class_methods_only_static_in_records=03301_E_Class methods must be static in records +% Class methods declarations are not allowed in records without static modifier. +% Records have no inheritance and therefore non static class methods have no sense for them. +parser_e_no_parameterless_constructor_in_records=03302_E_Parameterless constructors are not allowed in records or record/type helpers +% Constructor declarations with no arguments are not allowed in records or record/type helpers. +parser_e_at_least_one_argument_must_be_of_type=03303_E_Either the result or at least one parameter must be of type "$1" +% It is required that either the result of the routine or at least one of its parameters be of the specified type. +% For example class operators either take an instance of the structured type in which they are defined, or they return one. +parser_e_cant_use_type_parameters_here=03304_E_Type parameters may require initialization/finalization - cannot be used in variant records +% Type parameters may be specialized with types which (e.g. \var{ansistring}) need initialization/finalization +% code which is implicitly generated by the compiler. +parser_e_externals_no_section=03305_E_Variables being declared as external cannot be in a custom section +% A section directive is not valid for variables being declared as external. +parser_e_section_no_locals=03306_E_Non-static and non-global variables cannot have a section directive +% A variable placed in a custom section is always statically allocated so it must be either a static or global variable. +parser_e_not_allowed_in_helper=03307_E_"$1" is not allowed in helper types +% Some directives and specifiers like "virtual", "dynamic", "override" are not +% allowed inside helper types in mode ObjFPC (they are ignored in mode Delphi), +% because they have no meaning within helpers. Also "abstract" isn't allowed in +% either mode. +parser_e_no_class_constructor_in_helpers=03308_E_Class constructors are not allowed in helpers +% Class constructor declarations are not allowed in helpers. +parser_e_inherited_not_in_record=03309_E_The use of "inherited" is not allowed in a record +% As records don't support inheritance the use of "inherited" is prohibited for +% these as well as for record helpers (in mode "Delphi" only). +parser_e_no_types_in_local_anonymous_records=03310_E_Type declarations are not allowed in local or anonymous records +% Records with types must be defined globally. Types cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_duplicate_implements_clause=03311_E_Duplicate implements clause for interface "$1" +% A class may delegate an interface using the "implements" clause only to a single property. Delegating it multiple times +% is a error. +parser_e_mapping_no_implements=03312_E_Interface "$1" cannot be delegated by "$2", it already has method resolutions +% Method resolution clause maps a method of an interface to a method of the current class. Therefore the current class +% has to implement the interface directly. Delegation is not possible. +parser_e_implements_no_mapping=03313_E_Interface "$1" cannot have method resolutions, "$2" already delegates it +% Method resolution is only possible for interfaces that are implemented directly, not by delegation. +parser_e_invalid_codepage=03314_E_Invalid codepage +% When declaring a string with a given codepage, the range of valid codepages values is limited +% to 0 to 65535. +parser_e_final_only_const_var=03315_E_Only fields (var-sections) and constants can be final in object types +% A final (class) field must be assigned a single value in the (class) constructor, and cannot +% be overwritten afterwards. A final (typed) constant is read-only. +parser_e_final_only_external=03316_E_Final fields are currently only supported for external classes +% Support for final fields in non-external classes requires a full data flow +% analysis implementation in FPC, which it currently still lacks. +parser_e_no_typed_const=03317_E_Typed constants are not allowed here, only formal constants are +% Java interfaces define a namespace in which formal constant can be defined, +% but since they define no storage it is not possible to define typed constants +% in them (those are more or less the same as initialised class fields). +parser_e_java_no_inherited_constructor=03318_E_Constructors are not automatically inherited in the JVM; explicitly add a constructor that calls the inherited one if you need it +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% For compatibility with external Java code, FPC does the same. If you require access to the same +% constructors in a child class, define them in the child class and call the inherited one from +% there. +parser_d_internal_parser_string=03319_D_Parsing internally generated code: $1 +% The compiler sometimes internally constructs Pascal code that is subsequently +% injected into the program. These messages display such code, in order to help +% with debugging errors in them. +parser_e_feature_unsupported_for_vm=03320_E_This language feature is not supported on managed VM targets +% Certain language features are not supported on targets that are managed virtual machines. +parser_e_jvm_invalid_virtual_constructor_call=03321_E_Calling a virtual constructor for the current instance inside another constructor is not possible on the JVM target +% The JVM does not natively support virtual constructor. Unforunately, we are not aware of a way to +% emulate them in a way that makes it possible to support calling virtual constructors +% for the current instance inside another constructor. +parser_e_method_lower_visibility=03322_E_Overriding method "$1" cannot have a lower visibility ($2) than in parent class $3 ($4) +% The JVM does not allow lowering the visibility of an overriding method. +parser_e_nostackframe_without_assembler=03323_E_Procedure/Function declared with call option NOSTACKFRAME but without ASSEMBLER +% nostackframe call modifier is supposed to be used in conjunction with assembler. +parser_e_nostackframe_with_locals=03324_E_Procedure/Function declared with call option NOSTACKFRAME but local stack size is $1 +% nostackframe call modifier used without assembler modifier +% might still generate local stack needs. +parser_e_cannot_generate_property_getter_setter=03325_E_Cannot generate property getter/setter $1 because its name clashes with existing identifier $2 +% Automatically generated getters/setters cannot have the same name as existing +% identifiers, because this may change the behaviour of existing code. +parser_w_overriding_property_getter_setter=03326_W_Automatically generated property getter/setter $1 overrides the same-named getter/setter in class $2 +% Automatically generated property getters/setters on the JVM platform are virtual methods, because +% the JVM does not support non-virtual methods that can be changed in child classes. This means +% that if a child class changes an inherited property definition, the behaviour of that property +% can change compared to native targets since even if a variable is declared as the parent type, +% by calling the virtual method the getter from the child will be used. This is different from +% the behaviour on native targets or when not activating automatically generated setters/getters, +% because in that case only the declared type of a variable influences the property behaviour. +parser_w_case_difference_auto_property_getter_setter_prefix=03327_W_Case mismatch between declared property getter/setter $1 and automatically constructed name $2, not changing declared name +% If a property's specified getter/setter already corresponded to the naming convention specified +% by the automatic getter/setter generation setting except in terms of upper/lowercase, the +% compiler will print a warning because it cannot necessarily change that other declaration itself +% not can it add one using the correct case (it could conflict with the original declaration). +% Manually correct the case of the getter/setter to conform to the desired coding rules. +% \var{TChild} overrides +parser_e_no_consts_in_local_anonymous_records=03328_E_Constants declarations are not allowed in local or anonymous records +% Records with constants must be defined globally. Constants cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_methods_in_local_anonymous_records=03329_E_Method declarations are not allowed in local or anonymous records +% Records with methods must be defined globally. Methods cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_properties_in_local_anonymous_records=03330_E_Property declarations are not allowed in local or anonymous records +% Records with properties must be defined globally. Properties cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_class_in_local_anonymous_records=03331_E_Class member declarations are not allowed in local or anonymous records +% Records with class members must be defined globally. Class members cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_not_allowed_in_record=03332_E_Visibility section "$1" not allowed in records +% The visibility sections \var(protected) and \var(strict protected) are only +% useful together with inheritance. Since records do not support that they are +% forbidden. +parser_e_dir_not_allowed=03333_E_Directive "$1" not allowed here +% This directive is not allowed in the given context. E.g. "static" +% is not allowed for instance methods or class operators. +parser_e_no_assembler_in_generic=03334_E_Assembler blocks not allowed inside generics +% The use of assembler blocks/routines is not allowed inside generics. +parser_e_property_only_sgr=03335_E_Properties can be only static, global or inside structured types +% Properties cannot be declared local, only global, using the static +% directive or inside structured types. +parser_e_overloaded_have_same_mangled_name=03336_E_Overloaded routines have the same mangled name +% Some platforms, such as the JVM platform, encode the parameters in the routine name in +% a prescribed way, and this encoding may map different Pascal types to the same encoded +% (a.k.a.\ ``mangled'') name. This error can only be solved by removing or changing the +% conflicting definitions' parameter declarations or routine names. +parser_e_default_value_val_const=03337_E_Default values can only be specified for value, const and constref parameters +% A default parameter value allows you to not specify a value for this parameter +% when calling the routine, and the compiler will instead pass the specified +% default (constant) value. As a result, default values can only be specified +% for parameters that can accept constant values. +parser_w_ptr_type_ignored=03338_W_Pointer type "$1" ignored +% The specified pointer type modifier is ignored, because it is not supported on +% the current platform. This happens, for example, when a far pointer is +% declared on a non-x86 platform. +parser_e_global_generic_references_static=03339_E_Global Generic template references static symtable +% A generic declared in the interface section of a unit must not reference symbols that belong +% solely to the implementation section of that unit. +parser_u_already_compiled=03340_UL_Unit $1 has been already compiled meanwhile. +% This tells you that the recursive reading of the uses clauses triggered already +% a compilation of the current unit, so the current compilation can be aborted. +% +% +% +% \end{description} +% +# Type Checking +# +# 04123 is the last used one +# +% \section{Type checking errors} +% This section lists all errors that can occur when type checking is +% performed. +% \begin{description} type_e_mismatch=04000_E_Тип не совпадает % Может иметь место во многих случаях: % \begin{itemize} @@ -1293,12 +1674,16 @@ type_e_type_is_not_completly_defined=04042_E_Тип "$1" не определен type_w_string_too_long=04043_W_Строковый литерал содержит больше символов, чем может вместить shortstring % Попытка присвоить короткой строке константное значение, которое содержит больше символов, % чем максимальная длина строки. -type_w_signed_unsigned_always_false=04044_W_Сравнение всегда ложно из-за диапазонов значений -% Сравнение беззнакового значения со знаковой константой, меньшей нуля. Результат такого выражения -% будет всегда ложным. Следует явно привести тип константы к нужному диапазону. -type_w_signed_unsigned_always_true=04045_W_Сравнение всегда истинно из-за диапазонов значений -% Сравнение беззнакового значения со знаковой константой, меньшей нуля. Результат такого выражения -% будет всегда истинным. Следует явно привести тип константы к нужному диапазону. +type_w_comparison_always_false=04044_W_Comparison might be always false due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% false. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. +type_w_comparison_always_true=04045_W_Comparison might be always true due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% true. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. type_w_instance_with_abstract=04046_W_Создание класса "$1" с абстрактным методом "$2" % Создается экземпляр класса, содержащего неперекрытый абстрактный метод. % Вызов такого метода во время выполнения программы приведет к ошибке 211. @@ -1385,9 +1770,9 @@ type_w_pointer_to_signed=04082_W_Приведение указателей к ц % допускают указатели в диапазоне от \$0000000 до \$bfffffff. Если приводить указатели к знаковым типам, % могут возникать ошибки переполнения и диапазона, кроме того, \$80000000 < \$7fffffff. % Это может вызывать случайные ошибки в коде наподобие "if p>q". -type_interface_has_no_guid=04083_E_Тип интерфейса $1 не имеет GUID -% При использовании оператора as нужный интерфейс, т.е правый операнд оператора as, -% должен иметь правильный GUID. +type_e_interface_has_no_guid=04083_E_Interface type $1 has no valid GUID +% When applying the as-operator to an interface or class, the desired interface (i.e. the right operand of the +% as-operator) must have a valid GUID. type_e_invalid_objc_selector_name=04084_E_Неверное имя селектора % Селектор Objective-C не может быть пустым, он должен быть идентификатором либо одиночным двоеточием, % и, если он содержит двоеточие, то должен двоеточием и заканчиваться. @@ -1416,6 +1801,149 @@ type_e_string_expr_expected=04089_E_Требуется строковое выр % Данный раздел содержит сообщения, относящиеся к обработке символов, % т.е. всего, что связано с именами процедур и переменных. % \begin{description} +type_w_zero_to_nil=04090_W_Converting 0 to NIL +% Use NIL rather than 0 when initialising a pointer. +type_e_protocol_type_expected=04091_E_Objective-C protocol type expected, but got "$1" +% The compiler expected a protocol type name, but found something else. +type_e_objc_type_unsupported=04092_E_The type "$1" is not supported for interaction with the Objective-C and the blocks runtime. +% Objective-C and Blocks make extensive use of run time type information (RTTI). This format +% is defined by the maintainers of the run time and can therefore not be adapted +% to all possible Object Pascal types. In particular, types that depend on +% reference counting by the compiler (such as ansistrings and certain kinds of +% interfaces) cannot be used as fields of Objective-C classes, cannot be +% directly passed to Objective-C methods or Blocks, and cannot be encoded using \var{objc\_encode}. +type_e_class_or_objcclass_type_expected=04093_E_Class or objcclass type expected, but got "$1" +% It is only possible to create class reference types of \var{class} and \var{objcclass} +type_e_objcclass_type_expected=04094_E_Objcclass type expected +% The compiler expected an \var{objcclass} type +type_w_procvar_univ_conflicting_para=04095_W_Coerced univ parameter type in procedural variable may cause crash or memory corruption: $1 to $2 +% \var{univ} parameters are implicitly compatible with all types of the same size, +% also in procedural variable definitions. That means that the following code is +% legal, because \var{single} and \var{longint} have the same size: +% \begin{verbatim} +% {$mode macpas} +% Type +% TIntProc = procedure (l: univ longint); +% +% procedure test(s: single); +% begin +% writeln(s); +% end; +% +% var +% p: TIntProc; +% begin +% p:=test; +% p(4); +% end. +% \end{verbatim} +% This code may however crash on platforms that pass integers in registers and +% floating point values on the stack, because then the stack will be unbalanced. +% Note that this warning will not flag all potentially dangerous situations. +% when \var{test} returns. +type_e_generics_cannot_reference_itself=04096_E_Type parameters of specializations of generics cannot reference the currently specialized type +% Recursive specializations of generics like \var{Type MyType = specialize MyGeneric;} are not possible. +type_e_type_parameters_are_not_allowed_here=04097_E_Type parameters are not allowed on non-generic class/record/object procedure or function +% Type parameters are only allowed for methods of generic classes, records or objects +type_e_generic_declaration_does_not_match=04098_E_Generic declaration of "$1" differs from previous declaration +% Generic declaration does not match the previous declaration +type_e_helper_type_expected=04099_E_Helper type expected +% The compiler expected a \var{class helper} type. +type_e_record_type_expected=04100_E_Record type expected +% The compiler expected a \var{record} type. +type_e_class_helper_must_extend_subclass=04101_E_Derived class helper must extend a subclass of "$1" or the class itself +% If a class helper inherits from another class helper the extended class must +% extend either the same class as the parent class helper or a subclass of it +type_e_record_helper_must_extend_same_record=04102_E_Derived record or type helper must extend "$1" +% If a record helper inherits from another record helper it must extend the same +% record that the parent record helper extended. +type_e_procedures_return_no_value=04103_E_Invalid assignment, procedures return no value +% This error occurs when one tries to assign the result of a procedure or destructor call. +% A procedure or destructor returns no value so this is not +% possible. +type_w_implicit_string_cast=04104_W_Implicit string type conversion from "$1" to "$2" +% An implicit type conversion from an ansi string type to an unicode string type is +% encountered. To avoid this warning perform an explicit type conversion. +type_w_implicit_string_cast_loss=04105_W_Implicit string type conversion with potential data loss from "$1" to "$2" +% An implicit type conversion from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. +type_w_explicit_string_cast=04106_-W_Explicit string typecast from "$1" to "$2" +% An explicit typecast from an ansi string type to an unicode string type is +% encountered. This warning is off by default. You can turn it on to see all suspicious string conversions. +type_w_explicit_string_cast_loss=04107_-W_Explicit string typecast with potential data loss from "$1" to "$2" +% An explicit typecast from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. This warning is off by default. You can turn it on to see all the places with lossy string +% conversions. +type_w_unicode_data_loss=04108_W_Unicode constant cast with potential data loss +% Conversion from a WideChar to AnsiChar can lose data since now all unicode characters may be represented in the current +% system codepage +% You can nest function definitions only 31 levels deep. +type_e_range_check_error_bounds=04109_E_range check error while evaluating constants ($1 must be between $2 and $3) +type_w_range_check_error_bounds=04110_W_range check error while evaluating constants ($1 must be between $2 and $3) +% The constants are outside their allowed range. +type_e_type_not_allowed_for_default=04111_E_This type is not supported for the Default() intrinsic +% Some types like for example Text and File Of X are not supported by the Default intrinsic. +type_e_java_class_method_not_static_virtual=04112_E_JVM virtual class methods cannot be static +% Virtual class methods cannot be static when targeting the JVM platform, because +% the self pointer is required for correct dispatching. +type_e_invalid_final_assignment=04113_E_Final (class) fields can only be assigned in their class' (class) constructor +% It is only possible to assign a value to a final (class) field inside a (class) constructor of its owning class. +type_e_no_managed_formal_assign_typecast=04114_E_It is not possible to typecast untyped parameters on managed platforms, simply assign a value to them instead. +% On managed platforms, untyped parameters are translated by the compiler into +% the equivalent of \var{var x: BaseClassType}. Non-class-based types passed to +% such parameters are automatically wrapped (or boxed) in a class, and after the +% call the potentially modified value is assigned back to the original variable. +% On the caller side, changing untyped var/out parameters happens by simply assigning +% values to them (either class-based or primitive ones). On the caller side, +% they will be extracted and if their type does not match the original variable's, +% an exception will be raised. +type_e_no_managed_assign_generic_typecast=04115_E_The assignment side of an expression cannot be typecasted to a supertype on managed platforms +% Managed platforms guarantee type safety at the bytecode level. This means that the virtual machine must be able +% to statically determine that no type-unsafe assignments or operations occur. By assigning a parent class type to a +% variable of a child type by typecasting the assignment side to the parent class type, the type safety would no +% longer be guaranteed and the generated code would fail verification at run time time. +type_w_interface_lower_visibility=04116_-W_The interface method "$1" raises the visibility of "$2" to public when accessed via an interface instance +type_e_interface_lower_visibility=04117_E_The interface method "$1" has a higher visibility (public) than "$2" +% All methods in an interface have always public visibility. That means that if +% an interface method is implemented using a (strict) protected or private method, +% this method is actually publicly accessible via the interface. On the JVM +% target this situation results in an error because the JVM rejects such +% attempts to circumvent the visibility rules. On other targets this is a +% warning that is disabled by default because such situations are common +% practice, but it can be enabled in case you are concerned with keeping your +% code compilable for the JVM target. +type_e_typeof_requires_vmt=04118_E_TYPEOF can only be used on object types with VMT +% Typeof() intrinsic returns pointer to VMT of its argument. It cannot be used on object types that do not have VMT. +type_e_invalid_default_value=04119_E_It is not possible to define a default value for a parameter of type "$1" +% Parameters declared as structured types, such as files, variants, non-dynamic +% arrays and TP-style objects, cannot have a default value. +type_e_type_not_allowed_for_type_helper=04120_E_Type "$1" cannot be extended by a type helper +% Types like procedural variables cannot be extended by type helpers +type_e_procedure_must_be_far=04121_E_Procedure or function must be far in order to allow taking its address: "$1" +% In certain i8086 memory models (medium, large and huge), procedures and functions +% have to be declared 'far' in order to allow their address to be taken. +type_w_instance_abstract_class=04122_W_Creating an instance of abstract class "$1" +% The specified class is declared as \var{abstract} and thus no instance of this class +% should be created. This is merely a warning for Delphi compatibility. +type_e_function_reference_kind=04123_E_Subroutine references cannot be declared as "of object" or "is nested", they can always refer to any kind of subroutine +% Subroutine references can refer to any kind of subroutine and hence do not +% require specialisation for methods or nested subroutines. +type_e_anonymous_function_unsupported=04999_E_Function references are not yet supported, only blocks (add "cdecl;" at the end) +% Remove this error message once Delphi-style anonymous are implemented. It has +% number 4999 so as not to result in a gap in the error message numbering once +% it's removed. +% \end{description} +# +# Symtable +# +# 05095 is the last used one +# +% \section{Symbol handling} +% This section lists all the messages that concern the handling of symbols. +% This means all things that have to do with procedure and variable names. +% \begin{description} sym_e_id_not_found=05000_E_Идентификатоp "$1" не найден % Данный символ неизвестен компилятору. Обычно происходит при ошибках написания % имени переменной или процедуры, или если вы забыли объявить @@ -1581,6 +2109,154 @@ sym_w_forward_not_resolved=05064_W_Ранее объявление "$1" не р % Раздел содержит сообщения, которые могут быть выданы при ошибках % кодогенерации. % \begin{description} +sym_w_library_symbol=05065_W_Symbol "$1" is belongs to a library +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{library} is used. Library symbols may not be +% available in other libraries. +sym_w_deprecated_symbol_with_msg=05066_W_Symbol "$1" is deprecated: "$2" +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{deprecated} is used. Deprecated symbols may no longer +% be available in newer versions of the unit / library. Use of this symbol +% should be avoided as much as possible. +sym_e_no_enumerator=05067_E_Cannot find an enumerator for the type "$1" +% This means that compiler cannot find an appropriate enumerator to use in the for-in loop. +% To create an enumerator you need to define an operator enumerator or add a public or published +% GetEnumerator method to the class or object definition. +sym_e_no_enumerator_move=05068_E_Cannot find a "MoveNext" method in enumerator "$1" +% This means that compiler cannot find a public MoveNext method with the Boolean return type in +% the enumerator class or object definition. +sym_e_no_enumerator_current=05069_E_Cannot find a "Current" property in enumerator "$1" +% This means that compiler cannot find a public Current property in the enumerator class or object +% definition. +sym_e_objc_para_mismatch=05070_E_Mismatch between number of declared parameters and number of colons in message string. +% In Objective-C, a message name automatically contains as many colons as parameters. +% In order to prevent mistakes when specifying the message name in FPC, the compiler +% checks whether this is also the case here. Note that in case of messages taking a +% variable number of arguments translated to FPC via an \var{array of const} parameter, +% this final \var{array of const} parameter is not counted. Neither are the hidden +% \var{self} and \var{\_cmd} parameters. +sym_n_private_type_not_used=05071_N_Private type "$1.$2" never used +% The indicated private type is declared but is never used in the code. +sym_n_private_const_not_used=05072_N_Private const "$1.$2" never used +% The indicated private const is declared but is never used in the code. +sym_n_private_property_not_used=05073_N_Private property "$1.$2" never used +% The indicated private property is declared but is never used in the code. +sym_w_deprecated_unit=05074_W_Unit "$1" is deprecated +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_deprecated_unit_with_msg=05075_W_Unit "$1" is deprecated: "$2" +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_non_portable_unit=05076_W_Unit "$1" is not portable +% This means that a unit which is +% declared as \var{platform} is used. This unit use +% and availability is platform specific and should not be used +% if the source code must be portable. +sym_w_library_unit=05077_W_Unit "$1" is belongs to a library +% This means that a unit which is +% declared as \var{library} is used. Library units may not be +% available in other libraries. +sym_w_non_implemented_unit=05078_W_Unit "$1" is not implemented +% This means that a unit which is +% declared as \var{unimplemented} is used. This unit is defined, +% but is not yet implemented on this specific platform. +sym_w_experimental_unit=05079_W_Unit "$1" is experimental +% This means that a unit which is +% declared as \var{experimental} is used. Experimental units +% might disappear or change semantics in future versions. Usage of this unit +% should be avoided as much as possible. +sym_e_formal_class_not_resolved=05080_E_No complete definition of the formally declared class "$1" is in scope +% Objecive-C and Java classes can be imported formally, without using the unit in which it is fully declared. +% This enables making forward references to such classes and breaking circular dependencies amongst units. +% However, as soon as you wish to actually do something with an entity of this class type (such as +% access one of its fields, send a message to it, or use it to inherit from), the compiler requires the full definition +% of the class to be in scope. +sym_e_interprocgoto_into_init_final_code_not_allowed=05081_E_Gotos into initialization or finalization blocks of units are not allowed +% Gotos into initialization or finalization blockse of units are not allowed. +sym_e_external_class_name_mismatch1=05082_E_Invalid external name "$1" for formal class "$2" +sym_e_external_class_name_mismatch2=05083_E_Complete class definition with external name "$1" here +% When a class is declared using a formal external definition, the actual external +% definition (if any) must specify the same external name as the formal definition +% (since both definitions refer to the same actual class type). +sym_w_library_overload=05084_W_Possible library conflict: symbol "$1" from library "$2" also found in library "$3" +% Some OS do not have library specific namespaces, for those +% OS, the function declared as "external 'libname' name 'funcname'", +% the 'libname' part is only a hint, funcname might also be loaded +% by another library. This warning appears if 'funcname' is used twice +% with two different library names. +sym_e_duplicate_id_create_java_constructor=05085_E_Cannot add implicit constructor 'Create' because identifier already used by "$1" +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. In Java, constructors are nameless, +% but in FPC they are all called ``Create''. Therefore, if you do not add a constructor to +% a Java class and furthermore use the ``Create'' identifier for another entity (e.g., a field, +% or a parameterless method), the compiler cannot satisfy this requirement. +sym_e_no_matching_inherited_parameterless_constructor=05086_E_Cannot generate default constructor for class, because parent has no parameterless constructor +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. This compiler must then call +% the parameterless constructor from the parent class inside this added constructor. +% This is however impossible if the parent class does not declare such a constructor. +% In this case you must add a valid constructor yourself. +sym_d_adding_helper_for=05087_D_Adding helper for $1 +% A helper for the mentioned type is added to the current scope +sym_e_param_list=05088_E_Found declaration: $1 +% This message shows all overloaded declarations in case of an error. +sym_w_uninitialized_managed_local_variable=05089_W_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_uninitialized_managed_variable=05090_W_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_local_variable=05091_H_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. it did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_variable=05092_H_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. t did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_managed_function_result_uninitialized=05093_W_function result variable of a managed type does not seem to initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. before it appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_managed_function_result_uninitialized=05094_H_Function result variable of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. it appears in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_duplicate_id=05095_W_Duplicate identifier "$1" +% The identifier was already declared in an Objective-C category that's in the +% same scope as the current identifier. This is a warning instead of an error, +% because while this hides the identifier from the category, there are often +% many unused categories in scope. +% \end{description} +# +# Codegenerator +# +# 06049 is the last used one +# +% \section{Code generator messages} +% This section lists all messages that can be displayed if the code +% generator encounters an error condition. +% \begin{description} cg_e_parasize_too_big=06009_E_Размеp списка паpаметpов пpевышает 65535 байт % Процессор I386 ограничивает список параметров до 65535 байт (из-за особенности % инструкции \var{RET}) @@ -1706,6 +2382,38 @@ cg_e_goto_label_not_found=06049_E_Метка "$1" не определена ил # # 07107 is the last used one # +cg_f_unknown_type_in_unit=06050_F_Cannot find type "$1" in unit "$2". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_e_interprocedural_goto_only_to_outer_scope_allowed=06051_E_Interprocedural gotos are allowed only to outer subroutines +% Gotos between subroutines are only allowed if the goto jumps from an inner to an outer subroutine or +% from a subroutine to the main program +cg_e_labels_cannot_defined_outside_declaration_scope=06052_E_Label must be defined in the same scope as it is declared +% In ISO mode, labels must be defined in the same scope as they are declared. +cg_e_goto_across_procedures_with_exceptions_not_allowed=06053_E_Leaving procedures containing explicit or implicit exceptions frames using goto is not allowed +% Non-local gotos might not be used to leave procedures using exceptions either implicitly or explicitly. Procedures +% which use automated types like ansistrings or class constructurs are affected by this too. +cg_e_mod_only_defined_for_pos_quotient=06054_E_In ISO mode, the mod operator is defined only for positive quotient +% In ISO pascal, only positive values are allowed for the quotient: \var{n mod m} is only valid if \var{m>0}. +cg_d_autoinlining=06055_DL_Auto inlining: $1 +% Due to auto inlining turned on, the compiler auto inlines this subroutine. +cg_e_function_not_support_by_selected_instruction_set=06056_E_The function used, is not supported by the selected instruction set: $1 +% Some functions cannot be implemented efficiently for certain instruction sets, one example is fused multiply/add. +% To avoid very inefficient code, the compiler complains in this case, so either select another instruction set +% or replace the function call by alternative code +cg_f_max_units_reached=06057_F_Maximum number of units ($1) reached for the current target +% Depending of target architecture, the number of units is limited. This limit +% has been reached. A unit counts only if it contains initialization or finalization count. +% +% \end{description} +# EndOfTeX +# +# Assembler reader +# +# 07125 is the last used one +# asmr_d_start_reading=07000_DL_Hачало чтения ассемблеpа типа $1 % Информирует о начале чтения ассемблерного блока. asmr_d_finish_reading=07001_DL_Конец чтения ассемблеpа типа $1 @@ -1940,6 +2648,67 @@ asmr_e_need_pic_ref=07107_E_В режиме позиционно-независ # # 08020 is the last used one # +asmr_e_mixing_regtypes=07108_E_All registers in a register set must be of the same kind and width +% Instructions on the ARM architecture that take a register set as argument require that all registers +% in this set are of the same kind (e.g., integer, vfp) and width (e.g., single precision, double precision). +asmr_e_empty_regset=07109_E_A register set cannot be empty +% Instructions on the ARM architecture that take a register set as argument require that such a set +% contains at least one register. +asmr_w_useless_got_for_local=07110_W_@GOTPCREL is useless and potentially dangerous for local symbols +% The use of @GOTPCREL supposes an extra indirection that is +% not present if the symbol is local, which might lead to wrong assembler code +asmr_w_general_segment_with_constant=07111_W_Constant with general purpose segment register +% General purpose register should not have constant offsets +% as OS memory allocation might not be compatible with that. +asmr_e_bad_seh_directive_offset=07112_E_Invalid offset value for $1 +% Win64 SEH directives have certain restrictions on possible offset values, e.g. they should +% be positive and have 3 or 4 low bits clear. +asmr_e_bad_seh_directive_register=07113_E_Invalid register for $1 +% Win64 SEH directives accept only 64-bit integer registers or XMM registers. +asmr_e_seh_in_pure_asm_only=07114_E_SEH directives are allowed only in pure assembler procedures +% Win64 SEH directives are allowed only in pure assembler procedures, not in assembler +% blocks of regular procedures. +asmr_e_unsupported_directive=07115_E_Directive "$1" is not supported for the current target +asmr_e_complex_function_result_location=07116_E_This function's result location cannot be encoded directly in a single operand when "nostackframe" is used +% Functions declared with the \var{nostackframe} modifier do not have a stack frame, and hence +% do not have a local variable to hold the temporary function result. Accesses to the function +% result in such routines directly go to the registers or memory location that will be used +% to return their result to the caller. In some cases this result may be spread over multiple +% registers, in which case it is not possible to access the location via its symbolic name. +% You have to directly use the appropriate register names in this case. +asmr_e_wrong_gotpcrel_intel_syntax=07117_E_GOTPCREL references in Intel assembler syntax cannot contain a base or index register, and their offset must 0. +% The syntax for a gotpcrel PIC memory expression in Intel assembler syntax is +% \verb*[global_symbol wrt ..gotpcrel]* +asmr_e_no_gotpcrel_support=07118_E_The current target does not support GOTPCREL relocations +% Not all targets support position-independent code using a global offset table. +% Use a different way to access symbols in a position-indepent way in these cases. +asmr_w_global_access_without_got=07119_W_Exported/global symbols should be accessed via the GOT +% Global symbols (symbols from the unit interface, or defined in a program +% or library) should be accessed via the GOT when generating position-indepent code. +asmr_w_check_mem_operand_size=07120_W_Check size of memory operand "$1" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size3=07121_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size_offset=07122_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits + $4 byte offset]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_negative_offset=07123_W_Check "$1: offset of memory operand is negative "$2 byte" +% The offset of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_automap_multiple_size=07124_W_Check "$1: size of memory operand is empty, but es exists different definitions of the memory size =>> map to $2 (smallest option)" +% The size of memory operand is empty and we have different definitions of possible memory sizes. Check it! +asmr_e_invalid_ref_register=07125_E_Invalid register used in memory reference expression: "$1" +% FPU, vector and sometimes integer registers cannot be used in memory reference +% expressions, due to limitations of the cpu architecture or simple because +% it is not meaningful. + +# +# Assembler/binary writers +# +# 08029 is the last used one +# asmw_f_too_many_asm_files=08000_F_Слишком много ассемблерных файлов % "Умная" компоновка приводит к получению слишком большого количества % ассемблерных файлов. Отключите ее. @@ -1978,6 +2747,41 @@ asmw_e_64bit_not_supported=08021_E_Asm: 64-битные операнды не п % Перечисляются ошибки, которые могут иметь место во время обработки % командной строки и файлов конфигурации. % \begin{description} +asmw_e_bad_reg_with_rex=08022_E_Asm: AH,BH,CH or DH cannot be used in an instruction requiring REX prefix +% x86_64 only: instruction encoding of this platform does not allow using +% 8086 high byte registers (AH,BH,CH or DH) together with REX prefix in a single instruction. +% The REX prefix is required whenever the instruction operand size is 64 bits, or +% when it uses one of extended x86_64 registers (R8-R15 or XMM8-XMM15). +asmw_e_missing_endprologue=08023_E_Missing .seh_endprologue directive +% x86_64-win64 only: Normally, SEH directives are handled internally by compiler. +% However, in pure assembler procedures .seh_endprologue directive is required +% if other SEH directives are present. +asmw_e_prologue_too_large=08024_E_Function prologue exceeds 255 bytes +% x86_64-win64: .seh_prologue directive must be placed within 255 bytes from function start. +asmw_e_handlerdata_no_handler=08025_E_.seh_handlerdata directive without preceding .seh_handler +% x86_64-win64: If .seh_handlerdata directive is used, then a .seh_handler directive must be +% present earlier in the same function. +asmw_f_too_many_relocations=08026_F_Relocation count for section $1 exceeds 65535 +% Legacy COFF targets limit number of relocations per section to 65535 because they use a 2-byte field +% to store the relocation count. Targets using newer PECOFF format do not have this limitation. +asmw_w_changing_bind_type=08027_N_Change of bind type of symbol $1 from $2 to $3 after use +asmw_h_changing_bind_type=08028_H_Change of bind type of symbol $1 from $2 to $3 after use +% An assembler symbol bind type has been altered after use, which can lead to wrong code. +% First version is reserved for changig to local label, which is the most probable cause +% of wrong code generation, but currently set to Note level as it appears inside +% the compiler compilation. +asmw_e_32bit_not_supported=08029_E_Asm: 32 Bit references not supported +# +# Executing linker/assembler +# +# 09035 is the last used one +# +# BeginOfTeX +% +% \section{Errors of assembling/linking stage} +% This section lists errors that occur when the compiler is processing the +% command line or handling the configuration files. +% \begin{description} exec_w_source_os_redefined=09000_W_Исходная опеpационная система пеpеопpеделена % Исходная операционная системы переопределена. exec_i_assembling_pipe=09001_I_Ассемблиpyется (pipe) $1 @@ -2030,6 +2834,9 @@ exec_e_exe_not_supported=09018_E_Создание исполняемых фай exec_e_dll_not_supported=09019_E_Создание динамических библиотек (DLL) не поддеpживаются % Создание динамически загружаемых библиотек для этой платформы еще не реализовано в компиляторе % и потому невозможно. +exec_e_static_lib_not_supported=09035_E_Creation of Static Libraries not supported +% Creating static libraries is not supported for this platform, because it was +% not yet implemented in the compiler. exec_i_closing_script=09020_I_Создан скpипт $1 % Информация об окончании записи скрипта для внешнего ассемблирования/компоновки. exec_e_res_not_found=09021_E_Компилятоp pесypсов "$1" не найден, пеpеход во внешний режим @@ -2072,6 +2879,25 @@ exec_e_cant_write_resource_file=09032_E_Ошибка записи файла р % Содержит сообщения, выдаваемые при создании исполняемого файла % с использованием внутреннего компоновщика. % \begin{description} +exec_n_backquote_cat_file_not_found=09033_N_File "$1" not found for backquoted cat command +% The compiler did not find the file that should be expanded into linker parameters +exec_w_init_file_not_found=09034_W_"$1" not found, this will probably cause a linking failure +% The compiler adds certain startup code files to the linker only when they are found. +% If they are not found, they are not added and this might cause a linking failure. +% +%\end{description} +# EndOfTeX + +# +# Executable information +# +# 09134 is the last used one +# +# BeginOfTeX +% \section{Executable information messages.} +% This section lists all messages that the compiler emits when an executable program is produced, +% and only when the internal linker is used. +% \begin{description} execinfo_f_cant_process_executable=09128_F_Пост-обработка исполняемого файла $1 невозможна % Фатальная ошибка при невозможности пост-обработки исполняемого файла. execinfo_f_cant_open_executable=09129_F_Невозможно открыть исполняемый файл $1 @@ -2300,6 +3126,22 @@ unit_e_different_wpo_file=10061_E_Модуль $1 скомпилирован с # # 11047 is the last used one # +unit_u_indirect_crc_changed=10062_U_Indirect interface (objects/classes) CRC changed for unit $1 +% When you use the \var{-vu} flag, the compiler warns that the +% indirect CRC calculated for the unit (this is the CRC of all classes/objects/interfaces/$\ldots$ +% in the interfaces of units directly or indirectly used by this unit in the interface) has been changed after the +% implementation has been parsed. +unit_u_ppu_invalid_memory_model=10063_U_PPU is compiled for another i8086 memory model +% This unit file was compiled for a different i8086 memory model and +% cannot be read. +% \end{description} +# EndOfTeX + +# +# Options +# +# 11057 is the last used one +# option_usage=11000_O_$1 [опции] <файл> [опции] # BeginOfTeX % @@ -2434,6 +3276,45 @@ option_ignored_target=11047_W_Опция "$1" игнорируется для в % Раздел содержит сообщения об ошибках, которые могут возникать % в процессе оптимизации всей программы (wpo). % \begin{description} +option_debug_external_unsupported=11048_W_Disabling external debug information because it is unsupported for the selected target/debug format combination. +% Not all debug formats can be stored in an external file on all platforms. In particular, on +% Mac OS X only DWARF debug information can be stored externally. +option_dwarf_smartlink_creation=11049_N_DWARF debug information cannot be used with smart linking with external assembler, disabling static library creation. +% Smart linking is currently incompatble with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_invalid_macosx_deployment_target=11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variable: $1 +option_invalid_iphoneos_deployment_target=11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment variable: $1 +% On Mac OS X, the MACOSX\_DEPLOYMENT\_TARGET/IPHONEOS\_DEPLOYMENT\_TARGET environment variable can be +% used to set the default target OS version. In case of Mac OS X, it has to be of the format +% XY.Z or XY.Z.AB with X, Y,Z , A and B all digits from 0-9. +% In case of iOS, it has to be X.Z.A, where X, Z and A can all be either 1 or 2 +% digits from 0-9. +option_illegal_fpu_eabihf=11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when using the EABIHF ABI target +% The EABIHF (VFP hardfloat) ABI target can only be used with VFP FPUs. +option_w_unsupported_debug_format=11053_W_The selected debug format is not supported on the current target, not changing the current setting +% Not all targets support all debug formats (in particular, Stabs is not supported on 64 bit targets). +option_missing_arg=11054_E_argument to "$1" is missing +% Displayed when parameter must be followed by an argument. +option_malformed_para=11055_E_malformed parameter: $1 +% Given argument is not valid for parameter. +option_smart_link_requires_external_linker=11056_W_Smart linking requires external linker +option_com_files_require_tiny_model=11057_E_Creating .COM files is not supported in the current memory model. Only the tiny memory model supports making .COM files. + + +%\end{description} +# EndOfTeX + +# +# Whole program optimization +# +# 12019 is the last used one +# +# BeginOfTeX +% +% \section{Whole program optimization messages} +% This section lists errors that occur when the compiler is performing +% whole program optimization. +% \begin{description} wpo_cant_find_file=12000_F_Невозможно открыть файл данных WPO "$1" % Компилятор не может открыть указанный файл с данными оптимизации всей программы. wpo_begin_processing=12001_D_Обработка информации WPO в файле "$1" @@ -2826,3 +3707,45 @@ P*2WX_Разрешить исполняемый стек (Linux) # # The End... +%%% parser_e_only_class_methods_via_class_ref=03053_E_По ссылке на класс могут быть вызваны только класс-методы +% Ошибка возникает в следующей ситуации: +% \begin{verbatim} +% Type : +% Tclass = Class of Tobject; +% +% Var C : TClass; +% +% begin +% ... +% C.free +% \end{verbatim} +% \var{Free} не является класс-методом и поэтому не может быть вызван по ссылке на класс. +%%% parser_e_only_class_methods=03054_E_В класс-методах доступны только другие класс-методы +% Имеет отношение к предыдущей ошибке. Из класс-метода нельзя вызвать обычный метод объекта. +% Следующий код приведет к этой ошибке: +% \begin{verbatim} +% class procedure tobject.x; +% +% begin +% free +% \end{verbatim} +% Поскольку free является обычным методом, его нельзя вызвать из класс-метода. +%%% parser_e_absolute_only_one_var=03095_E_ABSOLUTE может быть указано только для одной пеpеменной +% Нельзя указывать более одной переменной перед директивой \var{absolute}. +% Следующая конструкция приведет к ошибке: +% \begin{verbatim} +% Var Z : Longint; +% X,Y : Longint absolute Z; +% \end{verbatim} +%%% parser_e_type_and_var_only_in_generics=03224_E_VAR и TYPE допустимы только в обобщениях (generic) +% Использование VAR и TYPE для объявления новых типов внутри объекта разрешается только для +% обобщений. +%%% type_w_signed_unsigned_always_false=04044_W_Сравнение всегда ложно из-за диапазонов значений +% Сравнение беззнакового значения со знаковой константой, меньшей нуля. Результат такого выражения +% будет всегда ложным. Следует явно привести тип константы к нужному диапазону. +%%% type_w_signed_unsigned_always_true=04045_W_Сравнение всегда истинно из-за диапазонов значений +% Сравнение беззнакового значения со знаковой константой, меньшей нуля. Результат такого выражения +% будет всегда истинным. Следует явно привести тип константы к нужному диапазону. +%%% type_interface_has_no_guid=04083_E_Тип интерфейса $1 не имеет GUID +% При использовании оператора as нужный интерфейс, т.е правый операнд оператора as, +% должен иметь правильный GUID. diff --git a/compiler/msg/errorues.msg b/compiler/msg/errorues.msg index 433181e165..8834d5cc5c 100644 --- a/compiler/msg/errorues.msg +++ b/compiler/msg/errorues.msg @@ -1,3 +1,5 @@ +%%% Reordering of errorues.msg respective to errore.msg +%%% Contains all comments from errorues.msg # # This file is part of the Free Pascal Compiler # Copyright (c) 1999-2000 by the Free Pascal Development team @@ -111,18 +113,33 @@ general_i_hint=01016_I_Consejo: % Prefix for Hints general_e_path_does_not_exist=01017_E_La ruta "$1" no existe % The specified path does not exist. -general_e_compilation_aborted=01018_E_Compilación abortada +general_f_compilation_aborted=01018_F_Compilation aborted +% Compilation was aborted. +general_text_bytes_code=01019_bytes code +% The size of the generated executable code, in bytes. +general_text_bytes_data=01020_bytes data +% The size of the generated program data, in bytes. +general_i_number_of_warnings=01021_I_$1 warning(s) issued +% Total number of warnings issued during compilation. +general_i_number_of_hints=01022_I_$1 hint(s) issued +% Total number of hints issued during compilation. +general_i_number_of_notes=01023_I_$1 note(s) issued +% Total number of notes issued during compilation. +general_f_ioerror=01024_F_I/O error: $1 +% During compilation an I/O error happened which allows no further compilation. +general_f_oserror=01025_F_Operating system error: $1 +% During compilation an operating system error happened which allows no further compilation. % \end{description} # # Scanner # -# 02063 is the last used one +# 02098 is the last used one # % \section{Scanner messages.} % This section lists the messages that the scanner emits. The scanner takes % care of the lexical structure of the pascal file, i.e. it tries to find % reserved words, strings, etc. It also takes care of directives and -% conditional compiling handling. +% conditional compilation handling. % \begin{description} scan_f_end_of_file=02000_F_Final de fichero inesperado % this typically happens in one of the following cases : @@ -166,12 +183,14 @@ scan_f_cannot_open_input=02012_F_No se puede abrir el fichero "$1" scan_f_cannot_open_includefile=02013_F_No se puede abrir el fichero de inclusion "$1" % \fpc cannot find the source file you specified in a \var{\{\$include ..\}} % statement. -scan_w_only_pack_records=02015_W_Los campos de los registros pueden ser alineados solo a 1, 2, 4 o 16 bytes -% You are specifying the \var{\{\$PACKRECORDS n\} } with an illegal value for -% \var{n}. Only 1, 2, 4, 8, 16 and 32 are valid in this case. -scan_w_only_pack_enum=02016_W_Los tipos enumerados solo pueden ser almacenados en 1, 2 o 4 bytes +scan_e_illegal_pack_records=02015_E_Illegal record alignment specifier "$1" +% You are specifying \var{\{\$PACKRECORDS n\} } or \var{\{\$ALIGN n\} } +% with an illegal value for \var{n}. For \$PACKRECORDS valid alignments are 1, 2, 4, 8, 16, 32, C, +% NORMAL, DEFAULT, and for \$ALIGN valid alignments are 1, 2, 4, 8, 16, 32, ON, +% OFF. Under mode MacPas \$ALIGN also supports MAC68K, POWER and RESET. +scan_e_illegal_pack_enum=02016_E_Illegal enum minimum-size specifier "$1" % You are specifying the \var{\{\$PACKENUM n\}} with an illegal value for -% \var{n}. Only 1,2 or 4 are valid in this case. +% \var{n}. Only 1,2,4, NORMAL or DEFAULT is valid here. scan_e_endif_expected=02017_E_$1 esperado para $2 definido en la línea $3 % Your conditional compilation statements are unbalanced. scan_e_preproc_syntax_error=02018_E_Error de sintaxis mientras se procesaba una expresión de compilación condicional @@ -200,7 +219,7 @@ scan_e_keyword_cant_be_a_macro=02028_E_Palabra clave redefinida como macro no ti % You cannot redefine keywords with macros. scan_f_macro_buffer_overflow=02029_F_Desbordamiento del buffer de macro durante la lextura o expansión % Your macro or its result was too long for the compiler. -can_w_macro_too_deep=02030_W_La expansión de macros excede una profundidad de 16. +scan_w_macro_too_deep=02030_W_Expanding of macros exceeds a depth of 16. % When expanding a macro, macros have been nested to a level of 16. % The compiler will expand no further, since this may be a sign that % recursion is used. @@ -319,6 +338,94 @@ scan_e_error_macro_undefined=02068_E_Variable en tiempo de compilación "$1" no % semantics of you language, i.e. it determines if your pascal constructs % are correct. % \begin{description} +scan_e_utf8_bigger_than_65535=02069_E_UTF-8 code greater than 65535 found +% \fpc handles UTF-8 strings internally as widestrings, i.e. the char codes are limited to 65535. +scan_e_utf8_malformed=02070_E_Malformed UTF-8 string +% The given string isn't a valid UTF-8 string. +scan_c_switching_to_utf8=02071_C_UTF-8 signature found, using UTF-8 encoding +% The compiler found a UTF-8 encoding signature (\$ef, \$bb, \$bf) at the beginning of a file, +% so it interprets it as a UTF-8 file. +scan_e_compile_time_typeerror=02072_E_Compile time expression: Wanted $1 but got $2 at $3 +% The type-check of a compile time expression failed. +scan_n_app_type_not_support=02073_N_APPTYPE is not supported by the target OS +% The \var{\{\$APPTYPE\}} directive is supported by certain operating systems only. +scan_e_illegal_optimization_specifier=02074_E_Illegal optimization specified "$1" +% You specified an optimization with the \var{\{\$OPTIMIZATION xxx\}} directive, +% and the compiler didn't recognize the optimization you specified. +scan_w_setpeflags_not_support=02075_W_SETPEFLAGS is not supported by the target OS +% The \var{\{\$SETPEFLAGS\}} directive is not supported by the target OS. +scan_w_imagebase_not_support=02076_W_IMAGEBASE is not supported by the target OS +% The \var{\{\$IMAGEBASE\}} directive is not supported by the target OS. +scan_w_minstacksize_not_support=02077_W_MINSTACKSIZE is not supported by the target OS +% The \var{\{\$MINSTACKSIZE\}} directive is not supported by the target OS. +scan_w_maxstacksize_not_support=02078_W_MAXSTACKSIZE is not supported by the target OS +% The \var{\{\$MAXSTACKSIZE\}} directive is not supported by the target OS. +scanner_e_illegal_warn_state=02079_E_Illegal state "$1" for $WARN directive +% Only ON and OFF can be used as state with a \var{\{\$WARN\}} compiler directive. +scan_e_only_packset=02080_E_Illegal set packing value +% Only 0, 1, 2, 4, 8, DEFAULT and NORMAL are allowed as packset parameters. +scan_w_pic_ignored=02081_W_PIC directive or switch ignored +% Several targets, such as \windows, do not support nor need PIC, +% so the PIC directive and switch are ignored. +scan_w_unsupported_switch_by_target=02082_W_The switch "$1" is not supported by the currently selected target +% Some compiler switches like \$E are not supported by all targets. +scan_w_frameworks_darwin_only=02084_W_Framework-related options are only supported for Darwin/Mac OS X +% Frameworks are not a known concept, or at least not supported by FPC, +% on operating systems other than Darwin/Mac OS X. +scan_e_illegal_minfpconstprec=02085_E_Illegal minimal floating point constant precision "$1" +% Valid minimal precisions for floating point constants are default, 32 and 64, +% which mean respectively minimal (usually 32 bit), 32 bit and 64 bit precision. +scan_w_multiple_main_name_overrides=02086_W_Overriding name of "main" procedure multiple times, was previously set to "$1" +% The name for the main entry procedure is specified more than once. Only the last +% name will be used. +scanner_w_illegal_warn_identifier=02087_W_Illegal identifier "$1" for $WARN directive +% Identifier is not known by a \var{\{\$WARN\}} compiler directive. +scanner_e_illegal_alignment_directive=02088_E_Illegal alignment directive +% The alignment directive is not valid. Either the alignment type is not known or the alignment +% value is not a power of two. +scanner_f_illegal_utf8_bom=02089_F_It is not possible to include a file that starts with an UTF-8 BOM in a module that uses a different code page +% All source code that is part of a single compilation entity (program, library, unit) must be encoded +% in the same code page +scanner_w_directive_ignored_on_target=02090_W_Directive "$1" is ignored for the current target platform +% Some directives are ignored for certain targets, such as changing the +% packrecords and packenum settings on managed platforms. +scan_w_unavailable_system_codepage=02091_W_Current system codepage "$1" is not available for the compiler. Switching default codepage back to "$2". +% The current system codepage is not known by the compiler. +% The compiler is compiled with support for several codepages built-in. +% The codepage of the operation system is not in that list. You will need to recompile +% the compiler with support for this codepage. +scan_w_setpeoptflags_not_support=02092_W_SETPEOPTFLAGS is not supported by the target OS +% The \var{\{\$SETPEOPTFLAGS\}} directive is not supported by the target OS. +scan_e_illegal_peflag=02093_E_Illegal argument for SETPEFLAGS +% The given argument for SETPEFLAGS is neither a correct named value nor an +% ordinal value +scan_e_illegal_peoptflag=02094_E_Illegal argument for SETPEOPTFLAGS +% The given argument for SETPEOPTFLAGS is neither a correct named value nor an +% ordinal value +scan_e_unsupported_switch=02095_E_Directive $1 is not supported on this target +% Not all compiler directives are supported on all targets. +scan_w_invalid_stacksize=02096_W_The specified stack size is not within the valid range for the platform. Setting the stack size ignored. +% The valid range for the stack size is 1024 - 67107839 on 32-bit and 64-bit +% platforms and 1024 - 65520 on 16-bit platforms. Additionally, for Turbo Pascal 7 +% compatibility reasons, specifying a stack size of 65521 on 16-bit platforms +% actually sets the stack size to 65520. +scan_w_heapmax_lessthan_heapmin=02097_W_The specified HeapMax value is smaller than the HeapMin value. Setting HeapMax ignored. +% The HeapMax value (if specified) must be greater than or equal to the HeapMin +% value. Otherwise, the HeapMax value is ignored. +scan_e_illegal_hugepointernormalization=02098_E_Illegal argument for HUGEPOINTERNORMALIZATION +% The only allowed values for HUGEPOINTERNORMALIZATION are BORLANDC, MICROSOFTC +% and WATCOMC. +% \end{description} +# +# Parser +# +# 03339 is the last used one +# +% \section{Parser messages} +% This section lists all parser messages. The parser takes care of the +% semantics of you language, i.e. it determines if your Pascal constructs +% are correct. +% \begin{description} parser_e_syntax_error=03000_E_Analizador - Error de sintaxis % An error against the Turbo Pascal language was encountered. This happens % typically when an illegal character is found in the sources file. @@ -336,6 +443,7 @@ parser_e_export_ordinal_double=03009_E_Indice de funcion exportada "$1" duplicad parser_e_export_invalid_index=03010_E_Indice de funcion exportada inválido % DLL function index must be in the range \var{1..\$FFFF} parser_w_parser_reloc_no_debug=03011_W_La informacion de depurado $1 para ejecutables o DLLs reubicables no funciona. Desactivado. +% It is currently not possible to include debug information in a relocatable DLL. parser_w_parser_win32_debug_needs_WN=03012_W_Para permitir el depurado en win32 las reubicaciones deben ser desactivadas con la opcion -WN % Stabs info is wrong for relocatable DLL or EXES use -WN % if you want to debug win32 executables. @@ -459,7 +567,7 @@ parser_e_fail_only_in_constructor=03051_E_FAIL solo puede ser usado en construct parser_e_no_paras_for_destructor=03052_E_Los destructores no pueden tener parámetros % You are declaring a destructor with a parameter list. Destructor methods % cannot have parameters. -parser_e_only_class_methods_via_class_ref=03053_E_Solo los métodos de clases pueden ser referidos con referencias de clase +parser_e_only_class_members_via_class_ref=03053_E_Only class methods, class properties and class variables can be referred with class references % This error occurs in a situation like the following: % \begin{verbatim} % Type : @@ -473,9 +581,9 @@ parser_e_only_class_methods_via_class_ref=03053_E_Solo los métodos de clases pu % \end{verbatim} % \var{Free} is not a class method and hence cannot be called with a class % reference. -parser_e_only_class_methods=03054_E_Los métodos de clase solo pueden ser acceder a otros métodos de clase +parser_e_only_class_members=03054_E_Only class methods, class properties and class variables can be accessed in class methods % This is related to the previous error. You cannot call a method of an object -% from a inside a class method. The following code would produce this error: +% from inside a class method. The following code would produce this error: % \begin{verbatim} % class procedure tobject.x; % @@ -611,22 +719,14 @@ parser_e_mix_of_classes_and_objects=03093_E_No se permite la mezcla de objetos d % a class cannot have an object as parent and vice versa. parser_w_unknown_proc_directive_ignored=03094_W_Directiva de procedimiento desconocida fue ignorada: "$1" % The procedure directive you specified is unknown. -parser_e_absolute_only_one_var=03095_E_absolute solo puede estar asociado a una variable -% You cannot specify more than one variable before the \var{absolute} directive. -% Thus, the following construct will provide this error: +parser_e_directive_only_one_var=03095_E_$1 can be associated with only one variable +% You cannot specify more than one variable before the \var{absolute}, \var{export}, \var{external}, +% \var{weakexternal}, \var{public} and \var{cvar} directives. +% As a result, for example the following construct will provide this error: % \begin{verbatim} % Var Z : Longint; % X,Y : Longint absolute Z; % \end{verbatim} -% \item [ absolute can only be associated a var or const ] -% The address of a \var{absolute} directive can only point to a variable or a -% typed constant. Therefore, the following code will produce this error: -% \begin{verbatim} -% Procedure X; -% -% var p : longint absolute x; -% \end{verbatim} -% parser_e_absolute_only_to_var_or_const=03096_E_absolute solo puede ser asociado con var o const % The address of a \var{absolute} directive can only point to a variable or % constant. Therefore, the following code will produce this error: @@ -808,10 +908,10 @@ parser_e_ill_property_storage_sym=03155_E_Este símbolo no puede ser usado en st % You can't use this type of symbol as storage specifier in property % declaration. You can use only methods with the result type boolean, % boolean class fields or boolean constants -parser_e_only_publishable_classes_can__be_published=03156_E_Solo clases compiladas en $M+ pueden ser publicadas -% In the published section of a class can be only class as fields used which -% are compiled in \var{\{\$M+\}} or which are derived from such a class. Normally -% such a class should be derived from TPersitent +parser_e_only_publishable_classes_can_be_published=03156_E_Only classes which are compiled in $M+ mode can be published +% A class-typed field in the published section of a class can only be a class which was +% compiled in \var{\{\$M+\}} or which is derived from such a class. Normally +% such a class should be derived from \var{TPersistent}. parser_e_proc_directive_expected=03157_E_Directiva de procedimiento esperada % When declaring a procedure in a const block you used a ; after the % procedure declaration after which a procedure directive must follow. @@ -841,7 +941,14 @@ parser_e_no_export_with_index_for_target=03163_E_No se pueden exportar funciones parser_e_no_export_of_variables_for_target=03164_E_Exportar variables no esta soportado en $1 % Exporting of variables is not supported on this target. parser_e_improper_guid_syntax=03165_E_Sintaxis de GUID incorrecta +% The GUID indication does not have the proper syntax. It should be of the form +% \begin{verbatim} +% {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} +% \end{verbatim} +% Where each \var{X} represents a hexadecimal digit. parser_w_interface_mapping_notfound=03168_W_No se encontro el procedimiento de nombre "$1" apropiado para implementar $2.$3 +% The compiler cannot find a suitable procedure which implements the given method of an interface. +% A procedure with the same name is found, but the arguments do not match. parser_e_interface_id_expected=03169_E_identificador de interfaz esperado % This happens when the compiler scans a \var{class} declaration that contains % \var{interface} function name mapping code like this: @@ -899,7 +1006,17 @@ parser_e_no_procvarobj_const=03183_E_constantes con tipo de tipo Procedure/Funct % 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). parser_e_default_value_only_one_para=03184_E_Sólo se puede asignar valor por defecto a un parámetro +% It is not possible to specify a default value for several parameters at once. +% The following is invalid: +% \begin{verbatim} +% Procedure MyProcedure (A,B : Integer = 0); +% \end{verbatim} +% Instead, this should be declared as +% \begin{verbatim} +% Procedure MyProcedure (A : Integer = 0; B : Integer = 0); +% \end{verbatim} parser_e_default_value_expected_for_para=03185_E_Parámetro por defecto requerido para "$1" +% The specified parameter requires a default value. parser_w_unsupported_feature=03186_W_¡Uso de una caracteristica no soportada! % You're trying to force the compiler into doing something it cannot do yet. parser_h_c_arrays_are_references=03187_H_Arrays tipo C son pasados por referencia @@ -1010,6 +1127,436 @@ parser_e_arithmetic_operation_overflow=03213_E_Desbordamiento en la operación a % This section lists all errors that can occur when type checking is % performed. % \begin{description} +parser_e_protected_or_private_expected=03214_E_Protected or private expected +% \var{strict} can be only used together with \var{protected} or \var{private}. +parser_e_illegal_slice=03215_E_SLICE cannot be used outside of parameter list +% \var{slice} can be used only for arguments accepting an open array parameter. +parser_e_dispinterface_cant_have_parent=03216_E_A DISPINTERFACE cannot have a parent class +% A DISPINTERFACE is a special type of interface which cannot have a parent class. Dispinterface always derive from IDispatch type. +parser_e_dispinterface_needs_a_guid=03217_E_A DISPINTERFACE needs a guid +% A DISPINTERFACE always needs an interface identification (a GUID). +parser_w_overridden_methods_not_same_ret=03218_W_Overridden methods must have a related return type. This code may crash, it depends on a Delphi parser bug ("$2" is overridden by "$1" which has another return type) +% If you declare overridden methods in a class definition, they must +% have the same return type. Some versions of Delphi allow you to change the +% return type of interface methods, and even to change procedures into +% functions, but the resulting code may crash depending on the types used +% and the way the methods are called. +parser_e_dispid_must_be_ord_const=03219_E_Dispatch IDs must be ordinal constants +% The \var{dispid} keyword must be followed by an ordinal constant (the dispid index). +parser_e_array_range_out_of_bounds=03220_E_The range of the array is too large +% Regardless of the size taken up by its elements, an array cannot have more +% than high(ptrint) elements. Additionally, the range type must be a subrange +% of ptrint. +parser_e_packed_element_no_var_addr=03221_E_The address cannot be taken of bit packed array elements and record fields +% If you declare an array or record as \var{packed} in Mac Pascal mode +% (or as \var{packed} in any mode with \var{\{\$bitpacking on\}}), it will +% be packed at the bit level. This means it becomes impossible to take addresses +% of individual array elements or record fields. The only exception to this rule +% is in the case of packed arrays elements whose packed size is a multiple of 8 bits. +parser_e_packed_dynamic_open_array=03222_E_Dynamic arrays cannot be packed +% Only regular (and possibly in the future also open) arrays can be packed. +parser_e_packed_element_no_loop=03223_E_Bit packed array elements and record fields cannot be used as loop variables +% If you declare an array or record as \var{packed} in Mac Pascal mode +% (or as \var{packed} in any mode with \var{\{\$bitpacking on\}}), it will +% be packed at the bit level. For performance reasons, they cannot be +% used as loop variables. +parser_e_type_var_const_only_in_records_and_classes=03224_E_VAR, TYPE and CONST are allowed only in records, objects and classes +% The usage of VAR, TYPE and CONST to declare new types inside an object is allowed only inside +% records, objects and classes. +parser_e_cant_create_generics_of_this_type=03225_E_This type cannot be a generic +% Only Classes, Objects, Interfaces and Records are allowed to be used as generic. +parser_w_no_lineinfo_use_switch=03226_W_Don't load LINEINFO unit manually, Use the -gl compiler switch instead +% Do not use the \file{lineinfo} unit directly, Use the \var{-gl} switch which +% automatically adds the correct unit for reading the selected type of debugging +% information. The unit that needs to be used depends on the type of +% debug information used when compiling the binary. +parser_e_no_funcret_specified=03227_E_No function result type specified for function "$1" +% The first time you declare a function you have to declare it completely, +% including all parameters and the result type. +parser_e_special_onlygenerics=03228_E_Specialization is only supported for generic types +% Types which are not generics cannot be specialized. +parser_e_no_generics_as_params=03229_E_Generics cannot be used as parameters when specializing generics +% When specializing a generic, only non-generic types can be used as parameters. +parser_e_type_object_constants=03230_E_Constants of objects containing a VMT are not allowed +% If an object requires a VMT either because it contains a constructor or virtual methods, +% it's not allowed to create constants of it. In TP and Delphi mode this is allowed +% for compatibility reasons. +parser_e_label_outside_proc=03231_E_Taking the address of labels defined outside the current scope isn't allowed +% It isn't allowed to take the address of labels outside the +% current procedure. +parser_e_initialized_not_for_external=03233_E_Cannot initialize variables declared as external +% Variables declared as external cannot be initialized with a default value. +parser_e_illegal_function_result=03234_E_Illegal function result type +% Some types like file types cannot be used as function result. +parser_e_no_common_type=03235_E_No common type possible between "$1" and "$2" +% To perform an operation on integers, the compiler converts both operands +% to their common type, which appears to be an invalid type. To determine the +% common type of the operands, the compiler takes the minimum of the minimal values +% of both types, and the maximum of the maximal values of both types. The common +% type is then minimum..maximum. +parser_e_no_generics_as_types=03236_E_Generics without specialization cannot be used as a type for a variable +% Generics must be always specialized before being used as variable type. +parser_w_register_list_ignored=03237_W_Register list is ignored for pure assembler routines +% When using pure assembler routines, the list with modified registers is ignored. +parser_e_implements_must_be_class_or_interface=03238_E_Implements property must have class or interface type +% A property which implements an interface must be of type class or interface. +parser_e_implements_must_have_correct_type=03239_E_Implements-property must implement interface of correct type, found "$1" expected "$2" +% A property which implements an interface actually implements a different interface. +parser_e_implements_must_read_specifier=03240_E_Implements-property must have read specifier +% A property which implements an interface must have at least a read specifier. +parser_e_implements_must_not_have_write_specifier=03241_E_Implements-property must not have write-specifier +% A property which implements an interface may not have a write specifier. +parser_e_implements_must_not_have_stored_specifier=03242_E_Implements-property must not have stored-specifier +% A property which implements an interface may not have a stored specifier. +parser_e_implements_uses_non_implemented_interface=03243_E_Implements-property used on unimplemented interface: "$1" +% The interface which is implemented by a property is not an interface implemented by the class. +parser_e_unsupported_real=03244_E_Floating point not supported for this target +% The compiler parsed a floating point expression, but it is not supported. +parser_e_class_doesnt_implement_interface=03245_E_Class "$1" does not implement interface "$2" +% The delegated interface is not implemented by the class given in the implements clause. +parser_e_class_implements_must_be_interface=03246_E_Type used by implements must be an interface +% The \var{implements} keyword must be followed by an interface type. +parser_e_cant_export_var_different_name=03247_E_Variables cannot be exported with a different name on this target, add the name to the declaration using the "export" directive (variable name: $1, declared export name: $2) +% On most targets it is not possible to change the name under which a variable +% is exported inside the \var{exports} statement of a library. +% In that case, you have to specify the export name at the point where the +% variable is declared, using the \var{export} and \var{alias} directives. +parser_e_weak_external_not_supported=03248_E_Weak external symbols are not supported for the current target +% A "weak external" symbol is a symbol which may or may not exist at (either static +% or dynamic) link time. This concept may not be available (or implemented yet) +% on the current cpu/OS target. +parser_e_forward_mismatch=03249_E_Forward type definition does not match +% Classes and interfaces being defined forward must have the same type +% when being implemented. A forward interface cannot be changed into a class. +parser_n_ignore_lower_visibility=03250_N_Virtual method "$1" has a lower visibility ($2) than parent class $3 ($4) +% The virtual method overrides an method that is declared with a higher visibility. This might give +% unexpected results. E.g., in case the new visibility is private then a call to ``inherited'' in a +% new child class will call the higher-visible method in a parent class and ignores the private method. +parser_e_field_not_allowed_here=03251_E_Fields cannot appear after a method or property definition, start a new visibility section first +% Once a method or property has been defined in a class or object, you cannot define any fields afterwards +% without starting a new visibility section (such as \var{public}, \var{private}, etc.). The reason is +% that otherwise the source code can appear ambiguous to the compiler, since it is possible to use modifiers +% such as \var{default} and \var{register} also as field names. +parser_e_no_local_para_def=03252_E_Parameters or result types cannot contain local type definitions. Use a separate type definition in a type block. +% In Pascal, types are not considered to be identical simply because they are semantically equivalent. +% Two variables or parameters are only considered to be of the same type if they refer to the +% same type definition. +% As a result, it is not allowed to define new types inside parameter lists, because then it is impossible to +% refer to the same type definition in the procedure headers of the interface and implementation of a unit +% (both procedure headers would define a separate type). Keep in mind that expressions such as +% ``file of byte'' or ``string[50]'' also define a new type. +parser_e_abstract_and_sealed_conflict=03253_E_ABSTRACT and SEALED conflict +% ABSTRACT and SEALED cannot be used together in one declaration +parser_e_sealed_descendant=03254_E_Cannot create a descendant of the sealed class "$1" +% Sealed means that class cannot be derived by another class. +parser_e_sealed_class_cannot_have_abstract_methods=03255_E_SEALED class cannot have an ABSTRACT method +% Sealed means that class cannot be derived. Therefore no one class is able to override an abstract method in a sealed class. +parser_e_only_virtual_methods_final=03256_E_Only virtual methods can be final +% You are declaring a method as final, when it is not declared to be +% virtual. +parser_e_final_can_no_be_overridden=03257_E_Final method cannot be overridden: "$1" +% You are trying to \var{override} a virtual method of a parent class that does +% not exist. +parser_e_multiple_messages=03258_E_Only one message can be used per method. +% It is not possible to associate multiple messages with a single method. +parser_e_invalid_enumerator_identifier=03259_E_Invalid enumerator identifier: "$1" +% Only "MoveNext" and "Current" enumerator identifiers are supported. +parser_e_enumerator_identifier_required=03260_E_Enumerator identifier required +% "MoveNext" or "Current" identifier must follow the \var{enumerator} modifier. +parser_e_enumerator_movenext_is_not_valid=03261_E_Enumerator MoveNext pattern method is not valid. Method must be a function with the Boolean return type and no required arguments. +% "MoveNext" enumerator pattern method must be a function with Boolean return type and no required arguments +parser_e_enumerator_current_is_not_valid=03262_E_Enumerator Current pattern property is not valid. Property must have a getter. +% "Current" enumerator pattern property must have a getter +parser_e_only_one_enumerator_movenext=03263_E_Only one enumerator MoveNext method is allowed per class/object +% Class or Object can have only one enumerator MoveNext declaration. +parser_e_only_one_enumerator_current=03264_E_Only one enumerator Current property is allowed per class/object +% Class or Object can have only one enumerator Current declaration. +parser_e_for_in_loop_cannot_be_used_for_the_type=03265_E_For in loop cannot be used for the type "$1" +% For in loop can be used not for all types. For example it cannot be used for the enumerations with jumps. +parser_e_objc_requires_msgstr=03266_E_Objective-C messages require their Objective-C selector name to be specified using the "message" directive. +% Objective-C messages require their Objective-C name (selector name) to be specified using the \var{message `someName:'} procedure directive. +% While bindings to other languages automatically generate such names based on the identifier you use (by replacing +% all underscores with colons), this is unsafe since nothing prevents an Objective-C method name to contain actual +% colons. +parser_e_objc_no_constructor_destructor=03267_E_Objective-C does not have formal constructors nor destructors. Use the alloc, initXXX and dealloc messages. +% The Objective-C language does not have any constructors or destructors. While there are some messages with a similar +% purpose (such as \var{init} and \var{dealloc}), these cannot be identified using automatic parsers and do not +% guarantee anything like Pascal constructors/destructors (e.g., you have to take care of only calling ``designated'' +% inherited ``constructors''). For these reasons, we have opted to follow the standard Objective-C patterns for +% instance creation/destruction. +parser_e_message_string_too_long=03268_E_Message name is too long (max. 255 characters) +% Due to compiler implementation reasons, message names are currently limited to 255 characters. +parser_e_objc_message_name_too_long=03269_E_Objective-C message symbol name for "$1" is too long +% Due to compiler implementation reasons, mangled message names (i.e., the symbol names used in the assembler +% code) are currently limited to 255 characters. +parser_h_no_objc_parent=03270_H_Defining a new Objective-C root class. To derive from another root class (e.g., NSObject), specify it as the parent class. +% If no parent class is specified for an Object Pascal class, then it automatically derives from TObject. +% Objective-C classes however do not automatically derive from NSObject, because one can have multiple +% root classes in Objective-C. For example, in the Cocoa framework both NSObject and NSProxy are root classes. +% Therefore, you have to explicitly define a parent class (such as NSObject) if you want to derive your +% Objective-C class from it. +parser_e_no_objc_published=03271_E_Objective-C classes cannot have published sections. +% In Object Pascal, ``published'' determines whether or not RTTI is generated. Since the Objective-C runtime always needs +% RTTI for everything, this specified does not make sense for Objective-C classes. +parser_f_need_objc=03272_F_This module requires an Objective-C mode switch to be compiled +% This error indicates the use of Objective-C language features without an Objective-C mode switch +% active. Enable one via the -M command line switch, or the {\$modeswitch x} directive. +parser_e_must_use_override=03273_E_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1) +parser_h_should_use_override=03274_H_Inherited methods can only be overridden in Objective-C and Java, add "override" (inherited method defined in $1). +% It is not possible to \var{reintroduce} methods in Objective-C or Java like in Object Pascal. Methods with the same +% name always map to the same virtual method entry. In order to make this clear in the source code, +% the compiler always requires the \var{override} directive to be specified when implementing overriding +% Objective-C or Java methods in Pascal. If the implementation is external, this rule is relaxed because Objective-C and Java +% do not have any \var{override}-style keyword (since it's the default and only behaviour in these languages), +% which makes it hard for automated header conversion tools to include it everywhere. +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory in case of Objective-C. +parser_e_objc_message_name_changed=03275_E_Message name "$1" in inherited class is different from message name "$2" in current class. +% An overriding Objective-C method cannot have a different message name than an inherited method. The reason +% is that these message names uniquely define the message to the Objective-C runtime, which means that +% giving them a different message name breaks the ``override'' semantics. +parser_e_unique_unsupported=03276_E_It is not yet possible to make unique copies of Objective-C or Java types +% Duplicating an Objective-C or Java type using \var{type x = type y;} is not yet supported. You may be able to +% obtain the desired effect using \var{type x = objcclass(y) end;} resp.{} \var{type x = class(y) end;} instead. +parser_e_no_category_as_types=03277_E_Objective-C categories and Object Pascal class helpers cannot be used as types +% It is not possible to declare a variable as an instance of an Objective-C +% category or an Object Pascal class helper. A category/class helper adds +% methods to the scope of an existing class, but does not define a type by +% itself. An exception of this rule is when inheriting an Object Pascal class +% helper from another class helper. +parser_e_no_category_override=03278_E_Categories do not override, but replace methods. Use "reintroduce" instead. +parser_e_must_use_reintroduce_objc=03279_E_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +parser_h_should_use_reintroduce_objc=03280_H_Replaced methods can only be reintroduced in Objective-C, add "reintroduce" (replaced method defined in $1). +% A category replaces an existing method in an Objective-C class, rather than that it overrides it. +% Calling an inherited method from an category method will call that method in +% the extended class' parent, not in the extended class itself. The +% replaced method in the original class is basically lost, and can no longer be +% called or referred to. This behaviour corresponds somewhat more closely to +% \var{reintroduce} than to \var{override} (although in case of \var{reintroduce} +% in Object Pascal, hidden methods are still reachable via inherited). +% The type in which the inherited method is defined is explicitly mentioned, because this may either +% be an objcclass or an objccategory. +parser_e_implements_getter_not_default_cc=03281_E_Getter for implements interface must use the target's default calling convention. +% Interface getters are called via a helper in the run time library, and hence +% have to use the default calling convention for the target (\var{register} on +% i386 and x86\_64, \var{stdcall} on other architectures). +parser_e_no_refcounted_typed_file=03282_E_Typed files cannot contain reference-counted types. +% The data in a typed file cannot be of a reference counted type (such as +% \var{ansistring} or a record containing a field that is reference counted). +parser_e_operator_not_overloaded_2=03283_E_Operator is not overloaded: $2 "$1" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_operator_not_overloaded_3=03284_E_Operator is not overloaded: "$1" $2 "$3" +% You are trying to use an overloaded operator when it is not overloaded for +% this type. +parser_e_more_array_elements_expected=03285_E_Expected another $1 array elements +% When declaring a typed constant array, you provided to few elements to initialize the array +parser_e_string_const_too_long=03286_E_String constant too long while ansistrings are disabled +% Only when a piece of code is compiled with ansistrings enabled (\var{\{\$H+\}}), string constants +% longer than 255 characters are allowed. +parser_e_invalid_univ_para=03287_E_Type cannot be used as univ parameter because its size is unknown at compile time: "$1" +% \var{univ} parameters are compatible with all values of the same size, but this +% cannot be checked in case a parameter's size is unknown at compile time. +parser_e_only_one_class_constructor_allowed=03288_E_Only one class constructor can be declared in class: "$1" +% You are trying to declare more than one class constructor but only one class constructor can be declared. +parser_e_only_one_class_destructor_allowed=03289_E_Only one class destructor can be declared in class: "$1" +% You are trying to declare more than one class destructor but only one class destructor can be declared. +parser_e_no_paras_for_class_constructor=03290_E_Class constructors cannot have parameters +% You are declaring a class constructor with a parameter list. Class constructor methods +% cannot have parameters. +parser_e_no_paras_for_class_destructor=03291_E_Class destructors cannot have parameters +% You are declaring a class destructor with a parameter list. Class destructor methods +% cannot have parameters. +parser_f_modeswitch_objc_required=03292_F_This construct requires the \{\$modeswitch objectivec1\} mode switch to be active +% Objective-Pascal constructs are not supported when \{\$modeswitch ObjectiveC1\} +% is not active. +parser_e_widestring_to_ansi_compile_time=03293_E_Unicodechar/string constants cannot be converted to ansi/shortstring at compile-time +% It is not possible to use unicodechar and unicodestring constants in +% constant expressions that have to be converted into an ansistring or shortstring +% at compile time, for example inside typed constants. The reason is that the +% compiler cannot know what the actual ansi encoding will be at run time. +parser_e_objc_enumerator_2_0=03294_E_For-in Objective-Pascal loops require \{\$modeswitch ObjectiveC2\} to be active +% Objective-C ``fast enumeration'' support was added in Objective-C 2.0, and +% hence the appropriate modeswitch has to be activated to expose this feature. +% Note that Objective-C 2.0 programs require Mac OS X 10.5 or later. +parser_e_objc_missing_enumeration_defs=03295_E_The compiler cannot find the NSFastEnumerationProtocol or NSFastEnumerationState type in the CocoaAll unit +% Objective-C for-in loops (fast enumeration) require that the compiler can +% find a unit called CocoaAll that contains definitions for the +% NSFastEnumerationProtocol and NSFastEnumerationState types. If you get this +% error, most likely the compiler is finding and loading an alternate CocoaAll +% unit. +parser_e_no_procvarnested_const=03296_E_Typed constants of the type 'procedure is nested' can only be initialized with NIL and global procedures/functions +% A nested procedural variable consists of two components: the address of the +% procedure/function to call (which is always known at compile time), and also +% a parent frame pointer (which is never known at compile time) in case the +% procedural variable contains a reference to a nested procedure/function. +% Therefore such typed constants can only be initialized with global +% functions/procedures since these do not require a parent frame pointer. +parser_f_no_generic_inside_generic=03297_F_Declaration of generic class inside another generic class is not allowed +% At the moment, scanner supports recording of only one token buffer at the time +% (guarded by internal error 200511173 in tscannerfile.startrecordtokens). +% Since generics are implemented by recording tokens, it is not possible to +% have declaration of generic class inside another generic class. +parser_e_forward_intf_declaration_must_be_resolved=03298_E_Forward declaration "$1" must be resolved before a class can conform to or implement it +% An Objective-C protocol or Java Interface must be fully defined before classes can conform to it. +% This error occurs in the following situation (example for Objective-C, but the same goes for Java interfaces): +% \begin{verbatim} +% Type MyProtocol = objcprotoocl; +% ChildClass = Class(NSObject,MyProtocol) +% ... +% end; +% \end{verbatim} +% where \var{MyProtocol} is declared but not defined. +parser_e_no_record_published=03299_E_Record types cannot have published sections +% Published sections can be used only inside classes. +parser_e_no_destructor_in_records=03300_E_Destructors are not allowed in records or helpers +% Destructor declarations are not allowed in records or helpers. +parser_e_class_methods_only_static_in_records=03301_E_Class methods must be static in records +% Class methods declarations are not allowed in records without static modifier. +% Records have no inheritance and therefore non static class methods have no sense for them. +parser_e_no_parameterless_constructor_in_records=03302_E_Parameterless constructors are not allowed in records or record/type helpers +% Constructor declarations with no arguments are not allowed in records or record/type helpers. +parser_e_at_least_one_argument_must_be_of_type=03303_E_Either the result or at least one parameter must be of type "$1" +% It is required that either the result of the routine or at least one of its parameters be of the specified type. +% For example class operators either take an instance of the structured type in which they are defined, or they return one. +parser_e_cant_use_type_parameters_here=03304_E_Type parameters may require initialization/finalization - cannot be used in variant records +% Type parameters may be specialized with types which (e.g. \var{ansistring}) need initialization/finalization +% code which is implicitly generated by the compiler. +parser_e_externals_no_section=03305_E_Variables being declared as external cannot be in a custom section +% A section directive is not valid for variables being declared as external. +parser_e_section_no_locals=03306_E_Non-static and non-global variables cannot have a section directive +% A variable placed in a custom section is always statically allocated so it must be either a static or global variable. +parser_e_not_allowed_in_helper=03307_E_"$1" is not allowed in helper types +% Some directives and specifiers like "virtual", "dynamic", "override" are not +% allowed inside helper types in mode ObjFPC (they are ignored in mode Delphi), +% because they have no meaning within helpers. Also "abstract" isn't allowed in +% either mode. +parser_e_no_class_constructor_in_helpers=03308_E_Class constructors are not allowed in helpers +% Class constructor declarations are not allowed in helpers. +parser_e_inherited_not_in_record=03309_E_The use of "inherited" is not allowed in a record +% As records don't support inheritance the use of "inherited" is prohibited for +% these as well as for record helpers (in mode "Delphi" only). +parser_e_no_types_in_local_anonymous_records=03310_E_Type declarations are not allowed in local or anonymous records +% Records with types must be defined globally. Types cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_duplicate_implements_clause=03311_E_Duplicate implements clause for interface "$1" +% A class may delegate an interface using the "implements" clause only to a single property. Delegating it multiple times +% is a error. +parser_e_mapping_no_implements=03312_E_Interface "$1" cannot be delegated by "$2", it already has method resolutions +% Method resolution clause maps a method of an interface to a method of the current class. Therefore the current class +% has to implement the interface directly. Delegation is not possible. +parser_e_implements_no_mapping=03313_E_Interface "$1" cannot have method resolutions, "$2" already delegates it +% Method resolution is only possible for interfaces that are implemented directly, not by delegation. +parser_e_invalid_codepage=03314_E_Invalid codepage +% When declaring a string with a given codepage, the range of valid codepages values is limited +% to 0 to 65535. +parser_e_final_only_const_var=03315_E_Only fields (var-sections) and constants can be final in object types +% A final (class) field must be assigned a single value in the (class) constructor, and cannot +% be overwritten afterwards. A final (typed) constant is read-only. +parser_e_final_only_external=03316_E_Final fields are currently only supported for external classes +% Support for final fields in non-external classes requires a full data flow +% analysis implementation in FPC, which it currently still lacks. +parser_e_no_typed_const=03317_E_Typed constants are not allowed here, only formal constants are +% Java interfaces define a namespace in which formal constant can be defined, +% but since they define no storage it is not possible to define typed constants +% in them (those are more or less the same as initialised class fields). +parser_e_java_no_inherited_constructor=03318_E_Constructors are not automatically inherited in the JVM; explicitly add a constructor that calls the inherited one if you need it +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% For compatibility with external Java code, FPC does the same. If you require access to the same +% constructors in a child class, define them in the child class and call the inherited one from +% there. +parser_d_internal_parser_string=03319_D_Parsing internally generated code: $1 +% The compiler sometimes internally constructs Pascal code that is subsequently +% injected into the program. These messages display such code, in order to help +% with debugging errors in them. +parser_e_feature_unsupported_for_vm=03320_E_This language feature is not supported on managed VM targets +% Certain language features are not supported on targets that are managed virtual machines. +parser_e_jvm_invalid_virtual_constructor_call=03321_E_Calling a virtual constructor for the current instance inside another constructor is not possible on the JVM target +% The JVM does not natively support virtual constructor. Unforunately, we are not aware of a way to +% emulate them in a way that makes it possible to support calling virtual constructors +% for the current instance inside another constructor. +parser_e_method_lower_visibility=03322_E_Overriding method "$1" cannot have a lower visibility ($2) than in parent class $3 ($4) +% The JVM does not allow lowering the visibility of an overriding method. +parser_e_nostackframe_without_assembler=03323_E_Procedure/Function declared with call option NOSTACKFRAME but without ASSEMBLER +% nostackframe call modifier is supposed to be used in conjunction with assembler. +parser_e_nostackframe_with_locals=03324_E_Procedure/Function declared with call option NOSTACKFRAME but local stack size is $1 +% nostackframe call modifier used without assembler modifier +% might still generate local stack needs. +parser_e_cannot_generate_property_getter_setter=03325_E_Cannot generate property getter/setter $1 because its name clashes with existing identifier $2 +% Automatically generated getters/setters cannot have the same name as existing +% identifiers, because this may change the behaviour of existing code. +parser_w_overriding_property_getter_setter=03326_W_Automatically generated property getter/setter $1 overrides the same-named getter/setter in class $2 +% Automatically generated property getters/setters on the JVM platform are virtual methods, because +% the JVM does not support non-virtual methods that can be changed in child classes. This means +% that if a child class changes an inherited property definition, the behaviour of that property +% can change compared to native targets since even if a variable is declared as the parent type, +% by calling the virtual method the getter from the child will be used. This is different from +% the behaviour on native targets or when not activating automatically generated setters/getters, +% because in that case only the declared type of a variable influences the property behaviour. +parser_w_case_difference_auto_property_getter_setter_prefix=03327_W_Case mismatch between declared property getter/setter $1 and automatically constructed name $2, not changing declared name +% If a property's specified getter/setter already corresponded to the naming convention specified +% by the automatic getter/setter generation setting except in terms of upper/lowercase, the +% compiler will print a warning because it cannot necessarily change that other declaration itself +% not can it add one using the correct case (it could conflict with the original declaration). +% Manually correct the case of the getter/setter to conform to the desired coding rules. +% \var{TChild} overrides +parser_e_no_consts_in_local_anonymous_records=03328_E_Constants declarations are not allowed in local or anonymous records +% Records with constants must be defined globally. Constants cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_methods_in_local_anonymous_records=03329_E_Method declarations are not allowed in local or anonymous records +% Records with methods must be defined globally. Methods cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_properties_in_local_anonymous_records=03330_E_Property declarations are not allowed in local or anonymous records +% Records with properties must be defined globally. Properties cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_no_class_in_local_anonymous_records=03331_E_Class member declarations are not allowed in local or anonymous records +% Records with class members must be defined globally. Class members cannot be defined inside records which are defined in a +% procedure or function or in anonymous records. +parser_e_not_allowed_in_record=03332_E_Visibility section "$1" not allowed in records +% The visibility sections \var(protected) and \var(strict protected) are only +% useful together with inheritance. Since records do not support that they are +% forbidden. +parser_e_dir_not_allowed=03333_E_Directive "$1" not allowed here +% This directive is not allowed in the given context. E.g. "static" +% is not allowed for instance methods or class operators. +parser_e_no_assembler_in_generic=03334_E_Assembler blocks not allowed inside generics +% The use of assembler blocks/routines is not allowed inside generics. +parser_e_property_only_sgr=03335_E_Properties can be only static, global or inside structured types +% Properties cannot be declared local, only global, using the static +% directive or inside structured types. +parser_e_overloaded_have_same_mangled_name=03336_E_Overloaded routines have the same mangled name +% Some platforms, such as the JVM platform, encode the parameters in the routine name in +% a prescribed way, and this encoding may map different Pascal types to the same encoded +% (a.k.a.\ ``mangled'') name. This error can only be solved by removing or changing the +% conflicting definitions' parameter declarations or routine names. +parser_e_default_value_val_const=03337_E_Default values can only be specified for value, const and constref parameters +% A default parameter value allows you to not specify a value for this parameter +% when calling the routine, and the compiler will instead pass the specified +% default (constant) value. As a result, default values can only be specified +% for parameters that can accept constant values. +parser_w_ptr_type_ignored=03338_W_Pointer type "$1" ignored +% The specified pointer type modifier is ignored, because it is not supported on +% the current platform. This happens, for example, when a far pointer is +% declared on a non-x86 platform. +parser_e_global_generic_references_static=03339_E_Global Generic template references static symtable +% A generic declared in the interface section of a unit must not reference symbols that belong +% solely to the implementation section of that unit. +parser_u_already_compiled=03340_UL_Unit $1 has been already compiled meanwhile. +% This tells you that the recursive reading of the uses clauses triggered already +% a compilation of the current unit, so the current compilation can be aborted. +% +% +% +% \end{description} +% +# Type Checking +# +# 04123 is the last used one +# +% \section{Type checking errors} +% This section lists all errors that can occur when type checking is +% performed. +% \begin{description} type_e_mismatch=04000_E_Los tipos no concuerdan % This can happen in many cases: % \begin{itemize} @@ -1143,12 +1690,18 @@ type_e_array_required=04033_E_Se requiere un array para usar [ ] % If you are accessing a variable using an index '[]' then % the type must be an array. In FPC mode also a pointer is allowed. type_e_interface_type_expected=04034_E_Se esperaba "interface" pero se encontró "$1" -type_w_mixed_signed_unsigned=04035_W_Operaciones mezclando enteros de 32 bits con signo son convertidas a 64 bits +% The compiler expected to encounter an interface type name, but got something else. +% The following code would produce this error: +% \begin{verbatim} +% Type +% TMyStream = Class(TStream,Integer) +% \end{verbatim} +type_h_mixed_signed_unsigned=04035_H_Mixing signed expressions and longwords gives a 64bit result % If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), % or if you have overflow and/or range checking turned on and use an arithmetic % expression (+, -, *, div, mod) in which both signed numbers and longwords appear, -% then everything has to be evaluated in 64bit which is slower than normal -% 32bit arithmetic. You can avoid this by typecasting one operand so it +% then everything has to be evaluated in 64-bit arithmetic which is slower than normal +% 32-bit arithmetic. You can avoid this by typecasting one operand so it % matches the result type of the other one. type_w_mixed_signed_unsigned2=04036_W_Mezclar operando con signo y sin signo aqui puede causar errores de comprobación de rango % If you use a binary operator (and, or, xor) and one of @@ -1174,18 +1727,23 @@ type_w_classes_not_related=04040_W_Los tipos de clases "$1" y "$2" no están rel % There is a typecast from one class or object to another while the class/object % are not related. This will probably lead to errors type_e_class_or_interface_type_expected=04041_E_Se esperaba una clase o interfaz, pero se encotró "$1" +% The compiler expected a class or interface name, but got another type or identifier. type_e_type_is_not_completly_defined=04042_E_El tipo "$1" no esta definido completamente aún +% This error occurs when a type is not complete: i.e. a pointer type which points to +% an undefined type. type_w_string_too_long=04043_W_La cadena contiene mas caracteres que los admitidos por una cadena corta % The size of the constant string, which is assigned to a shortstring, % is longer than the maximum size of the shortstring -type_w_signed_unsigned_always_false=04044_W_La comparación es siempre falsa debido a los rangos de los valores -% There is a comparison between an unsigned value and a signed constant which is -% less than zero. Because of type promotion, the statement will always evaluate to -% false. Exlicitly typecast the constant to the correct range to avoid this problem. -type_w_signed_unsigned_always_true=04045_W_La comparación es siempre verdadera debido a los rangos de los valores -% There is a comparison between an unsigned value and a signed constant which is -% less than zero. Because of type promotion, the statement will always evaluate to -% true. Exlicitly typecast the constant to the correct range to avoid this problem. +type_w_comparison_always_false=04044_W_Comparison might be always false due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% false. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. +type_w_comparison_always_true=04045_W_Comparison might be always true due to range of constant and expression +% There is a comparison between a constant and an expression where the constant is out of the +% valid range of values of the expression. Because of type promotion, the statement will always evaluate to +% true. Explicitly typecast the constant or the expression to the correct range to avoid this warning +% if you think the code is correct. type_w_instance_with_abstract=04046_W_Constuyendo un objeto de clase "$1" que contiene métodos abstractos % An instance of a class is created which contains non-implemented abstract % methods. This will probably lead to a runtime error 211 in the code if that @@ -1204,9 +1762,9 @@ type_h_smaller_possible_range_check=04049_H_Diferencia del tamaño de los tipos % this may cause a range-check error, or may lead to possible loss of data. type_e_cant_take_address_of_abstract_method=04050_E_No se puede obtener la dirección de un método abstracto % An abstract method has no body, so the address of an abstract method can't be taken. -type_e_operator_not_allowed=04051_E_El operador no es aplicable con los operandos especificados -% You are trying an operator that is not available for the type of the -% operands +type_e_assignment_not_allowed=04051_E_Assignments to formal parameters and open arrays are not possible +% You are trying to assign a value to a formal (untyped var, const or out) +% parameter, or to an open array. type_e_constant_expr_expected=04052_E_Se esperaba una expresió constante % The compiler expects an constant expression, but gets a variable expression. type_e_operator_not_supported_for_types=04053_E_La operacion "$1" no está soportada para los tipos "$2" y "$3" @@ -1239,6 +1797,213 @@ type_e_illegal_count_var=04058_E_Variable de contador inválida % This section lists all the messages that concern the handling of symbols. % This means all things that have to do with procedure and variable names. % \begin{description} +type_w_double_c_varargs=04059_W_Converting constant real value to double for C variable argument, add explicit typecast to prevent this. +% In C, constant real values are double by default. For this reason, if you +% pass a constant real value to a variable argument part of a C function, FPC +% by default converts this constant to double as well. If you want to prevent +% this from happening, add an explicit typecast around the constant. +type_e_class_or_cominterface_type_expected=04060_E_Class or COM interface type expected, but got "$1" +% Some operators, such as the AS operator, are only applicable to classes or COM interfaces. +type_e_no_const_packed_array=04061_E_Constant packed arrays are not yet supported +% You cannot declare a (bit)packed array as a typed constant. +type_e_got_expected_packed_array=04062_E_Incompatible type for arg no. $1: Got "$2" expected "(Bit)Packed Array" +% The compiler expects a (bit)packed array as the specified parameter. +type_e_got_expected_unpacked_array=04063_E_Incompatible type for arg no. $1: Got "$2" expected "(not packed) Array" +% The compiler expects a regular (i.e., not packed) array as the specified parameter. +type_e_no_packed_inittable=04064_E_Elements of packed arrays cannot be of a type which need to be initialised +% Support for packed arrays of types that need initialization +% (such as ansistrings, or records which contain ansistrings) is not yet implemented. +type_e_no_const_packed_record=04065_E_Constant packed records and objects are not yet supported +% You cannot declare a (bit)packed array as a typed constant at this time. +type_w_untyped_arithmetic_unportable=04066_W_Arithmetic "$1" on untyped pointer is unportable to {$T+}, suggest typecast +% Addition/subtraction from an untyped pointer may work differently in \var{\{\$T+\}}. +% Use a typecast to a typed pointer. +type_e_cant_take_address_of_local_subroutine=04076_E_Can't take address of a subroutine marked as local +% The address of a subroutine marked as local cannot be taken. +type_e_cant_export_local=04077_E_Can't export subroutine marked as local from a unit +% A subroutine marked as local cannot be exported from a unit. +type_e_not_automatable=04078_E_Type is not automatable: "$1" +% Only byte, integer, longint, smallint, currency, single, double, ansistring, +% widestring, tdatetime, variant, olevariant, wordbool and all interfaces are automatable. +type_h_convert_add_operands_to_prevent_overflow=04079_H_Converting the operands to "$1" before doing the add could prevent overflow errors. +% Adding two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the addition. +type_h_convert_sub_operands_to_prevent_overflow=04080_H_Converting the operands to "$1" before doing the subtract could prevent overflow errors. +% Subtracting two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the subtraction. +type_h_convert_mul_operands_to_prevent_overflow=04081_H_Converting the operands to "$1" before doing the multiply could prevent overflow errors. +% Multiplying two types can cause overflow errors. Since you are converting the result to a larger type, you +% could prevent such errors by converting the operands to this type before doing the multiplication. +type_w_pointer_to_signed=04082_W_Converting pointers to signed integers may result in wrong comparison results and range errors, use an unsigned type instead. +% The virtual address space on 32-bit machines runs from \$00000000 to \$ffffffff. +% Many operating systems allow you to allocate memory above \$80000000. +% For example both \windows and \linux allow pointers in the range \$0000000 to \$bfffffff. +% If you convert pointers to signed types, this can cause overflow and range check errors, +% but also \$80000000 < \$7fffffff. This can cause random errors in code like "if p>q". +type_e_interface_has_no_guid=04083_E_Interface type $1 has no valid GUID +% When applying the as-operator to an interface or class, the desired interface (i.e. the right operand of the +% as-operator) must have a valid GUID. +type_e_invalid_objc_selector_name=04084_E_Invalid selector name "$1" +% An Objective-C selector cannot be empty, must be a valid identifier or a single colon, +% and if it contains at least one colon it must also end in one. +type_e_expected_objc_method_but_got=04085_E_Expected Objective-C method, but got $1 +% A selector can only be created for Objective-C methods, not for any other kind +% of procedure/function/method. +type_e_expected_objc_method=04086_E_Expected Objective-C method or constant method name +% A selector can only be created for Objective-C methods, either by specifying +% the name using a string constant, or by using an Objective-C method identifier +% that is visible in the current scope. +type_e_no_type_info=04087_E_No type info available for this type +% Type information is not generated for some types, such as enumerations with gaps +% in their value range (this includes enumerations whose lower bound is different +% from zero). +type_e_ordinal_or_string_expr_expected=04088_E_Ordinal or string expression expected +% The expression must be an ordinal or string type. +type_e_string_expr_expected=04089_E_String expression expected +% The expression must be a string type. +type_w_zero_to_nil=04090_W_Converting 0 to NIL +% Use NIL rather than 0 when initialising a pointer. +type_e_protocol_type_expected=04091_E_Objective-C protocol type expected, but got "$1" +% The compiler expected a protocol type name, but found something else. +type_e_objc_type_unsupported=04092_E_The type "$1" is not supported for interaction with the Objective-C and the blocks runtime. +% Objective-C and Blocks make extensive use of run time type information (RTTI). This format +% is defined by the maintainers of the run time and can therefore not be adapted +% to all possible Object Pascal types. In particular, types that depend on +% reference counting by the compiler (such as ansistrings and certain kinds of +% interfaces) cannot be used as fields of Objective-C classes, cannot be +% directly passed to Objective-C methods or Blocks, and cannot be encoded using \var{objc\_encode}. +type_e_class_or_objcclass_type_expected=04093_E_Class or objcclass type expected, but got "$1" +% It is only possible to create class reference types of \var{class} and \var{objcclass} +type_e_objcclass_type_expected=04094_E_Objcclass type expected +% The compiler expected an \var{objcclass} type +type_w_procvar_univ_conflicting_para=04095_W_Coerced univ parameter type in procedural variable may cause crash or memory corruption: $1 to $2 +% \var{univ} parameters are implicitly compatible with all types of the same size, +% also in procedural variable definitions. That means that the following code is +% legal, because \var{single} and \var{longint} have the same size: +% \begin{verbatim} +% {$mode macpas} +% Type +% TIntProc = procedure (l: univ longint); +% +% procedure test(s: single); +% begin +% writeln(s); +% end; +% +% var +% p: TIntProc; +% begin +% p:=test; +% p(4); +% end. +% \end{verbatim} +% This code may however crash on platforms that pass integers in registers and +% floating point values on the stack, because then the stack will be unbalanced. +% Note that this warning will not flag all potentially dangerous situations. +% when \var{test} returns. +type_e_generics_cannot_reference_itself=04096_E_Type parameters of specializations of generics cannot reference the currently specialized type +% Recursive specializations of generics like \var{Type MyType = specialize MyGeneric;} are not possible. +type_e_type_parameters_are_not_allowed_here=04097_E_Type parameters are not allowed on non-generic class/record/object procedure or function +% Type parameters are only allowed for methods of generic classes, records or objects +type_e_generic_declaration_does_not_match=04098_E_Generic declaration of "$1" differs from previous declaration +% Generic declaration does not match the previous declaration +type_e_helper_type_expected=04099_E_Helper type expected +% The compiler expected a \var{class helper} type. +type_e_record_type_expected=04100_E_Record type expected +% The compiler expected a \var{record} type. +type_e_class_helper_must_extend_subclass=04101_E_Derived class helper must extend a subclass of "$1" or the class itself +% If a class helper inherits from another class helper the extended class must +% extend either the same class as the parent class helper or a subclass of it +type_e_record_helper_must_extend_same_record=04102_E_Derived record or type helper must extend "$1" +% If a record helper inherits from another record helper it must extend the same +% record that the parent record helper extended. +type_e_procedures_return_no_value=04103_E_Invalid assignment, procedures return no value +% This error occurs when one tries to assign the result of a procedure or destructor call. +% A procedure or destructor returns no value so this is not +% possible. +type_w_implicit_string_cast=04104_W_Implicit string type conversion from "$1" to "$2" +% An implicit type conversion from an ansi string type to an unicode string type is +% encountered. To avoid this warning perform an explicit type conversion. +type_w_implicit_string_cast_loss=04105_W_Implicit string type conversion with potential data loss from "$1" to "$2" +% An implicit type conversion from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. +type_w_explicit_string_cast=04106_-W_Explicit string typecast from "$1" to "$2" +% An explicit typecast from an ansi string type to an unicode string type is +% encountered. This warning is off by default. You can turn it on to see all suspicious string conversions. +type_w_explicit_string_cast_loss=04107_-W_Explicit string typecast with potential data loss from "$1" to "$2" +% An explicit typecast from an unicode string type to an ansi string type is +% encountered. This conversion can lose data since not all unicode characters may be represented in the codepage of +% destination string type. This warning is off by default. You can turn it on to see all the places with lossy string +% conversions. +type_w_unicode_data_loss=04108_W_Unicode constant cast with potential data loss +% Conversion from a WideChar to AnsiChar can lose data since now all unicode characters may be represented in the current +% system codepage +% You can nest function definitions only 31 levels deep. +type_e_range_check_error_bounds=04109_E_range check error while evaluating constants ($1 must be between $2 and $3) +type_w_range_check_error_bounds=04110_W_range check error while evaluating constants ($1 must be between $2 and $3) +% The constants are outside their allowed range. +type_e_type_not_allowed_for_default=04111_E_This type is not supported for the Default() intrinsic +% Some types like for example Text and File Of X are not supported by the Default intrinsic. +type_e_java_class_method_not_static_virtual=04112_E_JVM virtual class methods cannot be static +% Virtual class methods cannot be static when targeting the JVM platform, because +% the self pointer is required for correct dispatching. +type_e_invalid_final_assignment=04113_E_Final (class) fields can only be assigned in their class' (class) constructor +% It is only possible to assign a value to a final (class) field inside a (class) constructor of its owning class. +type_e_no_managed_formal_assign_typecast=04114_E_It is not possible to typecast untyped parameters on managed platforms, simply assign a value to them instead. +% On managed platforms, untyped parameters are translated by the compiler into +% the equivalent of \var{var x: BaseClassType}. Non-class-based types passed to +% such parameters are automatically wrapped (or boxed) in a class, and after the +% call the potentially modified value is assigned back to the original variable. +% On the caller side, changing untyped var/out parameters happens by simply assigning +% values to them (either class-based or primitive ones). On the caller side, +% they will be extracted and if their type does not match the original variable's, +% an exception will be raised. +type_e_no_managed_assign_generic_typecast=04115_E_The assignment side of an expression cannot be typecasted to a supertype on managed platforms +% Managed platforms guarantee type safety at the bytecode level. This means that the virtual machine must be able +% to statically determine that no type-unsafe assignments or operations occur. By assigning a parent class type to a +% variable of a child type by typecasting the assignment side to the parent class type, the type safety would no +% longer be guaranteed and the generated code would fail verification at run time time. +type_w_interface_lower_visibility=04116_-W_The interface method "$1" raises the visibility of "$2" to public when accessed via an interface instance +type_e_interface_lower_visibility=04117_E_The interface method "$1" has a higher visibility (public) than "$2" +% All methods in an interface have always public visibility. That means that if +% an interface method is implemented using a (strict) protected or private method, +% this method is actually publicly accessible via the interface. On the JVM +% target this situation results in an error because the JVM rejects such +% attempts to circumvent the visibility rules. On other targets this is a +% warning that is disabled by default because such situations are common +% practice, but it can be enabled in case you are concerned with keeping your +% code compilable for the JVM target. +type_e_typeof_requires_vmt=04118_E_TYPEOF can only be used on object types with VMT +% Typeof() intrinsic returns pointer to VMT of its argument. It cannot be used on object types that do not have VMT. +type_e_invalid_default_value=04119_E_It is not possible to define a default value for a parameter of type "$1" +% Parameters declared as structured types, such as files, variants, non-dynamic +% arrays and TP-style objects, cannot have a default value. +type_e_type_not_allowed_for_type_helper=04120_E_Type "$1" cannot be extended by a type helper +% Types like procedural variables cannot be extended by type helpers +type_e_procedure_must_be_far=04121_E_Procedure or function must be far in order to allow taking its address: "$1" +% In certain i8086 memory models (medium, large and huge), procedures and functions +% have to be declared 'far' in order to allow their address to be taken. +type_w_instance_abstract_class=04122_W_Creating an instance of abstract class "$1" +% The specified class is declared as \var{abstract} and thus no instance of this class +% should be created. This is merely a warning for Delphi compatibility. +type_e_function_reference_kind=04123_E_Subroutine references cannot be declared as "of object" or "is nested", they can always refer to any kind of subroutine +% Subroutine references can refer to any kind of subroutine and hence do not +% require specialisation for methods or nested subroutines. +type_e_anonymous_function_unsupported=04999_E_Function references are not yet supported, only blocks (add "cdecl;" at the end) +% Remove this error message once Delphi-style anonymous are implemented. It has +% number 4999 so as not to result in a gap in the error message numbering once +% it's removed. +% \end{description} +# +# Symtable +# +# 05095 is the last used one +# +% \section{Symbol handling} +% This section lists all the messages that concern the handling of symbols. +% This means all things that have to do with procedure and variable names. +% \begin{description} sym_e_id_not_found=05000_E_Identificador no encontrado "$1" % The compiler doesn't know this symbol. Usually happens when you misspel % the name of a variable or procedure, or when you forgot to declare a @@ -1313,8 +2078,11 @@ sym_n_local_identifier_only_set=05027_N_Valor asignado a la variable local "$1" sym_h_local_symbol_not_used=05028_H_Símbolo local $1 "$2" no utilizado % A local symbol is never used. sym_n_private_identifier_not_used=05029_N_Campo privado $1.$2 no utilizado +% The indicated private field is defined, but is never used in the code. sym_n_private_identifier_only_set=05030_N_Valor asignado al campo privado $1.$2 pero nunca es utilizado +% The indicated private field is declared and assigned to, but never read. sym_n_private_method_not_used=05031_N_Método privado $1.$2 no utilizado +% The indicated private method is declared but is never used in the code. sym_e_set_expected=05032_E_Tipo set esperado % The variable or expression is not of type \var{set}. This happens in an % \var{in} statement. @@ -1387,6 +2155,178 @@ sym_h_uninitialized_variable=05058_H_La variable "$1" no parece haber sido inici % This section lists all messages that can be displayed if the code % generator encounters an error condition. % \begin{description} +sym_w_function_result_uninitialized=05059_W_Function result variable does not seem to initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. before it appeared in the left-hand side of an +% assignment). +sym_h_function_result_uninitialized=05060_H_Function result variable does not seem to be initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. it appears in the left-hand side of an +% assignment) +sym_w_identifier_only_read=05061_W_Variable "$1" read but nowhere assigned +% You have read the value of a variable, but nowhere assigned a value to +% it. +sym_h_abstract_method_list=05062_H_Found abstract method: $1 +% When getting a warning about constructing a class/object with abstract methods +% you get this hint to assist you in finding the affected method. +sym_w_experimental_symbol=05063_W_Symbol "$1" is experimental +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{experimental} is used. Experimental symbols +% might disappear or change semantics in future versions. Usage of this symbol +% should be avoided as much as possible. +sym_w_forward_not_resolved=05064_W_Forward declaration "$1" not resolved, assumed external +% This happens if you declare a function in the \var{interface} of a unit in macpas mode, +% but do not implement it. +sym_w_library_symbol=05065_W_Symbol "$1" is belongs to a library +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{library} is used. Library symbols may not be +% available in other libraries. +sym_w_deprecated_symbol_with_msg=05066_W_Symbol "$1" is deprecated: "$2" +% This means that a symbol (a variable, routine, etc...) which is +% declared as \var{deprecated} is used. Deprecated symbols may no longer +% be available in newer versions of the unit / library. Use of this symbol +% should be avoided as much as possible. +sym_e_no_enumerator=05067_E_Cannot find an enumerator for the type "$1" +% This means that compiler cannot find an appropriate enumerator to use in the for-in loop. +% To create an enumerator you need to define an operator enumerator or add a public or published +% GetEnumerator method to the class or object definition. +sym_e_no_enumerator_move=05068_E_Cannot find a "MoveNext" method in enumerator "$1" +% This means that compiler cannot find a public MoveNext method with the Boolean return type in +% the enumerator class or object definition. +sym_e_no_enumerator_current=05069_E_Cannot find a "Current" property in enumerator "$1" +% This means that compiler cannot find a public Current property in the enumerator class or object +% definition. +sym_e_objc_para_mismatch=05070_E_Mismatch between number of declared parameters and number of colons in message string. +% In Objective-C, a message name automatically contains as many colons as parameters. +% In order to prevent mistakes when specifying the message name in FPC, the compiler +% checks whether this is also the case here. Note that in case of messages taking a +% variable number of arguments translated to FPC via an \var{array of const} parameter, +% this final \var{array of const} parameter is not counted. Neither are the hidden +% \var{self} and \var{\_cmd} parameters. +sym_n_private_type_not_used=05071_N_Private type "$1.$2" never used +% The indicated private type is declared but is never used in the code. +sym_n_private_const_not_used=05072_N_Private const "$1.$2" never used +% The indicated private const is declared but is never used in the code. +sym_n_private_property_not_used=05073_N_Private property "$1.$2" never used +% The indicated private property is declared but is never used in the code. +sym_w_deprecated_unit=05074_W_Unit "$1" is deprecated +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_deprecated_unit_with_msg=05075_W_Unit "$1" is deprecated: "$2" +% This means that a unit which is +% declared as \var{deprecated} is used. Deprecated units may no longer +% be available in newer versions of the library. Use of this unit +% should be avoided as much as possible. +sym_w_non_portable_unit=05076_W_Unit "$1" is not portable +% This means that a unit which is +% declared as \var{platform} is used. This unit use +% and availability is platform specific and should not be used +% if the source code must be portable. +sym_w_library_unit=05077_W_Unit "$1" is belongs to a library +% This means that a unit which is +% declared as \var{library} is used. Library units may not be +% available in other libraries. +sym_w_non_implemented_unit=05078_W_Unit "$1" is not implemented +% This means that a unit which is +% declared as \var{unimplemented} is used. This unit is defined, +% but is not yet implemented on this specific platform. +sym_w_experimental_unit=05079_W_Unit "$1" is experimental +% This means that a unit which is +% declared as \var{experimental} is used. Experimental units +% might disappear or change semantics in future versions. Usage of this unit +% should be avoided as much as possible. +sym_e_formal_class_not_resolved=05080_E_No complete definition of the formally declared class "$1" is in scope +% Objecive-C and Java classes can be imported formally, without using the unit in which it is fully declared. +% This enables making forward references to such classes and breaking circular dependencies amongst units. +% However, as soon as you wish to actually do something with an entity of this class type (such as +% access one of its fields, send a message to it, or use it to inherit from), the compiler requires the full definition +% of the class to be in scope. +sym_e_interprocgoto_into_init_final_code_not_allowed=05081_E_Gotos into initialization or finalization blocks of units are not allowed +% Gotos into initialization or finalization blockse of units are not allowed. +sym_e_external_class_name_mismatch1=05082_E_Invalid external name "$1" for formal class "$2" +sym_e_external_class_name_mismatch2=05083_E_Complete class definition with external name "$1" here +% When a class is declared using a formal external definition, the actual external +% definition (if any) must specify the same external name as the formal definition +% (since both definitions refer to the same actual class type). +sym_w_library_overload=05084_W_Possible library conflict: symbol "$1" from library "$2" also found in library "$3" +% Some OS do not have library specific namespaces, for those +% OS, the function declared as "external 'libname' name 'funcname'", +% the 'libname' part is only a hint, funcname might also be loaded +% by another library. This warning appears if 'funcname' is used twice +% with two different library names. +sym_e_duplicate_id_create_java_constructor=05085_E_Cannot add implicit constructor 'Create' because identifier already used by "$1" +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. In Java, constructors are nameless, +% but in FPC they are all called ``Create''. Therefore, if you do not add a constructor to +% a Java class and furthermore use the ``Create'' identifier for another entity (e.g., a field, +% or a parameterless method), the compiler cannot satisfy this requirement. +sym_e_no_matching_inherited_parameterless_constructor=05086_E_Cannot generate default constructor for class, because parent has no parameterless constructor +% Java does not automatically add inherited constructors to child classes, so that they can be hidden. +% However, if a class does not explicitly declare at least one constructor, the compiler is +% required to add a public, parameterless constructor. This compiler must then call +% the parameterless constructor from the parent class inside this added constructor. +% This is however impossible if the parent class does not declare such a constructor. +% In this case you must add a valid constructor yourself. +sym_d_adding_helper_for=05087_D_Adding helper for $1 +% A helper for the mentioned type is added to the current scope +sym_e_param_list=05088_E_Found declaration: $1 +% This message shows all overloaded declarations in case of an error. +sym_w_uninitialized_managed_local_variable=05089_W_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_uninitialized_managed_variable=05090_W_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_local_variable=05091_H_Local variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. it did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_uninitialized_managed_variable=05092_H_Variable "$1" of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that a variable will +% be used (i.e. it appears in the right-hand side of an expression) when it +% was not initialized first (i.e. t did not appear in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_managed_function_result_uninitialized=05093_W_function result variable of a managed type does not seem to initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. before it appeared in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_h_managed_function_result_uninitialized=05094_H_Function result variable of a managed type does not seem to be initialized +% This message is displayed if the compiler thinks that the function result +% variable will be used (i.e. it appears in the right-hand side of an expression) +% before it is initialized (i.e. it appears in the left-hand side of an +% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and +% does not necessarily mean that the code is wrong. +sym_w_duplicate_id=05095_W_Duplicate identifier "$1" +% The identifier was already declared in an Objective-C category that's in the +% same scope as the current identifier. This is a warning instead of an error, +% because while this hides the identifier from the category, there are often +% many unused categories in scope. +% \end{description} +# +# Codegenerator +# +# 06049 is the last used one +# +% \section{Code generator messages} +% This section lists all messages that can be displayed if the code +% generator encounters an error condition. +% \begin{description} cg_e_parasize_too_big=06009_E_El tamaño de la lista de par metros excede 65535 bytes % The I386 processor limits the parameter list to 65535 bytes (the \var{RET} % instruction causes this) @@ -1498,6 +2438,54 @@ cg_e_continue_not_allowed=06045_E_CONTINUE no permitido aquí # # 07097 is the last used one # +cg_f_unknown_compilerproc=06046_F_Unknown compilerproc "$1". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain subroutines. 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 subroutine which the compiler needs for internal use. +cg_f_unknown_system_type=06047_F_Cannot find system type "$1". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_h_inherited_ignored=06048_H_Inherited call to abstract method ignored +% This message appears only in Delphi mode when you call an abstract method +% of a parent class via \var{inherited;}. The call is then ignored. +cg_e_goto_label_not_found=06049_E_Goto label "$1" not defined or optimized away +% The label used in the goto definition is not defined or optimized away by the +% unreachable code elemination. +cg_f_unknown_type_in_unit=06050_F_Cannot find type "$1" in unit "$2". Check if you use the correct run time library. +% The compiler expects that the runtime library contains certain type definitions. 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. +cg_e_interprocedural_goto_only_to_outer_scope_allowed=06051_E_Interprocedural gotos are allowed only to outer subroutines +% Gotos between subroutines are only allowed if the goto jumps from an inner to an outer subroutine or +% from a subroutine to the main program +cg_e_labels_cannot_defined_outside_declaration_scope=06052_E_Label must be defined in the same scope as it is declared +% In ISO mode, labels must be defined in the same scope as they are declared. +cg_e_goto_across_procedures_with_exceptions_not_allowed=06053_E_Leaving procedures containing explicit or implicit exceptions frames using goto is not allowed +% Non-local gotos might not be used to leave procedures using exceptions either implicitly or explicitly. Procedures +% which use automated types like ansistrings or class constructurs are affected by this too. +cg_e_mod_only_defined_for_pos_quotient=06054_E_In ISO mode, the mod operator is defined only for positive quotient +% In ISO pascal, only positive values are allowed for the quotient: \var{n mod m} is only valid if \var{m>0}. +cg_d_autoinlining=06055_DL_Auto inlining: $1 +% Due to auto inlining turned on, the compiler auto inlines this subroutine. +cg_e_function_not_support_by_selected_instruction_set=06056_E_The function used, is not supported by the selected instruction set: $1 +% Some functions cannot be implemented efficiently for certain instruction sets, one example is fused multiply/add. +% To avoid very inefficient code, the compiler complains in this case, so either select another instruction set +% or replace the function call by alternative code +cg_f_max_units_reached=06057_F_Maximum number of units ($1) reached for the current target +% Depending of target architecture, the number of units is limited. This limit +% has been reached. A unit counts only if it contains initialization or finalization count. +% +% \end{description} +# EndOfTeX +# +# Assembler reader +# +# 07125 is the last used one +# asmr_d_start_reading=07000_DL_Iniciando interpretado de ensamblador de estilo $1 % This informs you that an assembler block is being parsed asmr_d_finish_reading=07001_DL_Finalizado interpretado de ensamblador de estilo $1 @@ -1718,6 +2706,96 @@ asmr_e_illegal_shifterop_syntax=07099_E_Error de sintaxis tratando de interpreta # # 08018 is the last used one # +asmr_e_packed_element=07100_E_Address of packed component is not at a byte boundary +% Packed components (record fields and array elements) may start at an arbitrary +% bit inside a byte. On CPU which do not support bit-addressable memory (which +% includes all currently supported CPUs by FPC) you will therefore get an error +% message when trying to index arrays with elements whose size is not a multiple +% of 8 bits. The same goes for accessing record fields with such an address. +% multiple of 8 bits. +asmr_w_unable_to_determine_reference_size_using_byte=07101_W_No size specified and unable to determine the size of the operands, using BYTE as default +% You should specify explicitly a size for the reference, because +% the compiler is unable to determine what size (byte,word,dword,etc.) it +% should use for the reference. This warning is only used in Delphi mode where +% it falls back to use BYTE as default. +asmr_w_no_direct_ebp_for_parameter=07102_W_Use of +offset(%ebp) for parameters invalid here +% Using direct 8(%ebp) reference for function/procedure parameters is invalid +% if parameters are in registers. +asmr_w_direct_ebp_for_parameter_regcall=07103_W_Use of +offset(%ebp) is not compatible with regcall convention +% Using direct 8(%ebp) reference for function/procedure parameters is invalid +% if parameters are in registers. +asmr_w_direct_ebp_neg_offset=07104_W_Use of -offset(%ebp) is not recommended for local variable access +% Using -8(%ebp) to access a local variable is not recommended +asmr_w_direct_esp_neg_offset=07105_W_Use of -offset(%esp), access may cause a crash or value may be lost +% Using -8(%esp) to access a local stack is not recommended, as +% this stack portion can be overwritten by any function calls or interrupts. +asmr_e_no_vmtoffset_possible=07106_E_VMTOffset must be used in combination with a virtual method, and "$1" is not virtual +% Only virtual methods have VMT offsets +asmr_e_need_pic_ref=07107_E_Generating PIC, but reference is not PIC-safe +% The compiler has been configured to generate position-independent code +% (PIC), but there are position-dependent references in the current +% handwritten assembler instruction. +asmr_e_mixing_regtypes=07108_E_All registers in a register set must be of the same kind and width +% Instructions on the ARM architecture that take a register set as argument require that all registers +% in this set are of the same kind (e.g., integer, vfp) and width (e.g., single precision, double precision). +asmr_e_empty_regset=07109_E_A register set cannot be empty +% Instructions on the ARM architecture that take a register set as argument require that such a set +% contains at least one register. +asmr_w_useless_got_for_local=07110_W_@GOTPCREL is useless and potentially dangerous for local symbols +% The use of @GOTPCREL supposes an extra indirection that is +% not present if the symbol is local, which might lead to wrong assembler code +asmr_w_general_segment_with_constant=07111_W_Constant with general purpose segment register +% General purpose register should not have constant offsets +% as OS memory allocation might not be compatible with that. +asmr_e_bad_seh_directive_offset=07112_E_Invalid offset value for $1 +% Win64 SEH directives have certain restrictions on possible offset values, e.g. they should +% be positive and have 3 or 4 low bits clear. +asmr_e_bad_seh_directive_register=07113_E_Invalid register for $1 +% Win64 SEH directives accept only 64-bit integer registers or XMM registers. +asmr_e_seh_in_pure_asm_only=07114_E_SEH directives are allowed only in pure assembler procedures +% Win64 SEH directives are allowed only in pure assembler procedures, not in assembler +% blocks of regular procedures. +asmr_e_unsupported_directive=07115_E_Directive "$1" is not supported for the current target +asmr_e_complex_function_result_location=07116_E_This function's result location cannot be encoded directly in a single operand when "nostackframe" is used +% Functions declared with the \var{nostackframe} modifier do not have a stack frame, and hence +% do not have a local variable to hold the temporary function result. Accesses to the function +% result in such routines directly go to the registers or memory location that will be used +% to return their result to the caller. In some cases this result may be spread over multiple +% registers, in which case it is not possible to access the location via its symbolic name. +% You have to directly use the appropriate register names in this case. +asmr_e_wrong_gotpcrel_intel_syntax=07117_E_GOTPCREL references in Intel assembler syntax cannot contain a base or index register, and their offset must 0. +% The syntax for a gotpcrel PIC memory expression in Intel assembler syntax is +% \verb*[global_symbol wrt ..gotpcrel]* +asmr_e_no_gotpcrel_support=07118_E_The current target does not support GOTPCREL relocations +% Not all targets support position-independent code using a global offset table. +% Use a different way to access symbols in a position-indepent way in these cases. +asmr_w_global_access_without_got=07119_W_Exported/global symbols should be accessed via the GOT +% Global symbols (symbols from the unit interface, or defined in a program +% or library) should be accessed via the GOT when generating position-indepent code. +asmr_w_check_mem_operand_size=07120_W_Check size of memory operand "$1" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size3=07121_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_size_offset=07122_W_Check size of memory operand "$1: memory-operand-size is $2 bits, but expected [$3 bits + $4 byte offset]" +% The size of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_negative_offset=07123_W_Check "$1: offset of memory operand is negative "$2 byte" +% The offset of memory operand is possible invalid. This is +% probably an error in the assembler statement +asmr_w_check_mem_operand_automap_multiple_size=07124_W_Check "$1: size of memory operand is empty, but es exists different definitions of the memory size =>> map to $2 (smallest option)" +% The size of memory operand is empty and we have different definitions of possible memory sizes. Check it! +asmr_e_invalid_ref_register=07125_E_Invalid register used in memory reference expression: "$1" +% FPU, vector and sometimes integer registers cannot be used in memory reference +% expressions, due to limitations of the cpu architecture or simple because +% it is not meaningful. + +# +# Assembler/binary writers +# +# 08029 is the last used one +# asmw_f_too_many_asm_files=08000_F_Demasiados archivos de ensamblador abiertos % With smartlinking enabled, there are too many assembler % files generated. Disable smartlinking. @@ -1753,8 +2831,47 @@ asmw_e_invalid_register=08019_E_Asm: Registro $1 inválido % This section lists errors that occur when the compiler is processing the % command line or handling the configuration files. % \begin{description} +asmw_e_16bit_32bit_not_supported=08020_E_Asm: 16 or 32 Bit references not supported +asmw_e_64bit_not_supported=08021_E_Asm: 64 Bit operands not supported +asmw_e_bad_reg_with_rex=08022_E_Asm: AH,BH,CH or DH cannot be used in an instruction requiring REX prefix +% x86_64 only: instruction encoding of this platform does not allow using +% 8086 high byte registers (AH,BH,CH or DH) together with REX prefix in a single instruction. +% The REX prefix is required whenever the instruction operand size is 64 bits, or +% when it uses one of extended x86_64 registers (R8-R15 or XMM8-XMM15). +asmw_e_missing_endprologue=08023_E_Missing .seh_endprologue directive +% x86_64-win64 only: Normally, SEH directives are handled internally by compiler. +% However, in pure assembler procedures .seh_endprologue directive is required +% if other SEH directives are present. +asmw_e_prologue_too_large=08024_E_Function prologue exceeds 255 bytes +% x86_64-win64: .seh_prologue directive must be placed within 255 bytes from function start. +asmw_e_handlerdata_no_handler=08025_E_.seh_handlerdata directive without preceding .seh_handler +% x86_64-win64: If .seh_handlerdata directive is used, then a .seh_handler directive must be +% present earlier in the same function. +asmw_f_too_many_relocations=08026_F_Relocation count for section $1 exceeds 65535 +% Legacy COFF targets limit number of relocations per section to 65535 because they use a 2-byte field +% to store the relocation count. Targets using newer PECOFF format do not have this limitation. +asmw_w_changing_bind_type=08027_N_Change of bind type of symbol $1 from $2 to $3 after use +asmw_h_changing_bind_type=08028_H_Change of bind type of symbol $1 from $2 to $3 after use +% An assembler symbol bind type has been altered after use, which can lead to wrong code. +% First version is reserved for changig to local label, which is the most probable cause +% of wrong code generation, but currently set to Note level as it appears inside +% the compiler compilation. +asmw_e_32bit_not_supported=08029_E_Asm: 32 Bit references not supported +# +# Executing linker/assembler +# +# 09035 is the last used one +# +# BeginOfTeX +% +% \section{Errors of assembling/linking stage} +% This section lists errors that occur when the compiler is processing the +% command line or handling the configuration files. +% \begin{description} exec_w_source_os_redefined=09000_W_Sistema operativo de origen redefinido +% The source operating system is redefined. exec_i_assembling_pipe=09001_I_Ensamblando (pipe) $1 +% Assembling using a pipe to an external assembler. exec_d_cant_create_asmfile=09002_E_No se puede crear fichero ensamblador $1 % The mentioned file can't be created. Check if you have got % access permissions to create this file @@ -1765,14 +2882,21 @@ exec_e_cant_create_archivefile=09004_E_No se puede crear fichero de archivado: $ % The mentioned file can't be created. Check if you've % access permissions to create this file exec_e_assembler_not_found=09005_E_Ensamblador $1 no encontrado, cambiando a ensamblado externo +% The assembler program was not found. The compiler will produce a script that +% can be used to assemble and link the program. exec_t_using_assembler=09006_T_Usando ensamblador: $1 +% An informational message saying which assembler is being used. exec_e_error_while_assembling=09007_E_Error mientras se ensamblaba, codigo de terminación $1 % There was an error while assembling the file using an external assembler. % Consult the documentation of the assembler tool to find out more information % on this error. exec_e_cant_call_assembler=09008_E_No se pudo llamar al ensamblador, error $1. Cambiando a ensamblador externo +% An error occurred when calling an external assembler. The compiler will produce a script that +% can be used to assemble and link the program. exec_i_assembling=09009_I_Ensamblando $1 +% An informational message stating which file is being assembled. exec_i_assembling_smart=09010_I_Assembling con enlazado inteligente $1 +% An informational message stating which file is being assembled using smartlinking. exec_w_objfile_not_found=09011_W_Objeto $1 no encontrado, el enlazado podria fallar! % One of the object file is missing, and linking will probably fail. % Check your paths. @@ -1782,18 +2906,39 @@ exec_w_libfile_not_found=09012_W_Librería $1 no encontrada, el enlazado podria exec_e_error_while_linking=09013_E_Error durante el enlazado % Generic error while linking. exec_e_cant_call_linker=09014_E_No se puede llamar al enlazador, cambiando a enlazado externo +% An error occurred when calling an external linker. The compiler will produce a script that +% can be used to assemble and link the program. exec_i_linking=09015_I_Enlazando $1 +% An informational message, showing which program or library is being linked. exec_e_util_not_found=09016_E_Utilidad $1 no encontrada, cambiando a enlazado externo +% An external tool was not found. The compiler will produce a script that +% can be used to assemble and link or postprocess the program. exec_t_using_util=09017_T_Utilizando utilidad $1 +% An informational message, showing which external program (usually a postprocessor) is being used. exec_e_exe_not_supported=09018_E_Creacion de ejecutables no soportado +% Creating executable programs is not supported for this platform, because it was +% not yet implemented in the compiler. exec_e_dll_not_supported=09019_E_Creacion de librerías dinámicas/compartidas no soportado +% Creating dynamically loadable libraries is not supported for this platform, because it was +% not yet implemented in the compiler. +exec_e_static_lib_not_supported=09035_E_Creation of Static Libraries not supported +% Creating static libraries is not supported for this platform, because it was +% not yet implemented in the compiler. exec_i_closing_script=09020_I_Cerrando script $1 +% Informational message showing when writing of the external assembling and linking script is finished. exec_e_res_not_found=09021_E_Compilador de recursos no encontrado, cambiando a modo externo +% An external resource compiler was not found. The compiler will produce a script that +% can be used to assemble, compile resources and link or postprocess the program. exec_i_compilingresource=09022_I_Compilando resource $1 +% An informational message, showing which resource is being compiled. exec_t_unit_not_static_linkable_switch_to_smart=09023_T_La unidad $1 no puede ser enlazada estáticamente, cambiando a enlazado inteligente +% Static linking was requested, but a unit which is not statically linkable was used. exec_t_unit_not_smart_linkable_switch_to_static=09024_T_La unidad $1 no puede ser enlazada inteligentemente, cambiando a enlazado estático +% Smart linking was requested, but a unit which is not smart-linkable was used. exec_t_unit_not_shared_linkable_switch_to_static=09025_T_La unidad $1 no admite enlazado compartido, cambiando a enlazado estático +% Shared linking was requested, but a unit which is not shared-linkable was used. exec_e_unit_not_smart_or_static_linkable=09026_E_La unidad $1 no puede ser enlazada estática o inteligentemente +% Smart or static linking was requested, but a unit which cannot be used for either was used. exec_e_unit_not_shared_or_static_linkable=09027_E_La unidad $1 no admite enlazado compartido o estático %\end{description} # EndOfTeX @@ -1801,12 +2946,49 @@ exec_e_unit_not_shared_or_static_linkable=09027_E_La unidad $1 no admite enlazad # # Executable information # +exec_d_resbin_params=09028_D_Calling resource compiler "$1" with "$2" as command line +% An informational message showing which command line is used for the resource compiler. +exec_e_error_while_compiling_resources=09029_E_Error while compiling resources +% The resource compiler or converter returned an error. +exec_e_cant_call_resource_compiler=09030_E_Can't call the resource compiler "$1", switching to external mode +% An error occurred when calling a resource compiler. The compiler will produce +% a script that can be used to assemble, compile resources and link or +% postprocess the program. +exec_e_cant_open_resource_file=09031_E_Can't open resource file "$1" +% An error occurred resource file cannot be opened. +exec_e_cant_write_resource_file=09032_E_Can't write resource file "$1" +% An error occurred resource file cannot be written. +exec_n_backquote_cat_file_not_found=09033_N_File "$1" not found for backquoted cat command +% The compiler did not find the file that should be expanded into linker parameters +exec_w_init_file_not_found=09034_W_"$1" not found, this will probably cause a linking failure +% The compiler adds certain startup code files to the linker only when they are found. +% If they are not found, they are not added and this might cause a linking failure. +% +%\end{description} +# EndOfTeX + +# +# Executable information +# +# 09134 is the last used one +# +# BeginOfTeX +% \section{Executable information messages.} +% This section lists all messages that the compiler emits when an executable program is produced, +% and only when the internal linker is used. +% \begin{description} execinfo_f_cant_process_executable=09128_F_No se puede post-procesar el ejecutable $1 +% Fatal error when the compiler is unable to post-process an executable. execinfo_f_cant_open_executable=09129_F_No se puede abrir el ejecutable $1 +% Fatal error when the compiler cannot open the file for the executable. execinfo_x_codesize=09130_X_Tamaño de Código: $1 bytes +% Informational message showing the size of the produced code section. execinfo_x_initdatasize=09131_X_Tamaño de datos inicializados: $1 bytes +% Informational message showing the size of the initialized data section. execinfo_x_uninitdatasize=09132_X_Tamaño de datos sin inicializar: $1 bytes +% Informational message showing the size of the uninitialized data section. execinfo_x_stackreserve=09133_X_Espacio reservado para la pila: $1 bytes +% Informational message showing the stack size that the compiler reserved for the executable. execinfo_x_stackcommit=09134_X_Stack space commited: $1 bytes # @@ -1820,6 +3002,26 @@ execinfo_x_stackcommit=09134_X_Stack space commited: $1 bytes % loading a unit from disk into memory. Many of these messages are % informational messages. % \begin{description} +link_f_executable_too_big=09200_F_Executable image size is too big for $1 target. +% Fatal error when resulting executable is too big. +link_w_32bit_absolute_reloc=09201_W_Object file "$1" contains 32-bit absolute relocation to symbol "$2". +% Warning when 64-bit object file contains 32-bit absolute relocations. +% In such case an executable image can be loaded into lower 4Gb of +% address space only. +%\end{description} +# EndOfTeX + +# +# Unit loading +# +# 10062 is the last used one +# +# BeginOfTeX +% \section{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. +% \begin{description} unit_t_unitsearch=10000_T_Buscando unidad: $1 % When you use the \var{-vt}, the compiler tells you where it tries to find % unit files. @@ -1882,6 +3084,7 @@ unit_f_cant_find_ppu=10022_F_No se puede encontrar la unidad $1 % 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 unit_w_unit_name_error=10023_W_La unidad $1 no pudo ser encontrada, pero $2 existe +% This error message is no longer used. unit_f_unit_name_error=10024_F_Se buscó la unidad $1 pero se encontró $2 % Dos truncation of 8 letters for unit PPU files % may lead to problems when unit name is longer than 8 letters. @@ -1895,6 +3098,8 @@ unit_u_load_unit=10027_U_Cargado de $1 ($2) unidad $3 % When you use the \var{-vu} flag, which unit is loaded from which unit is % shown. unit_u_recompile_crc_change=10028_U_Recompilando $1, checksum cambiado por $2 +% The unit is recompiled because the checksum of a unit it depends on has +% changed. unit_u_recompile_source_found_alone=10029_U_Recompilando $1, solo se encontró el código fuente % When you use the \var{-vu} flag, these messages tell you why the current % unit is recompiled. @@ -1937,10 +3142,8 @@ unit_u_check_time=10037_U_Chequeo de fichero PPU $1 fecha $2 unit_w_cant_compile_unit_with_changed_incfile=10040_W_No se pudo recompilar la unida $1, pero se encontraron ficheros de inclusió modificados % A unit was found to have modified include files, but % some source files were not found, so recompilation is impossible. -unit_h_source_modified=10041_H_El fichero $1 es mas moderno que la versión Release del archivo PPU $2 -% A modified source file for a unit was found that was compiled with the -% release flag (-Ur). The unit will not implicitly be recompiled because -% this release flag is set. +unit_u_source_modified=10041_U_File $1 is newer than the one used for creating PPU file $2 +% A modified source file for a compiler unit was found. unit_u_ppu_invalid_fpumode=10042_U_Se esta utilizando una unidad que no fue compilada con el modo de FPU correcto % Trying to compile code while using units which were not compiled with % the same floating point format mode. Either all code should be compiled @@ -2009,6 +3212,29 @@ unit_u_skipping_reresolving_unit=10059_U_Saltando re-resolución de $1, aún se # # 11039 is the last used one # +unit_u_unload_resunit=10060_U_Unloading resource unit $1 (not needed) +% When you use the \var{-vu} flag, the compiler warns that it is unloading the +% resource handling unit, since no resources are used. +unit_e_different_wpo_file=10061_E_Unit $1 was compiled using a different whole program optimization feedback input ($2, $3); 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 (\var{-FW} \var{-OW}), +% 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. +unit_u_indirect_crc_changed=10062_U_Indirect interface (objects/classes) CRC changed for unit $1 +% When you use the \var{-vu} flag, the compiler warns that the +% indirect CRC calculated for the unit (this is the CRC of all classes/objects/interfaces/$\ldots$ +% in the interfaces of units directly or indirectly used by this unit in the interface) has been changed after the +% implementation has been parsed. +unit_u_ppu_invalid_memory_model=10063_U_PPU is compiled for another i8086 memory model +% This unit file was compiled for a different i8086 memory model and +% cannot be read. +% \end{description} +# EndOfTeX + +# +# Options +# +# 11057 is the last used one +# option_usage=11000_O_$1 [opciones] [opciones] # BeginOfTeX % @@ -2085,14 +3311,21 @@ option_using_env=11027_T_Leyendo opciones del entorno $1 option_handling_option=11028_D_Procesando pción "$1" % Debug info that an option is found and will be handled option_help_press_enter=11029__*** presione retorno *** +% Message shown when help is shown page per page. When pressing the ENTER +% Key, the next page of help is shown. If you press q and then ENTER, the +% compiler exits. option_start_reading_configfile=11030_H_Inicio de lectura del archivo de configuración $1 % Starting of config file parsing. option_end_reading_configfile=11031_H_Fin de lectura del archivo de configuración $1 % End of config file parsing. option_interpreting_option=11032_D_Interpretando opción "$1" +% The compiler is interpreting an option option_interpreting_firstpass_option=11036_D_Interpretando primera pasada de la opción "$1" +% The compiler is interpreting an option for the first time. option_interpreting_file_option=11033_D_Interpretando opción de archivo "$1" +% The compiler is interpreting an option which it read from the configuration file. option_read_config_file=11034_D_Leyendo archivo de configuración "$1" +% The compiler is starting to read the configuration file. option_found_file=11035_D_encontrado nombre del archivo fuente "$1" % Additional infos about options, displayed % when you have debug option turned on. @@ -2100,6 +3333,136 @@ option_code_page_not_available=11039_E_Código de página desconocido %\end{description} # EndOfTeX +# +# Logo (option -l) +# +option_config_is_dir=11040_F_Config file $1 is a directory +% Directories cannot be used as configuration files. +option_confict_asm_debug=11041_W_Assembler output selected "$1" cannot generate debug info, debugging disabled +% The selected assembler output cannot generate +% debugging information, debugging option is therefore disabled. +option_ppc386_deprecated=11042_W_Use of ppc386.cfg is deprecated, please use fpc.cfg instead +% Using ppc386.cfg is still supported for historical reasons, however, for a multiplatform +% system the naming makes no sense anymore. Please continue to use fpc.cfg instead. +option_else_without_if=11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DEF found +% An \var{\#ELSE} statement was found in the options file without a matching \var{\#IF(N)DEF} statement. +option_unsupported_target=11044_F_Option "$1" is not, or not yet, supported on the current target platform +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is incompatible with the currently selected target platform. +option_unsupported_target_for_feature=11045_F_The feature "$1" is not, or not yet, supported on the selected target platform +% Not all features are supported or implemented for all target platforms. This message informs you that a chosen +% feature is incompatible with the currently selected target platform. +option_dwarf_smart_linking=11046_N_DWARF debug information cannot be used with smart linking on this target, switching to static linking +% Smart linking is currently incompatible with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_ignored_target=11047_W_Option "$1" is ignored for the current target platform. +% Not all options are supported or implemented for all target platforms. This message informs you that a chosen +% option is ignored for the currently selected target platform. +option_debug_external_unsupported=11048_W_Disabling external debug information because it is unsupported for the selected target/debug format combination. +% Not all debug formats can be stored in an external file on all platforms. In particular, on +% Mac OS X only DWARF debug information can be stored externally. +option_dwarf_smartlink_creation=11049_N_DWARF debug information cannot be used with smart linking with external assembler, disabling static library creation. +% Smart linking is currently incompatble with DWARF debug information on most +% platforms, so smart linking is disabled in such cases. +option_invalid_macosx_deployment_target=11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variable: $1 +option_invalid_iphoneos_deployment_target=11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment variable: $1 +% On Mac OS X, the MACOSX\_DEPLOYMENT\_TARGET/IPHONEOS\_DEPLOYMENT\_TARGET environment variable can be +% used to set the default target OS version. In case of Mac OS X, it has to be of the format +% XY.Z or XY.Z.AB with X, Y,Z , A and B all digits from 0-9. +% In case of iOS, it has to be X.Z.A, where X, Z and A can all be either 1 or 2 +% digits from 0-9. +option_illegal_fpu_eabihf=11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when using the EABIHF ABI target +% The EABIHF (VFP hardfloat) ABI target can only be used with VFP FPUs. +option_w_unsupported_debug_format=11053_W_The selected debug format is not supported on the current target, not changing the current setting +% Not all targets support all debug formats (in particular, Stabs is not supported on 64 bit targets). +option_missing_arg=11054_E_argument to "$1" is missing +% Displayed when parameter must be followed by an argument. +option_malformed_para=11055_E_malformed parameter: $1 +% Given argument is not valid for parameter. +option_smart_link_requires_external_linker=11056_W_Smart linking requires external linker +option_com_files_require_tiny_model=11057_E_Creating .COM files is not supported in the current memory model. Only the tiny memory model supports making .COM files. + + +%\end{description} +# EndOfTeX + +# +# Whole program optimization +# +# 12019 is the last used one +# +# BeginOfTeX +% +% \section{Whole program optimization messages} +% This section lists errors that occur when the compiler is performing +% whole program optimization. +% \begin{description} +wpo_cant_find_file=12000_F_Cannot open whole program optimization feedback file "$1" +% The compiler cannot open the specified feedback file with whole program optimization information. +wpo_begin_processing=12001_D_Processing whole program optimization information in wpo feedback file "$1" +% The compiler starts processing whole program optimization information found in the named file. +wpo_end_processing=12002_D_Finished processing the whole program optimization information in wpo feedback file "$1" +% The compiler has finished processing the whole program optimization information found in the named file. +wpo_expected_section=12003_E_Expected section header, but got "$2" at line $1 of wpo feedback file +% The compiler expected a section header in the whole program optimization file (starting with \%), +% but did not find it. +wpo_no_section_handler=12004_W_No handler registered for whole program optimization section "$2" at line $1 of wpo feedback file, ignoring +% The compiler has no handler to deal with the mentioned whole program optimization information +% section, and will therefore ignore it and skip to the next section. +wpo_found_section=12005_D_Found whole program optimization section "$1" with information about "$2" +% The compiler encountered a section with whole program optimization information, and according +% to its handler this section contains information usable for the mentioned purpose. +wpo_no_input_specified=12006_F_The selected whole program optimizations require a previously generated feedback file (use -Fw to specify) +% The compiler needs information gathered during a previous compilation run to perform the selected +% whole program optimizations. You can specify the location of the feedback file containing this +% information using the -Fw switch. +wpo_not_enough_info=12007_E_No collected information necessary to perform "$1" whole program optimization found +% While you pointed the compiler to a file containing whole program optimization feedback, it +% did not contain the information necessary to perform the selected optimizations. You most likely +% have to recompile the program using the appropriate -OWxxx switch. +wpo_no_output_specified=12008_F_Specify a whole program optimization feedback file to store the generated info in (using -FW) +% You have to specify the feedback file in which the compiler has to store the whole program optimization +% feedback that is generated during the compilation run. This can be done using the -FW switch. +wpo_output_without_info_gen=12009_E_Not generating any whole program optimization information, yet a feedback file was specified (using -FW) +% The compiler was instructed to store whole program optimization feedback into a file specified using -FW, +% but not to actually generated any whole program optimization feedback. The classes of to be +% generated information can be specified using -OWxxx. +wpo_input_without_info_use=12010_E_Not performing any whole program optimizations, yet an input feedback file was specified (using -Fw) +% The compiler was not instructed to perform any whole program optimizations (no -Owxxx parameters), +% but nevertheless an input file with such feedback was specified (using -Fwyyy). Since this can +% indicate that you forgot to specify an -Owxxx parameter, the compiler generates an error in this case. +wpo_skipping_unnecessary_section=12011_D_Skipping whole program optimization section "$1", because not needed by the requested optimizations +% The whole program optimization feedback file contains a section with information that is not +% required by the selected whole program optimizations. +wpo_duplicate_wpotype=12012_W_Overriding previously read information for "$1" from feedback input file using information in section "$2" +% The feedback file contains multiple sections that provide the same class of information (e.g., +% information about which virtual methods can be devirtualized). In this case, the information in last encountered +% section is used. Turn on debugging output (-vd) to see which class of information is provided by each section. +wpo_cannot_extract_live_symbol_info_strip=12013_E_Cannot extract symbol liveness information from program when stripping symbols, use -Xs- +% Certain symbol liveness collectors extract the symbol information from the linked program. If the symbol information +% is stripped (option -Xs), this is not possible. +wpo_cannot_extract_live_symbol_info_no_link=12014_E_Cannot extract symbol liveness information from program when when not linking +% Certain symbol liveness collectors extract the symbol information from the linked program. If the program is not +% linked by the compiler, this is not possible. +wpo_cannot_find_symbol_progs=12015_F_Cannot find "$1" or "$2" to extract symbol liveness information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% This helper program is normally 'nm', which is part of the GNU binutils. +wpo_error_reading_symbol_file=12016_E_Error during reading symbol liveness information produced by "$1" +% An error occurred during the reading of the symbol liveness file that was generated using the 'nm' or 'objdump' program. The reason +% can be that it was shorter than expected, or that its format was not understood. +wpo_error_executing_symbol_prog=12017_F_Error executing "$1" (exitcode: $2) to extract symbol information from linked program +% Certain symbol liveness collectors need a helper program to extract the symbol information from the linked program. +% The helper program produced the reported error code when it was run on the linked program. +wpo_symbol_live_info_needs_smart_linking=12018_E_Collection of symbol liveness information can only help when using smart linking, use -CX -XX +% Whether or not a symbol is live is determined by looking whether it exists in the final linked program. +% Without smart linking/dead code stripping, all symbols are always included, regardless of whether they are +% actually used or not. So in that case all symbols will be seen as live, which makes this optimization ineffective. +wpo_cant_create_feedback_file=12019_E_Cannot create specified whole program optimisation feedback file "$1" +% The compiler is unable to create the file specified using the -FW parameter to store the whole program optimisation information. +%\end{description} +# EndOfTeX + + # # Logo (option -l) # @@ -2365,3 +3728,93 @@ P*2WT_Especifica aplicación de tipo herramienta (herramienta MPW, MacOS sólo) # # The End... +%%% general_e_compilation_aborted=01018_E_Compilación abortada +% \end{description} +# +# Scanner +# +# 02063 is the last used one +# +% \section{Scanner messages.} +% This section lists the messages that the scanner emits. The scanner takes +% care of the lexical structure of the pascal file, i.e. it tries to find +% reserved words, strings, etc. It also takes care of directives and +% conditional compiling handling. +% \begin{description} +%%% scan_w_only_pack_records=02015_W_Los campos de los registros pueden ser alineados solo a 1, 2, 4 o 16 bytes +% You are specifying the \var{\{\$PACKRECORDS n\} } with an illegal value for +% \var{n}. Only 1, 2, 4, 8, 16 and 32 are valid in this case. +%%% scan_w_only_pack_enum=02016_W_Los tipos enumerados solo pueden ser almacenados en 1, 2 o 4 bytes +% You are specifying the \var{\{\$PACKENUM n\}} with an illegal value for +% \var{n}. Only 1,2 or 4 are valid in this case. +%%% can_w_macro_too_deep=02030_W_La expansión de macros excede una profundidad de 16. +% When expanding a macro, macros have been nested to a level of 16. +% The compiler will expand no further, since this may be a sign that +% recursion is used. +%%% parser_e_only_class_methods_via_class_ref=03053_E_Solo los métodos de clases pueden ser referidos con referencias de clase +% This error occurs in a situation like the following: +% \begin{verbatim} +% Type : +% Tclass = Class of Tobject; +% +% Var C : TClass; +% +% begin +% ... +% C.free +% \end{verbatim} +% \var{Free} is not a class method and hence cannot be called with a class +% reference. +%%% parser_e_only_class_methods=03054_E_Los métodos de clase solo pueden ser acceder a otros métodos de clase +% This is related to the previous error. You cannot call a method of an object +% from a inside a class method. The following code would produce this error: +% \begin{verbatim} +% class procedure tobject.x; +% +% begin +% free +% \end{verbatim} +% Because free is a normal method of a class it cannot be called from a class +% method. +%%% parser_e_absolute_only_one_var=03095_E_absolute solo puede estar asociado a una variable +% You cannot specify more than one variable before the \var{absolute} directive. +% Thus, the following construct will provide this error: +% \begin{verbatim} +% Var Z : Longint; +% X,Y : Longint absolute Z; +% \end{verbatim} +% \item [ absolute can only be associated a var or const ] +% The address of a \var{absolute} directive can only point to a variable or a +% typed constant. Therefore, the following code will produce this error: +% \begin{verbatim} +% Procedure X; +% +% var p : longint absolute x; +% \end{verbatim} +% +%%% parser_e_only_publishable_classes_can__be_published=03156_E_Solo clases compiladas en $M+ pueden ser publicadas +% In the published section of a class can be only class as fields used which +% are compiled in \var{\{\$M+\}} or which are derived from such a class. Normally +% such a class should be derived from TPersitent +%%% type_w_mixed_signed_unsigned=04035_W_Operaciones mezclando enteros de 32 bits con signo son convertidas a 64 bits +% If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa), +% or if you have overflow and/or range checking turned on and use an arithmetic +% expression (+, -, *, div, mod) in which both signed numbers and longwords appear, +% then everything has to be evaluated in 64bit which is slower than normal +% 32bit arithmetic. You can avoid this by typecasting one operand so it +% matches the result type of the other one. +%%% type_w_signed_unsigned_always_false=04044_W_La comparación es siempre falsa debido a los rangos de los valores +% There is a comparison between an unsigned value and a signed constant which is +% less than zero. Because of type promotion, the statement will always evaluate to +% false. Exlicitly typecast the constant to the correct range to avoid this problem. +%%% type_w_signed_unsigned_always_true=04045_W_La comparación es siempre verdadera debido a los rangos de los valores +% There is a comparison between an unsigned value and a signed constant which is +% less than zero. Because of type promotion, the statement will always evaluate to +% true. Exlicitly typecast the constant to the correct range to avoid this problem. +%%% type_e_operator_not_allowed=04051_E_El operador no es aplicable con los operandos especificados +% You are trying an operator that is not available for the type of the +% operands +%%% unit_h_source_modified=10041_H_El fichero $1 es mas moderno que la versión Release del archivo PPU $2 +% A modified source file for a unit was found that was compiled with the +% release flag (-Ur). The unit will not implicitly be recompiled because +% this release flag is set.