mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-03 07:07:48 +01:00
starting with a previous 2.3.1 or compiler built from the objc branch
+ added basic objcprotocol support (only for external protocols
currently)
o use in type declaration: "type xp = objcprotocol ... end;"
o when defining a root class that implements it:
"type yc = objcclass(xp) ... end" (note: no support yet
for something like "objcclass(id,xp)" or so)
o when defining a non-root class that implements a protocol:
"type zc = objcclass(nsobject,xp) ... end"
o includes support for "required" and "optional" sections
o no support yet for the objcprotocol(<protocol>) expression
that enables getting a class instance representing the
protocol (e.g., for use with "conformsToProtocol:")
o message names have to specified in protocol declarations,
but if an objcclass implements a protocol, the message names do
not have to be repeated (but if they are, they have to match;
the same goes when overriding inherited methods)
+ allow specifying the external name of Objective-C classes and
protocols, since classes and protocols can have the same name
(and you cannot use the same Pascal identifier in such caseq)
+ added NSObject protocol, and make the NSObject class use it
+ added missing NSObject class methods that have the same name
as instance methods (added "class" name prefix to avoid clashes)
* fixed several cases where the compiler did not treat Objective-C
classes/protocols the same as Object Pascal classes/interfaces
(a.o., forward declarations, alignment, regvars, several type
conversions, ...)
* allow "override" directive in objcclass declarations, and print
a hint if it's forgotten in an external declaration (because it
doesn't really matter there, and may make automated header
conversion harder than necessary) and an error if will be used in
a non-external declaration (because it is not possible to start
a new vmt entry-tree in Objective-C, you can only override parent
methods)
* reject objcclasses/protocols as parameters to typeof()
* don't try to test VMT validity of objcclasses/protocols
git-svn-id: branches/objc@13375 -
|
||
|---|---|---|
| .. | ||
| aliases.inc | ||
| astrings.inc | ||
| cgeneric.inc | ||
| cgenmath.inc | ||
| cgenstr.inc | ||
| charset.pp | ||
| cmem.pp | ||
| compproc.inc | ||
| crt.inc | ||
| crth.inc | ||
| ctypes.pp | ||
| currh.inc | ||
| dos.inc | ||
| dosh.inc | ||
| dynarr.inc | ||
| dynarrh.inc | ||
| dynlibs.pas | ||
| except.inc | ||
| exeinfo.pp | ||
| extres.inc | ||
| fexpand.inc | ||
| file.inc | ||
| filerec.inc | ||
| fpextres.pp | ||
| fpintres.pp | ||
| gencurr.inc | ||
| generic.inc | ||
| genmath.inc | ||
| genset.inc | ||
| genstr.inc | ||
| genstrs.inc | ||
| getopts.pp | ||
| heap.inc | ||
| heaph.inc | ||
| heaptrc.pp | ||
| innr.inc | ||
| int64.inc | ||
| intres.inc | ||
| keyboard.inc | ||
| keybrdh.inc | ||
| keyscan.inc | ||
| lineinfo.pp | ||
| lnfodwrf.pp | ||
| lstrings.pp | ||
| macpas.pp | ||
| makefile.inc | ||
| mathh.inc | ||
| matrix.pp | ||
| mmatimp.inc | ||
| mouse.inc | ||
| mouseh.inc | ||
| mvecimp.inc | ||
| objc1.pp | ||
| objcbase.pp | ||
| objects.pp | ||
| objpas.inc | ||
| objpash.inc | ||
| pagemem.pp | ||
| printer.inc | ||
| printerh.inc | ||
| readme | ||
| real2str.inc | ||
| resh.inc | ||
| rtti.inc | ||
| sockets.inc | ||
| socketsh.inc | ||
| sockovl.inc | ||
| softfpu.pp | ||
| sstrings.inc | ||
| stdsock.inc | ||
| strings.pp | ||
| stringsi.inc | ||
| sysres.inc | ||
| system.fpd | ||
| system.inc | ||
| systemh.inc | ||
| text.inc | ||
| textrec.inc | ||
| thread.inc | ||
| threadh.inc | ||
| threadvr.inc | ||
| typefile.inc | ||
| ucomplex.pp | ||
| ufloat128.pp | ||
| ustringh.inc | ||
| ustrings.inc | ||
| varerror.inc | ||
| variant.inc | ||
| varianth.inc | ||
| variants.pp | ||
| video.inc | ||
| videoh.inc | ||
| wstring22h.inc | ||
| wstringh.inc | ||
| wstrings.inc | ||
| wustring22.inc | ||
| wustrings.inc | ||
This directory contains only RTL parts independent
of the processor and of the operating system.
The include files contain the following:
astrings.pp AnsiStrings implementation.
except.inc Delphi styled exception support.
file.inc Untyped file support routines.
filerec.inc Untyped file record definition.
heap.inc Runtime heap manager .
heaph.inc Declarations of Heap functions.
innr.inc Internal function delcarations.
int64.inc Support for 64-bit integer arithmetic.
lstrings.pp LongStrings routine implementation.
mathh.inc Declarations of mathematical functions.
real2str.inc Routine to convert floating point numbers to strings.
rtti.inc Delphi like runtime type information
sstrings.inc ShortStrings (TP/BP pascal like strings) implementation.
system.inc OS and Processor independent implementation part of system unit.
systemh.inc Interface part of the system unit.
text.inc Text file support routines.
textrec.inc Definition of Textrec record.
typefile.inc Text file record definition.
generic.inc Processor independant implementation of assembler procs on i386
(to allow easy porting to new processors).
genset.inc Processor independant implementation of set handling
genmath.inc Processor independant implementation of mathematical routines
genrrti.inc Processor independant implementation of runtime type information routines
The unit files are:
ucomplex.pp Complex functions using operator overloading
getopts.pp Pascal implementation of the GNU Getops
objects.pp Turbo Pascal like implementation of objects unit
heaptrc.pp Runtime memory leak tracer and tests for memory integrity.