class, which conflicts with java.lang.System in recent jdk javac's
(and we don't access any of the RTL classes explicitly in the
test program)
git-svn-id: trunk@30952 -
type-safe way (for LLVM, and also internal consistency checking between
the VMT as generated in nobj.pas and ncgvmt.pas)
o also converted the VMT validity checking to the node level
git-svn-id: trunk@30950 -
correct type since quite a while)
o exceptions:
o objects/records (self is a "var" parameter there, and sometimes
we want to load it as a pointer to an object instead
o Objective-C class methods, where self has to be id (to have a signature
compatible with what Objective-C compilers generate), but when loading
it we want a classrefdef of the current class for type check and
method resolving
git-svn-id: trunk@30949 -
* create separate nodes for Objective-C in tloadvmtaddrnode.pass_1
instead of implicitly relying on the fact that the Objective-C
ISA field is at the same offset as the VMT of Object-Pascal
classes
o translate the resulting loads of ISA field into direct pointer
accesses, so that even on non-fragile ABI platforms we don't
go via an indirection (like clang/gcc)
git-svn-id: trunk@30947 -
undefined references to RTTI for some of the fields, and we don't need
it anyway because these types are not user-visible and we don't generate
variables of these types)
git-svn-id: trunk@30945 -
- reworked exit syncronization/waiting. now uses signalsemaphores instead of messaging. this avoids the requirement for an extra message port per thread, which caused signal shortages earlier.
- additional cleanups
- now try to free up "leaked" resources on exit
git-svn-id: trunk@30933 -
- in WaitForThreadTerminate, do not try to wait if the thread already exited
- when debug mode enabled, release the threadvars later, so AnsiString debug messages still work
- do not call DoneThread in EndThread. the threadfunc will call it when exited.
git-svn-id: trunk@30913 -
- now supports creation of suspended threads
- reworked CriticalSections handling to avoid outside-heap dynamic allocations of mutex space
- allocate threadvars area into the heapPool, this avoids leaking the mainthread threadvar area on exit
- now supports setting thread stacksize in a Delphi-compatible way (by default inherits the stacksize of its parent)
- better subthread naming
git-svn-id: trunk@30912 -
tcallnode constructor, so that when it's needed later during pass 1,
its value doesn't depend on the context in which pass 1 is executed
(e.g. when inlining) (mantis #18121)
git-svn-id: trunk@30908 -
- early stage, but tested and works on MorphOS and Amiga/68k (with at least 1 subthread... :)
- basic Threading functions and CriticalSections implemented
- Semaphores, RTLEvents and some other minor bits are still missing
- probably won't support all kinds of crazy hacky code out there. the user code must obey some Amiga-limitations, which come from the way the Amiga works
git-svn-id: trunk@30905 -