mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-02 19:22:05 +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 -
|
||
|---|---|---|
| .. | ||
| amiga | ||
| arm | ||
| atari | ||
| avr | ||
| beos | ||
| bsd | ||
| darwin | ||
| embedded | ||
| emx | ||
| freebsd | ||
| gba | ||
| go32v2 | ||
| haiku | ||
| i386 | ||
| inc | ||
| linux | ||
| m68k | ||
| macos | ||
| morphos | ||
| nds | ||
| netbsd | ||
| netware | ||
| netwlibc | ||
| objpas | ||
| openbsd | ||
| os2 | ||
| palmos | ||
| powerpc | ||
| powerpc64 | ||
| qnx | ||
| solaris | ||
| sparc | ||
| symbian | ||
| ucmaps | ||
| unix | ||
| watcom | ||
| win | ||
| win32 | ||
| win64 | ||
| wince | ||
| x86_64 | ||
| COPYING.FPC | ||
| COPYING.txt | ||
| fpmake.inc | ||
| fpmake.pp | ||
| Makefile | ||
| Makefile.fpc | ||
| README.txt | ||
This is the Run-Time Library (RTL) tree for Free Pascal.
To recompile the RTL, edit the main makefile. The makefiles NEED a GNU make
compatible make, they need unix-like 'rm' and 'mv' commands, as well as some
others. You can find these in the gnuutils package on the ftp site.
The main makefile is located ABOVE the RTL tree. It uses the FPC
makefile.fpc to guess reasonable defaults for everything it needs.
(these files can be found in base.zip on the FTP site)
The only variable that you may want to set are
FPC - What compiler to use. Use an absolute path.
(default is ppc386)
INSTALL_UNITDIR - Where to install the RTL units
OPT - any special options you want to set for the compiler.
In principle, you can also descend into the subdirectory of your OS, and
type 'make' there, that should also compile everything.
The tree contains subdirectories for all the supported operating systems,
as well as all processor architectures. The processor directories contain
low-level routines which are required for the system unit (if they are not
available in high-level language form), as well as optimized versions of
the pascal generic routines (the generic routine source code is localed in
the inc subdirectory).
The following directories are not supported officially and may not work
correctly with FreePascal v1.0:
go32v1 - The DJGPP go32v1 DOS extender (no longer supported)
palmos - The PalmOS directory for the Dragonball (incomplete)
Enjoy.