mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2026-02-05 11:47:19 +01:00
o every porocedural variable type is represented by a class with one
public "invoke" method whose signature matches the signature of the
procvar
o internally, dispatching happens via java.lang.reflect.Method.invoke().
WARNING: while this allows calling private/protected or other methods
that are normally not accessible from another context, a security
manger can override this. If such a security manager is installed,
most procvars will cause security exceptions
o such dispatching also requires that all arguments are wrapped, but
that's done in the compiler-generated body of the invoke method,
so that procvars can also be called conveniently from Java code
o typecasting between a procedure of object and tmethod is supported,
as well as Delphi-style replacing of only the method pointer via
@procvar1=@procvar2.
o nested procvars are not yet supported, but most of the basic
infrastructure for them is already present
* all units/programs now get an internal __FPC_JVM_Module_Class_Alias$
type when compiled for the JVM target, which is an "external" class
that maps to the unit name. This is required to look up the
JLRMethod instances for regular functions/procedures
+ new tabstractprocdef.copyas() method that allows to create a procvar
from a procdef and vice versa
git-svn-id: branches/jvmbackend@18690 -
|
||
|---|---|---|
| .. | ||
| amiga | ||
| arm | ||
| atari | ||
| avr | ||
| beos | ||
| bsd | ||
| darwin | ||
| embedded | ||
| emx | ||
| freebsd | ||
| gba | ||
| go32v2 | ||
| haiku | ||
| i386 | ||
| inc | ||
| java | ||
| jvm | ||
| linux | ||
| m68k | ||
| macos | ||
| mips | ||
| mipsel | ||
| morphos | ||
| nativent | ||
| nds | ||
| netbsd | ||
| netware | ||
| netwlibc | ||
| objpas | ||
| openbsd | ||
| os2 | ||
| palmos | ||
| powerpc | ||
| powerpc64 | ||
| qnx | ||
| solaris | ||
| sparc | ||
| symbian | ||
| ucmaps | ||
| unix | ||
| watcom | ||
| wii | ||
| 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.