Commit Graph

46191 Commits

Author SHA1 Message Date
Jonas Maebe
26044b604f * don't import org.freepascal.rtl.* as this also includes our System
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 -
2015-05-31 16:50:53 +00:00
Jonas Maebe
a0a77f3105 * suppress (harmless) range error
git-svn-id: trunk@30951 -
2015-05-31 16:50:50 +00:00
Jonas Maebe
3f736f6114 * handle the loading of VMT entries at the node level, so it's done in a
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 -
2015-05-31 16:50:47 +00:00
Jonas Maebe
822b943d08 - removed most special handling of self (the self parameter has had the
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 -
2015-05-31 16:50:44 +00:00
Jonas Maebe
fa9ba26cb4 * fixed the type of self in Objective-C category methods
git-svn-id: trunk@30948 -
2015-05-31 16:50:42 +00:00
Jonas Maebe
703e31512d * moved JVM-specific code of tloadvmtaddrnode.pass_1 to njvmmem
* 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 -
2015-05-31 16:50:39 +00:00
Jonas Maebe
033c28e5ac * removed unnecessary and potentially wrong typecast
git-svn-id: trunk@30946 -
2015-05-31 16:50:36 +00:00
Jonas Maebe
48ffe7b033 * don't create RTTI for internally generated recorddefs (doing so can cause
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 -
2015-05-31 16:50:33 +00:00
Jonas Maebe
0eab091e1a * factored symansistr-define-conditional handling of fforcedprocname into
a property

git-svn-id: trunk@30944 -
2015-05-31 16:50:30 +00:00
florian
e9ef6347d2 * ATmega16 support by Anton Kavalenka, resolves issue #28217
git-svn-id: trunk@30943 -
2015-05-31 15:55:39 +00:00
Károly Balogh
0997122c4c AThreads: less random Hungarian swearing as accidentally left in debug code :)
git-svn-id: trunk@30942 -
2015-05-31 10:06:36 +00:00
Károly Balogh
cdea58317e classes: since AThreads supports suspended thread creation, enable resume code in AfterConstruction for Amiga-like platforms too
git-svn-id: trunk@30941 -
2015-05-31 09:37:43 +00:00
Károly Balogh
eacc41d3b3 AThreads: use ThreadInfo block pointer as ThreadID, instead of the ProcessPtr itself, because after the process exited that can be reused and leads to ID collisions in the list. Also added a small helper for Int to HexStr printing, so we could avoid a bunch of pointer casting all over the code.
git-svn-id: trunk@30940 -
2015-05-31 09:09:51 +00:00
florian
6a26268793 * correct number of interrupt vectors
git-svn-id: trunk@30939 -
2015-05-30 18:01:38 +00:00
florian
cf552b2a0b + ATmeag168/ATmeag368 support
git-svn-id: trunk@30938 -
2015-05-30 18:01:14 +00:00
florian
0cd521fc8b + ATmega48/ATmega88 support
git-svn-id: trunk@30937 -
2015-05-30 17:55:49 +00:00
florian
aadcf9f6bc * do not convert JMP into RJMP in assembler blocks, resolves issue #280208
git-svn-id: trunk@30936 -
2015-05-30 16:17:24 +00:00
lacak
9f4333d20a fcl-db: tests: Add sqlite3ds connector to db test suite. Patch from Luiz Americo. Bug #28200
git-svn-id: trunk@30935 -
2015-05-29 10:21:22 +00:00
Jonas Maebe
3634262437 + Linux/AArch64 gprof-enabled startup code (patch by Edmund Grimley Evans)
git-svn-id: trunk@30934 -
2015-05-29 06:14:27 +00:00
Károly Balogh
24677c9309 amicommon: more work on AThreads
- 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 -
2015-05-29 02:07:37 +00:00
florian
d58d7b7838 * fixes breakage of r30930 (+ ATtiny24/ATtiny44/ATtiny84 support)
git-svn-id: trunk@30932 -
2015-05-28 21:15:00 +00:00
florian
e9d886cdfc * cleanup
git-svn-id: trunk@30931 -
2015-05-28 21:10:58 +00:00
florian
0f73675354 + ATtiny24/ATtiny44/ATtiny84 support
git-svn-id: trunk@30930 -
2015-05-28 21:10:39 +00:00
blikblum
a27cee5cfb * Make GetRecNo return 0 on empty and closed datasets
git-svn-id: trunk@30929 -
2015-05-28 14:53:56 +00:00
blikblum
e8175ed0cf * Revert undesired changes introduced in last commit
git-svn-id: trunk@30928 -
2015-05-28 14:29:35 +00:00
blikblum
2fff34b7b7 * Check for nil in BookmarkValid
git-svn-id: trunk@30927 -
2015-05-28 13:17:03 +00:00
blikblum
f1db1db8b9 * Move cursor forward instead of backward when deleting
git-svn-id: trunk@30926 -
2015-05-28 12:22:40 +00:00
Jeppe Johansen
36dfe750d8 Added Freescale MK20D7 controller support.
git-svn-id: trunk@30925 -
2015-05-28 11:46:22 +00:00
Károly Balogh
b4ce380cd4 amicommon/AThreads: use shared semaphores locks where possible for read-only access; preparations to be built in the RTL; code cleanups
git-svn-id: trunk@30924 -
2015-05-28 01:10:38 +00:00
Károly Balogh
6afcca7cd3 Amiga-likes: preparations for inclusion of AThreads into the RTL buildprocess
git-svn-id: trunk@30923 -
2015-05-28 00:47:35 +00:00
Károly Balogh
21a9b96e7e amicommon: avoid SysUtils unit and AnsiStrings in AThreads
git-svn-id: trunk@30922 -
2015-05-27 22:37:50 +00:00
Károly Balogh
eb692e46d2 amicommon: added ShortString version of SysDebug family of functions
git-svn-id: trunk@30921 -
2015-05-27 22:25:22 +00:00
lacak
242d750ef5 fcl-db: sqldb: ExecuteDirect should call StartImplicitTransaction, when Transaction.Options contains stoUseImplicit (else it leads later to AV due to nil Transaction.Handle)
git-svn-id: trunk@30920 -
2015-05-27 05:06:01 +00:00
marco
b18365fb61 * part of mantis 028134, shlwapi unit with strlogical*
git-svn-id: trunk@30919 -
2015-05-26 17:56:59 +00:00
marco
c402bffc69 * part of mantis 028134, cleanup of NORM_ constants
git-svn-id: trunk@30918 -
2015-05-26 17:44:09 +00:00
Károly Balogh
2153420ca4 morphos: also fix MorphOS header erros in RTL
git-svn-id: trunk@30917 -
2015-05-25 23:52:09 +00:00
Károly Balogh
4261449aa1 morphunits: fix a field name typo in TMemEntry
git-svn-id: trunk@30916 -
2015-05-25 23:03:22 +00:00
Károly Balogh
dfd251f586 morphunits: fixed TMemList declaration in exec, to match AROS, Amiga/m68k, and reality
git-svn-id: trunk@30915 -
2015-05-25 22:26:15 +00:00
Károly Balogh
632c46bcb6 amicommon: have a generic tthread.inc which even works, given there is a reasonably advanced ThreadManager
git-svn-id: trunk@30914 -
2015-05-25 21:06:53 +00:00
Károly Balogh
45ce4538fa amicommon: more AThreads work
- 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 -
2015-05-25 19:47:21 +00:00
Károly Balogh
73f451f3d3 amicommon: AThreads improvements
- 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 -
2015-05-25 17:55:43 +00:00
Jonas Maebe
ca5addff8e * fixed memory leaks introduced in r30908
git-svn-id: trunk@30911 -
2015-05-25 15:10:16 +00:00
Jonas Maebe
0f99ae82af * increased ppu version after r30907
git-svn-id: trunk@30910 -
2015-05-25 13:04:36 +00:00
Jonas Maebe
00b68dfd9f + test for mantis #16582 (already works with FPC 2.6.4)
git-svn-id: trunk@30909 -
2015-05-25 12:55:44 +00:00
Jonas Maebe
caea5ac8be * record a load node for the self/vmt tree of the current routine in the
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 -
2015-05-25 12:55:40 +00:00
Jonas Maebe
6c3f1c3722 * stop tcallnode.pass_1 after we've detected a direct call to a helper/
category method, as this may lead to an internalerror later on after
    the following commits

git-svn-id: trunk@30907 -
2015-05-25 12:55:37 +00:00
Jonas Maebe
f51b11e969 * implemented tcallnode.create_procvar on top of tcallnode.create
git-svn-id: trunk@30906 -
2015-05-25 12:55:34 +00:00
Károly Balogh
c7856d25f8 amicommon: AThreads, a native threadmanager unit, similar to Unix's cthreads
- 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 -
2015-05-24 23:07:41 +00:00
Károly Balogh
cfc076832a MorphOS: deleted sysosh.inc, no longer needed (use the one in amicommon)
git-svn-id: trunk@30904 -
2015-05-24 22:56:02 +00:00
Károly Balogh
846dd6b57b m68k: use the Amiga-specific atomic ops on Amiga
git-svn-id: trunk@30903 -
2015-05-24 21:44:51 +00:00