Commit Graph

33667 Commits

Author SHA1 Message Date
svenbarth
d0705a1779 Rebase to revision 17236
git-svn-id: branches/svenbarth/classhelpers@17241 -
2011-04-03 17:24:35 +00:00
svenbarth
b0b051ae83 Introduce a new type kind for helpers in the RTTI. This is Delphi incompatible, but it's cleaner than Delphi's "let's extend some magic class". This might not matter much though, because according to Google the RTTI for class helpers seems to be rarely used.
* compiler/ncgrtti.pas:
- objectdef_rtti_class_full:
 - don't write the VMT data for helpers
 - write the typeinfo of the extended type (something that Delphi does definitely not support :P )
- objectdef_rtti: write the new type kind for helpers instead that of classes
* compiler/symconst.pas: introduce new type kind constant "tkHelper" before "tkFile" (what is that used for btw?)
* rtl/inc/system.inc: add the constant here as well (why wasn't tkUChar added here?)
* objpas/typinfo.pp: 
- add tkHelper to the TTypeKind enum (but here tkUChar was added?!)
- extend the TTypeData record with the data of helpers

git-svn-id: branches/svenbarth/classhelpers@17240 -
2011-04-03 14:13:00 +00:00
svenbarth
a944be69a6 * nflw.pas: search for enumerators in helpers for records as well
* pdecobj.pas:
- parse_object_members: in record helpers class methods need to be declared as "static" like in records
- object_dec: 
 - allow "published" in helpers as well
 - disallow inheritance for record helpers in mode Delphi (and remove the forward declaration flag in that case)
* pdecsub.pas:
pd_abstract: "abstract" isn't allowed in either mode
* pexpr.pas: multiple corrections because of "inherited" and records
- allow "inherited" for "record helpers" (except for mode Delphi)
- load the symbol from the correct class (I hope...)
- give a more precise error message if "inherited" is used in records
* ptype.pas: I forgot to adjust the "(bit)packed record" case
* symtable.pas:
- searchsym_in_helper: "result" was not initialized (and identation fix)
- search_last_objectpascal_helper:
 - don't search if there are no helpers (useful for projects that does not contain helpers like the compiler itself)
 - don't search if the type to search helpers for is defined locally
 - don't search if the type is a anonymous record
- search_struct_member: search for symbols in helpers as well
- msg*: 
* correct the message for "parser_e_not_allowed_in_helper"
* add message "parser_e_inherited_not_in_record" which is used to tell that the use of "inherited" is not allowed in records and (in mode Delphi) record helpers

git-svn-id: branches/svenbarth/classhelpers@17239 -
2011-04-03 14:03:17 +00:00
svenbarth
c0a0ec9962 correct ppudump
git-svn-id: branches/svenbarth/classhelpers@17238 -
2011-04-03 13:37:07 +00:00
svenbarth
553d357d64 Completely restructured the test for the helper feature. The tests were split into three categories:
* general tests for the helper feature (thlp*)
* tests for class helpers (tchlp*)
* tests for record helpers (trhlp*)

With my current yet-to-be-commited implementation nearly all tests pass, but some fail because of missing FPC features:
* thlp30.pp currently fails because of generic constraints, but should fail despite the constraints
* thlp29.pp fails, because generic methods are not yet supported
* trhlp8.pp, trhlp9.pp, trhlp10.pp fail, because one can't use default properties using the abbreviated syntax
* trhlp17.pp, trhlp18.pp, trhlp19.pp fail, because nested types are not supported for records

git-svn-id: branches/svenbarth/classhelpers@17237 -
2011-04-03 13:33:23 +00:00
florian
07c9a772bf * fix compilation when object type cast checking is on
git-svn-id: trunk@17236 -
2011-04-03 10:50:34 +00:00
michael
cb3043b3a2 * Fixed 19068
git-svn-id: trunk@17235 -
2011-04-03 09:27:06 +00:00
michael
6a0bd01953 * Added license
git-svn-id: trunk@17234 -
2011-04-03 09:22:27 +00:00
michael
a33e5eb0eb * Initial check-in of stl
git-svn-id: trunk@17233 -
2011-04-03 09:15:56 +00:00
florian
736071e716 * updated copyright to 2011
* corrected copyright notice in message files and added "and others"

git-svn-id: trunk@17232 -
2011-04-02 20:06:46 +00:00
florian
0d38c744f4 * small fixes for OpenCL module by Denis Golovan, resolves #18901
git-svn-id: trunk@17231 -
2011-04-02 19:15:04 +00:00
michael
bd302b760e * Fix exception propagation in TiniFile.Free (bug 19046)
git-svn-id: trunk@17230 -
2011-04-02 16:25:43 +00:00
michael
87d156e885 * Added mem,memw, meml for documentation purposes
git-svn-id: trunk@17229 -
2011-04-02 16:11:37 +00:00
michael
a1631aa703 * Patch GetCDRomDevices so all CD roms are used, by Andrew H (18314)
git-svn-id: trunk@17228 -
2011-04-02 15:58:21 +00:00
michael
b78f9f7706 * Fixes range check errors, by Anton (bug id 19038)
git-svn-id: trunk@17226 -
2011-04-02 15:44:41 +00:00
michael
f235e4c116 * Fixed 18183
git-svn-id: trunk@17225 -
2011-04-02 15:41:39 +00:00
michael
be484359b8 * Corrected fix for FileAge
git-svn-id: trunk@17224 -
2011-04-02 15:28:24 +00:00
joost
029f5e9046 * Let the makefile create the unit output dir when fpmake.pp is not compiled yet
git-svn-id: trunk@17223 -
2011-04-02 13:33:56 +00:00
michael
1c0c6656f3 * Fixed some tests for firebird
git-svn-id: trunk@17222 -
2011-04-02 10:47:00 +00:00
michael
9747f7f0cd * Do not allow fileage for directories (15873)
git-svn-id: trunk@17221 -
2011-04-02 10:43:39 +00:00
michael
e8cf8e4177 * Added OnValidate event support (17510)
git-svn-id: trunk@17220 -
2011-04-02 10:36:48 +00:00
michael
28ce3b96f0 * Extended test by barlone (Bug ID 19000)
git-svn-id: trunk@17219 -
2011-04-02 09:52:47 +00:00
michael
8384a5ad04 * Refactoring of dateutils by barlone (Bug ID 19000)
git-svn-id: trunk@17218 -
2011-04-02 09:51:01 +00:00
joost
27ac54a76c * Implemented the ability to register default scripts which can be added
to a webpage when needed
 * Implemented multi-level Iteration id's
 * Fixed possible AV in IsAjaxScript
 * Javascriptstacks now have a type: jtOther or jtClientSideEvent
 * Implemented TJavaVariables, which are available client-side and server-side

git-svn-id: trunk@17217 -
2011-04-02 08:28:29 +00:00
joost
86c8c6c4eb * The Makefile.fpc is adapted and the Makefile re-generated so that fpmake is
used to compile the fcl-web package. The old Makefile.fpc is copied to 
   Makefile.org so it can be used for recovery when building fails.

git-svn-id: trunk@17215 -
2011-04-01 21:11:22 +00:00
joost
103867412a * If a found package seems to contain the source of the package, check if the
package is compiled earlier and when that's the case include it's unit
   output directory. Usefull if more packages are being compiled manually,
   without installing each package. 

git-svn-id: trunk@17213 -
2011-04-01 09:50:05 +00:00
sergei
ef4ce51d24 - removed unused variable and label
git-svn-id: trunk@17212 -
2011-04-01 05:49:58 +00:00
sergei
046ed5548b * Fixed pointer to cardinal typecasts, which are wrong for 64-bit platforms (significance is low, because these are in debug code).
git-svn-id: trunk@17211 -
2011-04-01 05:45:12 +00:00
michael
d4b071ed9a * Fixed signature of zliballocmem
git-svn-id: trunk@17210 -
2011-03-31 11:17:49 +00:00
sergei
d3fe020a55 * Don't use deprecated symbols anymore, silences compilation.
* GetFormatSettings function now can fill an arbitrary TFormatSettings record.

git-svn-id: trunk@17209 -
2011-03-30 16:20:56 +00:00
michael
5a84a0c4ef * ODBC library is called odbc32 on windows
git-svn-id: trunk@17208 -
2011-03-30 10:54:21 +00:00
Jonas Maebe
bc46ea5cba * use compare_defs() instead of a plain "=" comparison to check that the
return type of the interface and implementation declaration of a function
    match (so that in case the "real defs" match as described in the comment
    of r17201, they are accepted as being the same)

git-svn-id: trunk@17207 -
2011-03-29 18:51:36 +00:00
michael
bc2bebfa16 * Patch from Stephano so TRegIniFile can process registry values written by Delphi
git-svn-id: trunk@17206 -
2011-03-29 12:31:52 +00:00
michael
ee461becfb * Fix for 19018
git-svn-id: trunk@17205 -
2011-03-29 11:15:41 +00:00
michael
5257fb6d0e * Fixed some corner cases in readrecord
git-svn-id: trunk@17204 -
2011-03-29 10:53:45 +00:00
michael
5194a08195 * Inherited was not called
git-svn-id: trunk@17203 -
2011-03-29 10:53:08 +00:00
sergei
3a7ac49cc2 - Removed Win32Wide2AnsiMove, using Win32Unicode2AnsiMove for both Unicode-to-ansi and Wide-to-ansi conversions. In general, we don't need two different conversion routines in wideStringManager, as long as they differ only in PWideChar vs PUnicodeChar (these types are identical).
git-svn-id: trunk@17202 -
2011-03-29 05:25:05 +00:00
Jonas Maebe
5c2050e756 * when two objectdefs resolve to the same "real" objectdef, consider them
as te_exact rather than as te_equal (otherwise you get compilation errors
    if only a formal external definition is in scope in the interface, but
    the full definition is in scope in the implementation)

git-svn-id: trunk@17201 -
2011-03-28 18:03:57 +00:00
Jonas Maebe
ebb4d26201 * replaced all tobjectdef() typecasts of the first argument of
do_member_read() with tabstractrecorddef() typecasts, because in
    many cases it can also be a record nowadays

git-svn-id: trunk@17200 -
2011-03-28 15:23:25 +00:00
michael
9a0873d471 * Fixed bug #19008
git-svn-id: trunk@17199 -
2011-03-28 09:00:31 +00:00
paul
e0671060db rtl: add missing TWMWindowPosChanged, TWMWindowPosChanging from messages interface
git-svn-id: trunk@17198 -
2011-03-28 06:28:25 +00:00
sergei
1c01d52ea6 * Improvements of tprocinfo class:
* Moved nestedprocs from tcgprocinfo to tprocinfo, in order to be able to access the entire nested procedure hierarchy without depending on psub.pas or code generator.
  * Creating an instance of tprocinfo automatically inserts it into list of parent's nested procedures.
  * nestedprocs list is created on demand. Public read-only access is provided by has_nestedprocs and get_first_nestedproc functions.
  + Method destroy_tree is provided for destroying the entire hierarchy of procinfo's. It can be called on any procinfo object in the tree.
  + Also added methods save_jump_labels and restore_jump_labels for asmlabel maintenance, which is currently being repeatedly done all over the codegenerator.

git-svn-id: trunk@17197 -
2011-03-27 17:21:48 +00:00
joost
ad52fe0f23 * BigInt is already set by default since r16882
git-svn-id: trunk@17196 -
2011-03-27 16:19:36 +00:00
joost
8b8456aed6 * Added mysql51-connection type to testsuite
git-svn-id: trunk@17195 -
2011-03-27 16:08:55 +00:00
joost
7fd29b3133 * Use new BcdToStf(f) functions, bug #18988
git-svn-id: trunk@17194 -
2011-03-27 15:17:17 +00:00
armin
fc45960024 updated for netware target
git-svn-id: trunk@17193 -
2011-03-27 15:11:43 +00:00
armin
7eace122dc internal linker support for creating novell netware loadable modules
git-svn-id: trunk@17192 -
2011-03-27 14:47:25 +00:00
armin
8e7cf0c616 netware rtl support for internal linker
git-svn-id: trunk@17191 -
2011-03-27 14:45:33 +00:00
joost
fe503598c1 * samplecfg now also creates fppkg configuration files
git-svn-id: trunk@17190 -
2011-03-27 12:29:32 +00:00
joost
b67c3ad4c1 * Default fpcbin macro added
git-svn-id: trunk@17189 -
2011-03-27 12:28:06 +00:00