Jonas Maebe
92de010fe1
Merged revisions 13218-13347 via svnmerge from
...
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/trunk
git-svn-id: branches/objc@13350 -
2009-06-28 16:09:53 +00:00
Jonas Maebe
c6733ed9a5
* disallow placing fields after method/property definitions, because this
...
can create ambiguities for the parser in case the field names also exist
as modifiers (TP- and Delphi-compatible, mantis #13971 ) + tests
* fixed tests that broke because of this change
git-svn-id: trunk@13334 -
2009-06-27 12:59:46 +00:00
Jonas Maebe
27afdbf94a
* fixed check for forbidding constructors/destructors in objcclasses + tests
...
git-svn-id: branches/objc@13179 -
2009-05-19 20:24:55 +00:00
Jonas Maebe
ba2c2cd449
* don't automatically set the parent class of objcclasses without a
...
designated parent to NSObject, because you can have multiple root classes
(e.g., NSProxy is also an Objective-C root class in Cocoa). Instead,
give a hint when an Objective-C class is declared without any parent
(because it can very well be a mistake, given that Pascal classes all
do automatically inherit form TObject).
git-svn-id: branches/objc@13177 -
2009-05-19 20:19:11 +00:00
Jonas Maebe
b1b9894ae3
* initial Objective-C 1.0 support:
...
o support for declaring external Objective-C classes (see
rtl/inc/objcbase.pas), including derived classes
o support for converting methods of objcclasses into selectors
(see tests/test/tobjc1.pp)
o support for loading from/storing to fields of objcclasses
o support for calling Objective-C methods using regular
Object Pascal syntax (see tests/test/tobjc1.pp)
o some things that are known to be not yet working:
o automatic conversion from ID to objcclasses and back
o declaring and implementing new objcclasses/methods in Pascal code
o debug information (objcclasses are currently plain pointers
as far as the debugger knows)
git-svn-id: branches/objc@13162 -
2009-05-17 13:42:50 +00:00
florian
499c523346
* accept only valid guid as iid for com and dispinterfaces, resolves #12030 ; I'am not sure though if this isn't a feature used by people already
...
git-svn-id: trunk@12380 -
2008-12-17 22:09:21 +00:00
peter
570ffacb92
* fix virtual without constructor warning for forward classes
...
git-svn-id: trunk@12253 -
2008-11-27 19:04:54 +00:00
peter
2a952c89a5
* store vmt entries in ppu
...
* give a note if the visibility of a vmt entry is lower than
the previous (parent) entry
* refactor vmt method collection using the new always available
vmt entries
git-svn-id: trunk@12159 -
2008-11-18 18:49:27 +00:00
peter
a3a66ba74d
* split tvisibility from tsymoptions
...
* replace current_object_option with symtable.currentvisibility
git-svn-id: trunk@12048 -
2008-11-11 09:05:39 +00:00
peter
e5e3462161
* object_dec can now return tobjectdef instead of tdef
...
git-svn-id: trunk@12047 -
2008-11-10 21:04:08 +00:00
peter
af437d5beb
* refactor the forward type declaration handling, remove
...
global typecanbeforward and move 'class of ..' parsing
to ptype
git-svn-id: trunk@12045 -
2008-11-09 22:07:36 +00:00
peter
da13c20f59
* refactor, no functional changes
...
git-svn-id: trunk@12030 -
2008-11-06 23:25:50 +00:00
peter
84112032c3
* rename aktobjectdef to current_objectdef
...
git-svn-id: trunk@12027 -
2008-11-06 19:46:31 +00:00
florian
937067e367
+ check if forward definitions and real definitions have the same type, resolves #11970
...
git-svn-id: trunk@12017 -
2008-11-02 12:36:31 +00:00
Jonas Maebe
f36e5411af
* split cpu64bit compiler define into
...
a) cpu64bitaddr, which means that we are generating a compiler which
will generate code for targets with a 64 bit address space/abi
b) cpu64bitalu, which means that we are generating a compiler which
will generate code for a cpu with support for 64 bit integer
operations (possibly running in a 32 bit address space, depending
on the cpu64bitaddr define)
All cpus which had cpu64bit set now have both the above defines set,
and none of the 32 bit cpus have cpu64bitalu set (and none will
compile with it currently)
+ pint and puint types, similar to aint/aword (not pword because that
that conflicts with pword=^word)
* several changes from aint/aword to pint/pword
* some changes of tcgsize2size[OS_INT] to sizeof(pint)
git-svn-id: trunk@10320 -
2008-02-13 20:44:00 +00:00
florian
8f17101039
* allow application of as operator only to interfaces having a guid, resolves #6797
...
git-svn-id: trunk@9436 -
2007-12-12 21:07:47 +00:00
peter
a6eb5d839b
* allow types in interfaces
...
git-svn-id: trunk@8840 -
2007-10-18 07:09:36 +00:00
peter
1e123d66ba
* improved generics
...
git-svn-id: trunk@8838 -
2007-10-18 00:24:05 +00:00
peter
0a9b94ca92
* save and restore aktobjectdef
...
git-svn-id: trunk@8384 -
2007-09-04 18:31:20 +00:00
peter
ad4846a50e
* don't allow generics as parent classes
...
git-svn-id: trunk@8144 -
2007-07-22 23:10:24 +00:00
florian
2a244b25fc
* properly inherit interface types, resolves #6690
...
git-svn-id: trunk@7102 -
2007-04-14 20:37:47 +00:00
peter
56379c37a9
* write vmt always according to the order of definitions
...
* remove obsolete lastvtableindex
git-svn-id: trunk@5811 -
2007-01-04 22:39:12 +00:00
peter
9ae8e9fa21
* refactor tclassheader in tvmtbuilder and tvmtwriter
...
* fix rtti generation
* rtti is now written at the end of a module when all info is available,
this prevents some duplicate rtti entries cause by inheritance
git-svn-id: trunk@5363 -
2006-11-13 22:03:17 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
florian
1275e7d109
* forbid usage of TYPE and VAR inside of common classes/objects
...
git-svn-id: trunk@5170 -
2006-11-02 09:12:59 +00:00
peter
136d3e8d46
* refactor implemented interfaces
...
git-svn-id: trunk@5134 -
2006-10-31 22:38:49 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
florian
ca6f992504
* enabled type and var keywords in objects for generics
...
git-svn-id: trunk@5062 -
2006-10-29 14:20:21 +00:00
florian
bc5e1be7b1
* fixed object constructor handling for 64 bit CPUs
...
git-svn-id: trunk@4465 -
2006-08-20 09:37:24 +00:00
florian
22146e2bcf
* partial fix (not for 64 bit CPUs yet) for #5641 (tested only lower byte of result of object constructors)
...
git-svn-id: trunk@4455 -
2006-08-19 22:40:59 +00:00
florian
c81f34aeee
+ parsing of dispinterface properties
...
git-svn-id: trunk@3383 -
2006-04-30 14:29:16 +00:00
florian
91434bd791
* fixed several dispinterface parsing related stuff
...
git-svn-id: trunk@3373 -
2006-04-29 21:39:21 +00:00
peter
38c0ae73da
Merged revisions 2775,2788-2789 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2775 | peter | 2006-03-05 22:43:30 +0100 (Sun, 05 Mar 2006) | 2 lines
* merge ppu changes to keep ppus the same
........
r2788 | peter | 2006-03-06 12:59:14 +0100 (Mon, 06 Mar 2006) | 2 lines
* Add TFPList and TFPObjectList
........
r2789 | peter | 2006-03-06 13:01:37 +0100 (Mon, 06 Mar 2006) | 2 lines
* fix powerpc
........
git-svn-id: trunk@2790 -
2006-03-06 12:04:44 +00:00
peter
785550d7e3
Merged revisions 2669,2673,2677,2683,2696,2699-2702,2704,2708,2712-2715,2718,2722-2723,2728-2730,2740,2769 via svnmerge from
...
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler
........
r2669 | peter | 2006-02-23 09:31:21 +0100 (Thu, 23 Feb 2006) | 2 lines
* add compiler dir
........
r2673 | peter | 2006-02-23 17:08:56 +0100 (Thu, 23 Feb 2006) | 2 lines
* enabled more code
........
r2677 | peter | 2006-02-24 17:46:29 +0100 (Fri, 24 Feb 2006) | 2 lines
* pe stub and headers
........
r2683 | peter | 2006-02-25 23:13:24 +0100 (Sat, 25 Feb 2006) | 2 lines
* section options cleanup
........
r2696 | peter | 2006-02-26 20:27:41 +0100 (Sun, 26 Feb 2006) | 2 lines
* fixed typecasts
........
r2699 | peter | 2006-02-26 23:04:32 +0100 (Sun, 26 Feb 2006) | 2 lines
* simple linking works
........
r2700 | peter | 2006-02-27 09:44:50 +0100 (Mon, 27 Feb 2006) | 2 lines
* internal linker script
........
r2701 | peter | 2006-02-27 12:05:12 +0100 (Mon, 27 Feb 2006) | 2 lines
* make elf working again
........
r2702 | peter | 2006-02-27 14:04:43 +0100 (Mon, 27 Feb 2006) | 3 lines
* disable dwarf for smartlinking with .a
* fix section start in new .a file
........
r2704 | peter | 2006-02-27 18:30:43 +0100 (Mon, 27 Feb 2006) | 2 lines
* stab section fixes
........
r2708 | peter | 2006-02-28 19:29:17 +0100 (Tue, 28 Feb 2006) | 2 lines
* basic work to merge stabs sections
........
r2712 | peter | 2006-02-28 23:17:48 +0100 (Tue, 28 Feb 2006) | 2 lines
* unload tmodules before linking
........
r2713 | peter | 2006-02-28 23:18:51 +0100 (Tue, 28 Feb 2006) | 2 lines
* fixed stabs linking
........
r2714 | peter | 2006-02-28 23:19:19 +0100 (Tue, 28 Feb 2006) | 2 lines
* show code and data size
........
r2715 | peter | 2006-02-28 23:25:35 +0100 (Tue, 28 Feb 2006) | 2 lines
* unload .stabs from objdata after it is merged
........
r2718 | peter | 2006-03-01 12:24:38 +0100 (Wed, 01 Mar 2006) | 3 lines
* memsize/datasize cleanup
* check for exports/resources when adding module to linker
........
r2722 | peter | 2006-03-03 09:12:20 +0100 (Fri, 03 Mar 2006) | 2 lines
* new TObjSymbol splitted from TAsmSymbol
........
r2723 | peter | 2006-03-03 14:08:55 +0100 (Fri, 03 Mar 2006) | 2 lines
* coff fixes after recent objsymbol changes
........
r2728 | peter | 2006-03-03 22:43:04 +0100 (Fri, 03 Mar 2006) | 2 lines
* fixed coff writer
........
r2729 | peter | 2006-03-04 01:10:32 +0100 (Sat, 04 Mar 2006) | 2 lines
* fix read-only opening
........
r2730 | peter | 2006-03-04 01:11:16 +0100 (Sat, 04 Mar 2006) | 2 lines
* Read edata from DLLs, basic work
........
r2740 | peter | 2006-03-04 21:13:43 +0100 (Sat, 04 Mar 2006) | 3 lines
* deletedef added
* don't remove defs from index when we are already clearing everything
........
r2769 | peter | 2006-03-05 21:42:33 +0100 (Sun, 05 Mar 2006) | 4 lines
* moved TObj classes to ogbase
* ObjSection.SymbolRefs and SymbolDefines list
* DLL importing
........
git-svn-id: trunk@2771 -
2006-03-05 21:10:37 +00:00
peter
232555904e
* symtablestack cleanup and rewrite
...
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
Jonas Maebe
cc7ff349cd
* fixed tw4764
...
git-svn-id: trunk@2414 -
2006-02-03 14:57:55 +00:00
peter
01808d825d
* use alt_dbgframe for call frame info labels
...
git-svn-id: trunk@2339 -
2006-01-25 21:48:27 +00:00
peter
95879fe8a7
* basic support for generic classes
...
git-svn-id: trunk@2020 -
2005-12-21 10:11:15 +00:00
peter
22923c12d5
* set also publishable flag if forward classes are compile within $M+
...
git-svn-id: trunk@1998 -
2005-12-20 09:01:25 +00:00
peter
767291ca5f
* refactor reading and setting of parent classes
...
git-svn-id: trunk@1992 -
2005-12-19 12:24:45 +00:00
florian
9a1c731bfb
+ basic dispinterface parsing stuff
...
git-svn-id: trunk@1445 -
2005-10-17 20:28:50 +00:00
Jonas Maebe
0bfe43e7cd
* fixed support for anonymous class/object definitions in macpas mode
...
git-svn-id: trunk@753 -
2005-07-26 10:11:39 +00:00
daniel
22e89e1a42
* Proof of concept: Support threadvars using segment registers.
...
git-svn-id: trunk@740 -
2005-07-24 21:06:23 +00:00
florian
abbc85bb78
+ strict protected and strict private support
...
git-svn-id: trunk@512 -
2005-06-28 19:23:39 +00:00
Jonas Maebe
8efe880649
* require "override;" as well in macpas mode to override methods
...
git-svn-id: trunk@392 -
2005-06-12 17:12:49 +00:00
Jonas Maebe
a71e25ffe0
+ Mac Object Pascal support
...
git-svn-id: trunk@387 -
2005-06-12 14:00:27 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
peter
e250290e57
* allow property in objects in all modes except tp
2005-03-16 21:09:22 +00:00