Commit Graph

2265 Commits

Author SHA1 Message Date
florian
7acdfa8932 - removed overseen overleft from iso goto implementation experiments
git-svn-id: trunk@15716 -
2010-08-06 07:42:34 +00:00
florian
24fea58b92 + initial implementation of iso style gotos in iso mode
* made setjmp/longjmp accessible to the compiler by compiler proc, they are used by the iso goto code

git-svn-id: trunk@15711 -
2010-08-05 19:20:46 +00:00
florian
9e053edf2e * fix iso i/o with unix style line feeds
git-svn-id: trunk@15706 -
2010-08-03 21:43:36 +00:00
Jonas Maebe
56f8b88125 * also initialise locgrowheapsizesmall in InitHeapThread, should fix crashes
on Windows after r15618 (not sure why things worked fine elsewhere)

git-svn-id: trunk@15688 -
2010-08-02 14:08:21 +00:00
florian
79fa2eb539 * support of iso pascal like i/o in iso mode
git-svn-id: trunk@15685 -
2010-07-31 20:46:27 +00:00
florian
c506913e9b * iso conformant writing of floats (using e instead of E) in iso mode
git-svn-id: trunk@15684 -
2010-07-31 20:45:55 +00:00
florian
2d042aca6b + system unit depends on compproc.inc
git-svn-id: trunk@15683 -
2010-07-31 20:45:00 +00:00
florian
8b3bd36ef0 * use iso reset/rewrite with automatic assignmentin iso mode
git-svn-id: trunk@15682 -
2010-07-31 20:44:32 +00:00
florian
73d788ff96 + iso7195 unit
git-svn-id: trunk@15680 -
2010-07-31 20:42:52 +00:00
florian
d0ea23f39e * write false/true lower case in iso mode
git-svn-id: trunk@15678 -
2010-07-31 20:40:43 +00:00
micha
829f8164fc * rtl/heap: simplify r15618, be more conservative towards memory use, especially since performance improvement is hardly measurable
git-svn-id: trunk@15636 -
2010-07-25 17:23:15 +00:00
Jonas Maebe
e9c922b193 * fixed compilation with Delphi (patch by Sven Barth, mantis #17016)
git-svn-id: trunk@15627 -
2010-07-23 15:44:15 +00:00
Jonas Maebe
e150c2c521 * dynamically grow the size of oschunks allocated for use by the memory
pools for small blocks (fixedfreelists) when lots of such oschunks
    are allocated successively, in order to reduce the overhead of
    allocating such chunks from the OS (and of freeing them afterwards)

git-svn-id: trunk@15618 -
2010-07-20 10:54:21 +00:00
daniel
86cbf76b92 * Fix/improve the value of "code" that is returned for val(string,enum,code) in
case the string is not recognized.

git-svn-id: trunk@15545 -
2010-07-10 15:38:45 +00:00
Jonas Maebe
26cc281390 * fixed real48 to double conversion for 0.0 (patch by "jeng", mantis #16863)
git-svn-id: trunk@15543 -
2010-07-10 12:15:13 +00:00
Jonas Maebe
a302cbeff1 * more Win64 -> FPC_HAS_TYPE_EXTENDED check conversions
git-svn-id: trunk@15534 -
2010-07-07 19:02:18 +00:00
Jonas Maebe
8a891690cc * prefetch heap status in sysfreemem
* re-layouted code in sysfreemem_fixed so that the most likely case is on
    the fall-through path
  * moved dec(poc^.used) in sysfreemem_fixed earlier so that it doesn't
    cause a dependency stall for the "if poc^.used<=0" test later

git-svn-id: trunk@15515 -
2010-07-03 12:45:55 +00:00
Jonas Maebe
b7796b4340 * enable the use of formal classes to replace some "id" types with actual
class types

git-svn-id: trunk@15480 -
2010-06-26 10:07:21 +00:00
pierre
8bcad0c07f avoid range check error in ParseCompilationUnit
git-svn-id: trunk@15478 -
2010-06-25 22:21:38 +00:00
Jonas Maebe
6308630e3e * rtl changes part of r15460
git-svn-id: trunk@15462 -
2010-06-21 09:26:08 +00:00
Tomas Hajny
a2af005101 * fix for web bug #16651
git-svn-id: trunk@15452 -
2010-06-19 16:15:40 +00:00
ivost
8a25a5fbc7 * removed writeln call
* added some more comments

git-svn-id: trunk@15296 -
2010-05-19 11:26:09 +00:00
marco
20499117de * reenabled ttime and tdate in system.
git-svn-id: trunk@15295 -
2010-05-19 08:23:44 +00:00
marco
9b6b88b100 * deprecated some 1.0.x stuff.
git-svn-id: trunk@15281 -
2010-05-16 11:46:30 +00:00
ivost
5604937bd4 * fixed #0016261
git-svn-id: trunk@15262 -
2010-05-12 20:41:00 +00:00
florian
e01e4e5719 * optimized copy(<dyn. array> ...) by checking if the elements are really ref. counted
git-svn-id: trunk@15228 -
2010-05-05 13:49:06 +00:00
marco
845125c2e7 * video unit maxwidth increased to 240 (FV editor
only good to 255, a small safety margin)

git-svn-id: trunk@15195 -
2010-04-28 07:46:30 +00:00
marco
0ba6c22b28 * fix for Mantis 16195, Delphi compatibility resource handle types were not 64-bit proof.
git-svn-id: trunk@15117 -
2010-04-08 09:03:50 +00:00
ivost
a6022f5df2 * removed IImplementorGetter interface and replaced it by the guid IObjectReference.
* GetInterface and GetInterfaceWeak is modified so that when querying for IObjectReference not an interface is returned but the object pointer

git-svn-id: trunk@15087 -
2010-03-28 12:35:50 +00:00
ivost
561997e8ef * added fpc_class_is_corbaintf and fpc_class_cast_corbaintf compiler helper functions
git-svn-id: trunk@15085 -
2010-03-28 11:31:50 +00:00
ivost
d9a6e63ef0 * prepeared compiler functions for IS and cast operators
* IS: fpc_intf_is, fpc_intf_is_class, fpc_class_is_intf
* AS: fpc_intf_cast, fpc_intf_cast_class, fpc_class_cast_intf

git-svn-id: trunk@15084 -
2010-03-28 11:19:56 +00:00
ivost
dc785f6f68 * implemented intf as object. When doing IInterface as TObject the compiler calls fpc_intf_as_class to query for the IImplementorGetter interface and then invokes GetObject to get the
objects reference.
* by default the TInterfacedObject is supporting now IImplementorGetter

git-svn-id: trunk@15080 -
2010-03-28 00:17:20 +00:00
ivost
6560ed87e9 * removed a debug writeln, unfortunately commited by r15077
git-svn-id: trunk@15079 -
2010-03-27 17:06:02 +00:00
ivost
3b5826059d * Added GetInterfaceWeak to TObject. It's equal to GetInterface but the returned interface is not referenced. This way it's possible to query interfaces of unreferenced objects.
* Changed fpc_class_as_intf so that it uses GetInterfaceWeak instead of GetInterface. This way it's prevented that the AS operator is increasing the refcounter of an unreferenced object from 0 to 1 temporarily and then by decreasing from 1 to 0 the object is freed.

git-svn-id: trunk@15077 -
2010-03-27 17:00:52 +00:00
ivost
3f2d66b188 * when calling GetInterfaceByStr on COM Objects, the refcounter was not increased
* this bugfix fixes bugreport #0012778

git-svn-id: trunk@15073 -
2010-03-27 11:12:46 +00:00
marco
8cce3d3f91 * closethread thread manager field/function. Mantis 13160
git-svn-id: trunk@15072 -
2010-03-26 23:31:52 +00:00
ivost
c47c125ec0 * changed 0 to S_OK as return value of QueryInterface (niceness)
* bugfix: initialized temp variables that are going to keep an interface by nil (segfaults)
* bugfix: AS operator has to call QueryInterface before GetInterface (related to revision r15066)

git-svn-id: trunk@15068 -
2010-03-26 00:48:28 +00:00
marco
c477df5046 * TCriticalSection.Tryenter support (Mantis 15928) + short test/demo
tested on FreeBSD (general Unix) and Windows. Note that Haiku seems 
    to have a native threadmgr rather than the Unix one. Will notify 
    maintainer (Olivier)

git-svn-id: trunk@15026 -
2010-03-21 11:34:05 +00:00
pierre
cee190b1f8 * shift128right last parameter should also by var type
git-svn-id: trunk@14993 -
2010-03-08 08:00:56 +00:00
paul
fcaac0ebe1 compiler,rtl - safecall handling:
- pass address to SafeCallException  method(rtl needed a modification)
  - improve code generation for regular safecall routines (not methods)
  - improve test - check that passed exception and address are valid

git-svn-id: trunk@14946 -
2010-02-27 04:41:52 +00:00
paul
cf0a1b1af9 compiler: safecall exception handling:
- move safecall exception handling from codegenerator to generate_except_block method (which generates nodes)
  - call SafeCallException for safecall methods which raises an exception

git-svn-id: trunk@14940 -
2010-02-26 10:17:24 +00:00
paul
ea8bf4f2fd rtl: TObject.SafeCallException and TComponent.SafeCallException has HResult return value. Fix default return value to catastrophic failure error code.
git-svn-id: trunk@14936 -
2010-02-25 04:13:52 +00:00
paul
bfb7d91b74 rtl: fix typos
git-svn-id: trunk@14935 -
2010-02-25 04:09:30 +00:00
Jonas Maebe
025ec34e4d + "CExtended" type that is the same as "extended", but conforming to the
properties/behaviour of the equivalent of Extended in C (i.e., to
    "long double" on i386 and x86_64 platforms that support a 10 byte
    long double, and to "double" elsewhere)

git-svn-id: trunk@14912 -
2010-02-14 13:45:58 +00:00
Tomas Hajny
5c31042f6a * SharedSuffix moved to include files to reduce number of ifdefs
git-svn-id: trunk@14902 -
2010-02-13 15:44:12 +00:00
Jonas Maebe
1b58fcc877 * set moduleislib to true for libraries. Differences with islibrary:
a) is also set to true for packages (when packages will beimplemented)
     b) exists for each package/library/application separately, instead of
        being stored in the package containing the system unit (when packages
        will be implemented)
    (mantis #15701)

git-svn-id: trunk@14880 -
2010-02-10 16:10:23 +00:00
Jonas Maebe
b1d2ab5450 * tobject.inheritsfrom(nil) has to return false (mantis #15690)
git-svn-id: trunk@14870 -
2010-02-06 18:14:26 +00:00
Jonas Maebe
870edaf916 * tobject.unitname and tobject.tostring have to return an ansistring instead
of a shortstring (mantis #15693)
  * changed tobject5 so it checks whether the return values are correct

git-svn-id: trunk@14869 -
2010-02-06 17:53:49 +00:00
florian
34f976afea * enabled internal sar support for sparc and mips as well
git-svn-id: trunk@14867 -
2010-02-04 22:04:19 +00:00
pierre
e716c54523 * fix double to clongdouble conversions for 128 bits C long double
git-svn-id: trunk@14849 -
2010-02-02 23:36:46 +00:00