Commit Graph

2292 Commits

Author SHA1 Message Date
florian
9affb070b8 * don't force OT_BITS32 on x86-64, resolves #16622
git-svn-id: trunk@15595 -
2010-07-17 20:57:06 +00:00
marco
eead32ac62 * unblock folded into chmls and deleted.
git-svn-id: trunk@15593 -
2010-07-17 11:52:58 +00:00
Jonas Maebe
a07bb94fcb * separate the finally block that dezals with cleaning up temps and the
except block that deals with exceptions raised inside the constructor
    (including afterconstruction), so that afterconstruction is always
    called after all temps have been finalised (necessary because in case
    of tinterfacedobject it decreases the reference count of the instance
    without every freeing the instance, so if that is done before a temp
    that also holds a refernce is finalised, the temp may wrongly free
    the instance (mantis #16592, #16592)

git-svn-id: trunk@15583 -
2010-07-15 19:25:40 +00:00
Jonas Maebe
bfc1a6ff1c + added support for intialising/finalising threads not started via the FPC
runtime

git-svn-id: trunk@15557 -
2010-07-12 16:16:50 +00:00
andrew
ab10e35fd5 * added basic reading for ms help 2 the successor to chm
git-svn-id: trunk@15548 -
2010-07-11 12:43:38 +00:00
Jonas Maebe
9273856e84 * disallow pusha*/popa* for x86_64 (mantis #14862)
* disallow pushfd/popfd for x86_64 (mantis #14862)
  * fixed assembling popfq with the internal assembler (it needs a rex.w
    prefisx, while pushfq doesn't)
  * changed the default opcode size of pushf/popf/pusha/popa in
    {$asmmode intel} from "native size" to 16 bit (compatible with Intel
    manuals and Kylix; in AT&T mode, the default size for those operations
    remains the native one)
  * changed pushf/popf in rtl/i386/* into pushfd/popfd because of the
    previous change

git-svn-id: trunk@15546 -
2010-07-10 16:22:46 +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
d3976c858b * fixed 64 bit check for "movd xmmreg, mem" and "movd mem, xmmreg" (patch by
Jasper Neumann, mantis #13294)
  * moved "reg64, xmmreg" and "xmmreg, reg64" combo's from movd to movq
    (movd is always 32 bit)

git-svn-id: trunk@15538 -
2010-07-09 21:16:48 +00:00
Jonas Maebe
229cbca086 * propagate pi_has_assembler_block and pi_uses_exceptions flags from inlined
routines to their host, as in this case the stack frame cannot be omitted
    (mantis #16874)

git-svn-id: trunk@15535 -
2010-07-08 20:34:17 +00:00
Jonas Maebe
c6d00a2b1f * correct the register size holding a smallset < 4 bytes when using "bt"
on it (mantis #16861)
  * fixed some indentation

git-svn-id: trunk@15531 -
2010-07-07 18:45:57 +00:00
Jonas Maebe
7d27f4c21d * also support variants for %s in sysutils.format (mantis #16787)
git-svn-id: trunk@15509 -
2010-07-02 19:59:58 +00:00
Jonas Maebe
58362db962 * use the correct procdef when taking the address of an overloaded function
in a typed constant (mantis #16820)

git-svn-id: trunk@15508 -
2010-07-02 19:30:20 +00:00
Jonas Maebe
60041ebf8b * allow exit(value) in exception blocks. Forbidding this dates back to
when this construct was still handled by custom code (mantis #16803)

git-svn-id: trunk@15492 -
2010-06-29 16:56:59 +00:00
Jonas Maebe
7321f9a87a * fixed register allocation info when initialising parameters, both in
case they are refcounted out-parameters and when using -gt (mantis #16757)

git-svn-id: trunk@15479 -
2010-06-26 09:59:04 +00:00
Jonas Maebe
62d677eb92 + support for formally declared objcclasses ("type x=objcclass;external;")
+ tests

git-svn-id: trunk@15476 -
2010-06-25 15:08:37 +00:00
Jonas Maebe
e36857742f * allow taking the address of an indexed array function result
(mantis #16772)

git-svn-id: trunk@15475 -
2010-06-25 12:42:27 +00:00
Jonas Maebe
04a63ea278 * fixed range/overflow checking for succ/pred (mantis #16770)
git-svn-id: trunk@15474 -
2010-06-22 19:15:08 +00:00
Jonas Maebe
267cb54cd6 + some extra (already working) tests for class references
git-svn-id: trunk@15467 -
2010-06-21 15:19:02 +00:00
Jonas Maebe
bcc836f1b0 * put the RTTI for optional protocol methods in the correct section for
fragile ABI platforms

git-svn-id: trunk@15465 -
2010-06-21 15:07:29 +00:00
Jonas Maebe
1474e7191f * moved tests to correct directory (they depend on the CocoaAll unit)
git-svn-id: trunk@15463 -
2010-06-21 09:26:51 +00:00
Jonas Maebe
835899524b + support for Objective-Pascal for-in loops ("fast enumerations")
+ {$modeswitch objectivec2}, which is required before you can use
    Objective-C 2.0 features (such as the above). It automatically
    also implies {$modeswitch objectivec1}
  + genloadfield() helper to load a field of a node representing
    a record/object/class

git-svn-id: trunk@15460 -
2010-06-20 12:38:45 +00:00
Jonas Maebe
790c7954b7 * fixed assigning "id" to a protocol instance and using protocol instances
to call methods + test

git-svn-id: trunk@15453 -
2010-06-19 16:19:13 +00:00
Jonas Maebe
935cd9eb8c - reverted r15430, it was wrong (variadic parameters don't require an extra
colon in the selector)

git-svn-id: trunk@15432 -
2010-06-13 19:45:45 +00:00
Jonas Maebe
8c1a63fb80 * take "varags" into account when checking for the correct number of
formal parameters of an Objective-C method

git-svn-id: trunk@15430 -
2010-06-13 19:35:41 +00:00
Jonas Maebe
ea4bb9d752 * don't treat variant records with one element as "records with one element"
(the ABIs that prescribe special treatment for aggregates with one
     scalar element don't either, since a "union containing a single scalar"
     is not the same as a scalar)
  * fixed passing record with a single float field on PowerPC/AIX abi's
  * several changes to cgobj and ncgutil to correctly deal with transfering
    such records between integer and floating point registers

git-svn-id: trunk@15416 -
2010-06-13 09:57:58 +00:00
Jonas Maebe
6d6892bec6 * fixed "byte/word/... ptr []" and "byte/word/..([])" typecasted expressions
in case the memory expression contains a record subscription (mantis
    #16700)

git-svn-id: trunk@15408 -
2010-06-11 14:51:58 +00:00
marco
1a7f50e3b5 * mass unblock CHM utility for win32/win64
git-svn-id: trunk@15406 -
2010-06-11 07:11:19 +00:00
Jonas Maebe
7c372ede44 * fixed initialising 32 resp. 64 bit regvars with -g-t if the compiler is
an i386 resp. x86-64 binary (mantis #16668)

git-svn-id: trunk@15398 -
2010-06-09 15:58:39 +00:00
michael
e94344784d * Ext.Direct demo
git-svn-id: trunk@15375 -
2010-06-04 15:24:27 +00:00
Jonas Maebe
62b1698912 + added
git-svn-id: trunk@15372 -
2010-06-03 21:49:47 +00:00
Jonas Maebe
42eefb0e0c + added
git-svn-id: trunk@15371 -
2010-06-03 21:44:14 +00:00
Jonas Maebe
429a9cdba0 + added
git-svn-id: trunk@15369 -
2010-06-03 21:20:14 +00:00
Jonas Maebe
15e9c54b44 * fixed ABI compliance for parameter passing and function returning on all
x86-64 platforms (except for win64, which uses another ABI and which
    already complied to it) + test
  * fixed returning records containing 1 single or double field on darwin/i386,
    these have to be returned via ST0 instead of as a regular record
  * added support for LOC_FPUREGISTER and LOC_MMREGISTER in several places
    where they can now occur due to the previous two changes
  * made a few internalerrors unique

git-svn-id: trunk@15368 -
2010-06-03 20:08:50 +00:00
michael
951c475e62 * Added some test instructions
git-svn-id: trunk@15362 -
2010-06-03 15:23:47 +00:00
michael
3d414fe91b * json-rpc examples, and compile it as well
git-svn-id: trunk@15361 -
2010-06-03 15:18:09 +00:00
michael
9797140bad * Added JSON-RPC functionality
git-svn-id: trunk@15360 -
2010-06-03 15:09:29 +00:00
Jonas Maebe
2a752f2c49 - removed, because C "long double" compatibility has been fixed (via
the "cextended" type) and testing this functionality has been
    enabled in tcalext a while back already

git-svn-id: trunk@15359 -
2010-06-02 21:23:19 +00:00
Jonas Maebe
d167f338a7 + test for mantis #16357 fixed in r15350
git-svn-id: trunk@15357 -
2010-05-31 18:11:46 +00:00
michael
1993663af7 * Deprecated in favour of fcl-web and WST
git-svn-id: trunk@15346 -
2010-05-30 14:14:18 +00:00
michael
ce8ab2b735 * Forgot to add
git-svn-id: trunk@15335 -
2010-05-27 15:48:23 +00:00
michael
81648b6fbf * Added webdata
git-svn-id: trunk@15334 -
2010-05-27 15:22:02 +00:00
michael
ef213e67d6 * Examples added
git-svn-id: trunk@15333 -
2010-05-27 14:06:12 +00:00
michael
54519645ae * Moved all to base directory
git-svn-id: trunk@15331 -
2010-05-27 13:36:04 +00:00
michael
ba9226866e * Test application for CGI gateway
git-svn-id: trunk@15330 -
2010-05-27 09:22:26 +00:00
michael
26590e487f * Implemented CGI -> FastCGI gateway application class
git-svn-id: trunk@15329 -
2010-05-27 09:21:47 +00:00
michael
9c8674fcd7 * Added BaseURL, and support for additional encodings. Implemented CGI testbed application
git-svn-id: trunk@15322 -
2010-05-25 11:20:38 +00:00
Jonas Maebe
00f6eb870e + test file
git-svn-id: trunk@15302 -
2010-05-21 14:13:38 +00:00
Legolas
4e6a42cfd0 * libndsfpc updated to 1.4.3
git-svn-id: trunk@15291 -
2010-05-18 16:46:02 +00:00
Almindor
ee598d6f67 * update lNet to 0.6.4
git-svn-id: trunk@15275 -
2010-05-13 21:19:47 +00:00
joost
0d447b29cd Disabled fcl-js, hermes and fuse packages for fpmake, like they are in the packages Makefile.fpc
git-svn-id: trunk@15271 -
2010-05-13 18:23:08 +00:00
joost
8a3a0648ad * Renamed fpmake files so they are not recognized anymore by bash-script
used to generate include files for the fpc-all fpmake package. Now sndfile 
   and ptc are effecively disabled for fpmake, just like for Makefile.fpc

git-svn-id: trunk@15265 -
2010-05-13 16:50:52 +00:00
Jonas Maebe
d9c64ed3c1 + (interactive) test for mantis #8076
git-svn-id: trunk@15242 -
2010-05-08 11:31:00 +00:00
Jonas Maebe
45c813929a * update the coordinates properly if a string is written that exactly fills
a line (mantis #15599)

git-svn-id: trunk@15241 -
2010-05-08 11:29:25 +00:00
Jonas Maebe
cddb2ffcae * give a compile-time error when trying to define a short/ansistring typed constant
containing unicode strings instead of producing unpredictable behaviour
    (mantis #16219)

git-svn-id: trunk@15240 -
2010-05-08 10:57:39 +00:00
Jonas Maebe
43033bacae o partially applied patches from mantis #16248 by Sven Barth:
+ test cpp class renaming (compiled for linux/i386 and all darwin platforms)
   * changed compilation instructions for obj/cpptcl1.cpp

git-svn-id: trunk@15239 -
2010-05-08 09:59:08 +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
Jonas Maebe
700aa3cf11 * GetEnumNameCount also counted the unit name after r14511 (mantis #16402)
git-svn-id: trunk@15225 -
2010-05-04 17:59:58 +00:00
Jonas Maebe
c60bcf8699 * fixed changing the visibility of a property with a fixed index in a child
class (mantis #15610)

git-svn-id: trunk@15223 -
2010-05-04 14:41:22 +00:00
Jonas Maebe
3f280c34cb * don't generate range checking code for pointers-indexed-as-arrays when
using non-constant indices (mantis #16377)

git-svn-id: trunk@15221 -
2010-05-04 10:39:01 +00:00
Jonas Maebe
2911435c5a * do replace one temp with another while inlining in case the former can
be a regvar while the latter cannot be (mantis #16018)

git-svn-id: trunk@15218 -
2010-05-03 16:29:03 +00:00
florian
f3c572edc5 * handle multiple string labels in one case branch correctly, resolves #16130
git-svn-id: trunk@15212 -
2010-05-02 21:44:24 +00:00
Jonas Maebe
0b44f8db1f * don't give an internal error when creating a dynamic array or a
record that requires init/finalisation with an objcclass
    (mantis #16366)

git-svn-id: trunk@15202 -
2010-05-02 13:42:03 +00:00
joost
df92cfbcf0 * Added templates for fppkg configuration files
git-svn-id: trunk@15193 -
2010-04-27 12:12:30 +00:00
joost
1834156acd * Removed usubst unit, use fpTemplate instead
* Commented out not-implemented option -l from help screen

git-svn-id: trunk@15192 -
2010-04-27 09:25:36 +00:00
joost
3759ad8963 * Moved fpcmkcfg from compiler/utils to utils/fpcmkcfg
git-svn-id: trunk@15189 -
2010-04-27 07:59:20 +00:00
marco
faf2bdfd62 * fix for mantis 16344 (quoted filename in $include ) + testparser example from that series of bugreports.
git-svn-id: trunk@15182 -
2010-04-26 13:17:26 +00:00
Jonas Maebe
c67712f81f + tthread.start method, simply calls tthread.resume for now (mantis #16326)
git-svn-id: trunk@15165 -
2010-04-24 14:52:08 +00:00
Jonas Maebe
0dcedf3799 * do not crash but give a fatal error when using Objective-Pascal code
without {$modeswitch objectivec1}

git-svn-id: trunk@15163 -
2010-04-24 12:49:16 +00:00
Jonas Maebe
2eddd5e704 * don't try to bitpack types > 32 bit on 32 bit cpus (mantis #16328)
git-svn-id: trunk@15162 -
2010-04-24 12:46:02 +00:00
joost
28395de42e * Moved fptemplate from fcl-web to fcl-base
git-svn-id: trunk@15158 -
2010-04-22 08:54:00 +00:00
florian
62c630abce * handle usage of generics type as class type correctly, resolves #16065
git-svn-id: trunk@15157 -
2010-04-21 20:19:18 +00:00
Jonas Maebe
f2e1819bae * put the call to afterconstructor inside the implicit try/catch block
block of the constructor, so that exceptions thrown there also
    properly abort construction (mantis #16311)

git-svn-id: trunk@15156 -
2010-04-21 20:06:54 +00:00
Jonas Maebe
72758864e4 * only allow field names in record/object typed constant declarations (mantis #16234)
* improved error recovery after encountering invalid field name in record/object typed constant
    declaration

git-svn-id: trunk@15150 -
2010-04-18 07:55:42 +00:00
paul
a1d94c6829 rtl: implement TStreamAdapter.CopyTo, .SetSize, return proper error value for Clone instead of raising exception (#0016161) + test
git-svn-id: trunk@15138 -
2010-04-11 12:52:31 +00:00
paul
c62c487b24 compiler: fix nested type typecast (issue #0016222)
git-svn-id: trunk@15122 -
2010-04-09 17:10:52 +00:00
Jonas Maebe
a18f2594e2 * fixed FloatToStr for ffGeneral when dealing with numbers whose number of
significant digits before the decimal points matches the precision
    parameter exactly (mantis #16188)
  * round instead of cut off digits in FloatToStr with ffGeneral
  * take into account the minus sign when determining whether a number needs
    to be represented using ffExponent instead of ffGeneral because it has
    too many digits

git-svn-id: trunk@15114 -
2010-04-05 14:54:24 +00:00
paul
8a0028a62e compiler: support *sealed* and *abstract* for objects (issue #0016174)
git-svn-id: trunk@15105 -
2010-04-01 14:36:33 +00:00
Jonas Maebe
4833867826 * moved most handling of records that fit in a register but that cannot be
treated as a regvar from pass_1 to the code generator, because this
    can always occur with a function result from a called function (in
    case the ABI prescribes returning certain records in registers)
    (mantis #16163)

git-svn-id: trunk@15101 -
2010-03-31 20:19:42 +00:00
Jonas Maebe
60f8b7fcb1 + int64 version of randomrange() (mantis #16108)
git-svn-id: trunk@15097 -
2010-03-30 20:04:19 +00:00
Jonas Maebe
734f9de2a0 + support for array of widechar typed constants (based on patch by
Blaise Thorn, mantis #16004)

git-svn-id: trunk@15096 -
2010-03-30 19:45:50 +00:00
paul
c879230f08 compiler: fix parsing and handling of typed constants declared inside classes/objects + tests
git-svn-id: trunk@15094 -
2010-03-30 07:09:44 +00:00
paul
973d947d6c compiler: allow const, type, var and class var sections for objects + test
git-svn-id: trunk@15092 -
2010-03-30 04:22:19 +00:00
ivost
d7e149805b * added new testset for interfaces and delegation, also GetInterface, GetInterfaceWeak, GetInterfaceByStr, AS and IS is tested
git-svn-id: trunk@15081 -
2010-03-28 00:44:20 +00:00
Jonas Maebe
a48a37d38b * fixed extended syntax checking {$x-} by moving it from the typecheck pass
to the parser, so that it only looks at what the programmer wrote rather
    than at all statements that the compiler may generate internally
    (mantis #11619)
  + several tests for {$x-} mode
  * modified tenumerators1 so it compiles without extended syntax enabled
    (to check for..in with {$x-})

git-svn-id: trunk@15075 -
2010-03-27 12:51:27 +00:00
Jonas Maebe
d8a902b4c4 * fixed internalerror in case the from-value of a for-loop has loc_jump
(mantis #15750)

git-svn-id: trunk@15071 -
2010-03-26 22:26:25 +00:00
Jonas Maebe
f0298ad2f5 + test for mantis #15363 fixed in r15066
git-svn-id: trunk@15070 -
2010-03-26 22:12:31 +00:00
ivost
f0ce69b264 * added testcase for right behavior of AS and SUPPORTS so that QueryInterface is called before GetInterface
git-svn-id: trunk@15067 -
2010-03-26 00:43:53 +00:00
paul
1b614b526a compiler:
- add own symbol table for enumeration to store enumeration elements
  - reimplement enumeration member traverse using symbol table instead of firstenum/nextenum - that members are removed
  - implement TEnum.Element access syntax - element is searched in the enumeration symtable in this case instead of global/local symtables
  - implement {$SCOPEDENUM ON/OFF} local switch
  + tests

git-svn-id: trunk@15051 -
2010-03-25 05:46:53 +00:00
Jonas Maebe
4d8f578e4c * when typecasting the result of pthread_self, always call it using
pthread_self(), because it's a procvar under Linux and hence otherwise
    the value of the procvar instead of the function result will be
    taken (mantis #15821)

git-svn-id: trunk@15049 -
2010-03-24 21:51:07 +00:00
Jonas Maebe
653974f679 * also give a "potential range error" hint with -CO in case the sizes
match but the source range does not fit in the dest range
    (related to mantis #16023)
  * don't give a "potential range error" when converting between
    s80real and sc80real, since even though the size may differ,
    the represented range does not

git-svn-id: trunk@15044 -
2010-03-24 21:21:19 +00:00
Jonas Maebe
8542632ebe * fixed evaluating constant expressions consisting of more than one term and
that start with a minus in the intel assembler reader (mantis #15843)

git-svn-id: trunk@15041 -
2010-03-24 20:52:31 +00:00
paul
1768810783 compiler: allow to derive classes from a nested class type (issue #0016083)
git-svn-id: trunk@15036 -
2010-03-23 05:36:11 +00:00
Jonas Maebe
82ff623390 + fixed Julian date helpers (based on patch by Bernd Engelhardt, mantis
#16040)
  * finished remaining unimplemented Julian date helpers

git-svn-id: trunk@15032 -
2010-03-22 21:01:46 +00:00
Jonas Maebe
87c9773ac0 + also support & to escape identifiers (and for octal notation) in Delplhi
mode (patch by Blaise Thorn, mantis #15930)

git-svn-id: trunk@15031 -
2010-03-21 23:33:44 +00:00
Jonas Maebe
6db635210a * don't give an internalerror when passing a constant string to an
openstring parameter (mantis #16022)

git-svn-id: trunk@15030 -
2010-03-21 14:51:12 +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
paul
49d94c5a16 compiler: implement {$VARPROPSETTER ON/OFF} support which is required for COM (D7 compatibility):
- add an option to skip varspez during parameters comparison
  - skip varspez comparison when searching a property reader candidate if $VARPROPSETTER is ON

git-svn-id: trunk@15020 -
2010-03-17 09:56:50 +00:00
Jonas Maebe
45d25bbe77 * fixed storing/loading widestring constant nodes into/from ppu files
(mantis #15909)
  * fixed storing/loading widestring constants into/from token streams
  * made storing/loading widestring constant nodes into/from ppu files
    endian safe

git-svn-id: trunk@15017 -
2010-03-14 13:27:00 +00:00
marco
8529d66523 * unzipper unit basic extraction test. (related to mantis 15836)
git-svn-id: trunk@15015 -
2010-03-14 11:41:54 +00:00
Jonas Maebe
171c0289b0 + tests from mantis #15777
git-svn-id: trunk@15013 -
2010-03-14 11:03:09 +00:00
Jonas Maebe
0cfc6e1cac + support for "univ" in macpas mode: a parameter modifier that allows
passing any value to that parameter which has the same size as the
    parameter (it basically acts as if there is an explicit type conversion
    to the parameter type around the value at the caller side). If a procvar
    has an univ parameter, all procvars whose corresponding parameter
    has the same size as that univ parameter are similarly compatible.

    This transparent compatibility can however cause crashes in case of
    of the procvars when one of the types is passed on the stack and the
    other isn't (because then the called routine will a) load the parameter
    from a wrong location and b) pop the wrong amount off of the stack at
    then end). Therefore FPC will warn in most cases where this can happen.
    (mantis #15777)

git-svn-id: trunk@15010 -
2010-03-13 22:13:20 +00:00
michael
f39e9ba873 * Test unit for testing purposes
git-svn-id: trunk@15009 -
2010-03-13 16:04:19 +00:00
paul
949290e62f fcl-res: support tlb resources
git-svn-id: trunk@15001 -
2010-03-11 03:00:41 +00:00
Jonas Maebe
88f5addd1c * do not typecheck statements before checking whether they are valid,
because the associated simplifications can turn invalid statements
    into valid statements (based on patch by Aleksa Todorovic, mantis
    #15594)

git-svn-id: trunk@14998 -
2010-03-09 21:13:22 +00:00
marco
18cef789c6 * regenned makefile for Loesje
git-svn-id: trunk@14955 -
2010-02-28 16:11:01 +00:00
florian
e9c95ea46f + NvApi package for win32 and win64 by Dmitry Boyarintsev, resolves #15771
git-svn-id: trunk@14951 -
2010-02-28 09:56:36 +00:00
paul
8d7312f87b rtl: use CreateVCLComObject routing to create VCLComObject in case it is not assigned + test
git-svn-id: trunk@14948 -
2010-02-27 08:49:50 +00:00
paul
f607b7bdd5 tests: add SafeCallException test
git-svn-id: trunk@14941 -
2010-02-26 10:28:19 +00:00
Jonas Maebe
fe5d0b0ef4 * fixed internalerror in case of dereferencing a loc_(c)subsetreg/ref
(mantis #15812)

git-svn-id: trunk@14925 -
2010-02-19 16:26:36 +00:00
Jonas Maebe
78b9820e11 * support record fields separated by commas instead of semicolons in typed
constant record definitions in MacPas mode (patch by Adriaan van Os,
    mantis #15764)

git-svn-id: trunk@14915 -
2010-02-14 14:33: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
Jonas Maebe
674cdaf3fc * handle fields with the same name as a type also correctly in case of
nested records (mantis #15592)

git-svn-id: trunk@14910 -
2010-02-13 20:51:19 +00:00
Jonas Maebe
85984c2d8f * insert proper type conversions when optimising logical operations and
compares by avoiding unnecessary sign extensions (fixes bug reported in
    http://lists.freepascal.org/lists/fpc-pascal/2010-January/023907.html )
  * never throw away int2int type conversions on bitpacked loads, because
    in these cases the proper bits still need to be selected

git-svn-id: trunk@14892 -
2010-02-12 18:13:08 +00:00
florian
092153e7ad * handle unrolling of for ... downto ... correctly, resolves #15668
git-svn-id: trunk@14884 -
2010-02-10 21:08:54 +00:00
Jonas Maebe
6b0a0c149b * don't perform a range check in Delphi mode when passing a cardinal as
vtInteger to an array-of-const parameter (mantis #15727)

git-svn-id: trunk@14882 -
2010-02-10 16:35:37 +00:00
Jonas Maebe
d60e1f674c * automatically try to call procvars that are subscripted or used in a
with-statement, both in FPC and TP/Delphi modes (mantis #15728)

git-svn-id: trunk@14881 -
2010-02-10 16:12:18 +00:00
florian
c459100773 + basic info program
git-svn-id: trunk@14878 -
2010-02-07 22:56:05 +00:00
florian
0c153a46df * math.power/intpower(0,0) return 1, this is as recommended in IEEE 754
as well as compatible with other programming languages and delphi

git-svn-id: trunk@14873 -
2010-02-06 23:10:03 +00:00
Jonas Maebe
89110baab8 * don't modify the flags while simplifying PIC memory references
(mantis #15694)

git-svn-id: trunk@14871 -
2010-02-06 20:18:36 +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
michael
7096ee6bfa * Regenerated
git-svn-id: trunk@14863 -
2010-02-04 20:31:49 +00:00
michael
59bd32b7ea * Initial check-in
git-svn-id: trunk@14859 -
2010-02-04 15:18:07 +00:00
michael
34f551ad5e * Initial check-in
git-svn-id: trunk@14857 -
2010-02-04 12:58:02 +00:00
marco
706f0b7975 * New more delphi compat intstrtotime by Bart Broersma #15505 + test
git-svn-id: trunk@14854 -
2010-02-03 15:10:14 +00:00
Jonas Maebe
caca6cea37 * allow any kind of fields in Object Pascal classes that are passed to
Objective-C methods or which are fields of Objective-C classes (since they
    are basically opaque to the Objective-C runtime) + fixed tobjc11 so it
    expects classes to be encoded as opaque types
  * give a proper error message when using illegal field/parameter types in
    Objective-C classes/methods instead of an internal error (only checked
    during rtti generation rather than during parsing, because during parsing
    some types may still be forwarddefs)
  * split objcutil in objcdef and objcutil, with objcdef depending only on
    the symtable so it can be used in symdef

git-svn-id: trunk@14838 -
2010-01-31 21:13:41 +00:00
florian
dfc2652062 + support of compiler intrinsic sar* using a patch by Benjamin Rosseaux, resolves #15606
git-svn-id: trunk@14834 -
2010-01-31 16:47:01 +00:00
Jonas Maebe
13e8b3f23e * don't give a "NoThreadError" for any default rtl/basicevent* routines,
so the TMultiReadExclusiveWriteSynchronizer routines can be safely
    executed even with the default thread manager -> removed ismultithread
    checks, so that it keeps working even if ismultithread is set to true
    between acquiring and freeing a lock (mantis #15619)

git-svn-id: trunk@14830 -
2010-01-29 21:01:11 +00:00
Jonas Maebe
2be600afff * support objc.id.<anyobjcmethod> in Delphi mode (mantis #15607)
git-svn-id: trunk@14822 -
2010-01-28 16:14:42 +00:00
joost
8ef245699a * Merging fcl-web_joost branch into trunk
--- Merging r13710 through r14654 into '.':
 G   utils/debugsvr/README.txt
 G   utils/fpmc/README.txt
 G   utils/tply/COPYING.txt
 G   utils/tply/README.txt
 G   utils/fpdoc/COPYING.txt
 G   utils/fpdoc/README.txt
 G   utils/fppkg/README.txt
 G   utils/README.txt
 G   utils/h2pas/README.txt
 G   ide/README.txt
 G   ide/TODO.txt
 G   rtl/macos/README.txt
 G   rtl/freebsd/x86_64/cprt0.as
 G   rtl/freebsd/x86_64/gprt0.as
 G   rtl/freebsd/buildrtl.pp
 G   rtl/freebsd/buildrtl.lpi
 G   rtl/COPYING.txt
 G   rtl/netware/README.txt
 G   rtl/inc/ustrings.inc
C    rtl/inc/objpash.inc
 G   rtl/inc/ustringh.inc
 G   rtl/README.txt
 G   rtl/objpas/README.txt
 G   tests/test/README.txt
 G   tests/test/tunistr6.pp
 G   tests/test/tunistr1.pp
 G   tests/test/tunistr7.pp
 G   tests/test/tunistr2.pp
 G   tests/test/opt/README.txt
 G   tests/test/tunistr4.pp
   C tests/test/tobject5.pp
 G   tests/test/tunistr5.pp
 G   tests/webtbs/uw13345y.pp
 G   tests/webtbs/tw11846a.pp
 G   tests/webtbs/tw12993.pp
 G   tests/webtbs/tw11846b.pp
--- Merging r13710 through r14654 into 'tests/webtbf/tw13815.pp':
 U   tests/webtbf/tw13815.pp
--- Merging r13710 through r14654 into 'tests/tbf/tb0216.pp':
 U   tests/tbf/tb0216.pp
--- Merging r13710 through r14654 into '.':
 G   compiler/ccharset.pas
 G   compiler/README.txt
 G   compiler/COPYING.txt
 G   compiler/optloop.pas
 G   compiler/utils/README.txt
 G   packages/sdl/README.txt
 G   packages/fcl-net/README.txt
--- Merging r13710 through r14654 into 'packages/fcl-xml/tests/README_DOM.txt':
 U   packages/fcl-xml/tests/README_DOM.txt
--- Merging r13710 through r14654 into '.':
 G   packages/fcl-xml/tests/README.txt
 G   packages/fcl-xml/src/README.txt
--- Merging r13710 through r14654 into 'packages/unzip/src/unzip51g.pp':
 U   packages/unzip/src/unzip51g.pp
--- Merging r13710 through r14654 into '.':
 G   packages/libc/README.txt
 G   packages/newt/README.txt
 G   packages/fcl-process/src/dummy
 G   packages/fcl-db/src/memds/README.txt
 G   packages/fcl-db/src/README.txt
U    packages/fcl-web/Makefile.fpc
A    packages/fcl-web/src/webpage.pp
U    packages/fcl-web/src/fphtml.pp
 G   packages/fcl-web/src/README.txt
C    packages/fcl-web/Makefile
 G   packages/libgd/src/gd.pas
 G   packages/libgd/README.txt
 G   packages/ptc/docs/TODO.txt
 G   packages/ptc/docs/README.txt
 G   packages/postgres/README.txt
 G   packages/fcl-base/examples/intl/README.txt
 G   packages/fcl-base/examples/README.txt
 G   packages/xforms/README.txt
 G   packages/amunits/README.txt
 G   packages/ibase/README.txt
 G   packages/sndfile/README.txt
 G   packages/libxml/src/xml2.pas
 G   packages/svgalib/README.txt
--- Merging r13710 through r14654 into 'packages/winunits-base/src/dwmapi.pp':
 U   packages/winunits-base/src/dwmapi.pp
--- Merging r13710 through r14654 into '.':
 G   packages/cdrom/README.txt
 G   packages/mysql/README.txt
 G   packages/oracle/README.txt
 G   packages/gtk1/README.txt
 G   packages/uuid/README.txt
 G   packages/odbc/README.txt
 G   packages/gdbm/README.txt
Summary of conflicts:
  Text conflicts: 2
  Tree conflicts: 1

git-svn-id: trunk@14808 -
2010-01-26 15:12:56 +00:00
giulio2
bb5891a560 * fpcres: Implemented TClosableFileStream to automatically release and acquire
file handles as needed. It avoids running out of file descriptors
  (fixes bug #15586)

git-svn-id: trunk@14805 -
2010-01-26 08:54:41 +00:00
florian
fc148f4aec * read/write new cstringpattern correctly from/to ppu files
+ test

git-svn-id: trunk@14791 -
2010-01-24 12:34:00 +00:00
florian
c6ffbe9eda * support string constants > 255 chars
* don't cut off anymore string constants silently at 255 chars

git-svn-id: trunk@14789 -
2010-01-24 09:28:46 +00:00
marco
690b6e89ea * strutils rtl unit dir + test of posex. (related to bug #15357)
git-svn-id: trunk@14785 -
2010-01-23 22:02:44 +00:00
paul
25298fbcd9 compiler: allow hint modifier for 'unit' keyword (reason - delphi compatibility) + test
git-svn-id: trunk@14767 -
2010-01-22 07:15:09 +00:00
paul
bd6f1d7447 compiler: auto generate method/property dispid if it is not set explicitly
git-svn-id: trunk@14766 -
2010-01-22 02:46:03 +00:00
paul
6bc01f8c7e tests: add 2 fail dispinterface test
git-svn-id: trunk@14749 -
2010-01-19 13:39:52 +00:00
florian
988b94e578 * store array results returned in registers on x86_64-win64 in a memory location if needed, resolves #14388
git-svn-id: trunk@14736 -
2010-01-17 21:07:59 +00:00
florian
20de72b703 * allow writeln/readln on generic type parameters
git-svn-id: trunk@14721 -
2010-01-17 15:58:46 +00:00
micha
e66b0b1f37 * tests: add test for issue #15500
git-svn-id: trunk@14720 -
2010-01-17 15:57:05 +00:00
florian
cf5c42b596 * give a better error message and do better error recovery if too few typed constant array elements are provided
git-svn-id: trunk@14708 -
2010-01-17 13:04:17 +00:00
paul
74cc1e0bab compiler: allow 'as' for dispinterface, allow comparisons of dispinterface and pointers (issue #0015530, issue #0015529)
git-svn-id: trunk@14663 -
2010-01-16 11:37:25 +00:00
paul
9513b50d26 compiler: don't allow to publish class properties + test
git-svn-id: trunk@14640 -
2010-01-14 15:21:13 +00:00
paul
09fd52791a tests: add fail test for class properties
git-svn-id: trunk@14639 -
2010-01-14 15:04:45 +00:00
Jonas Maebe
08a4ede9c4 * added str(enum,charray) and export str(enum,ansistr/widestr/unicodestr)
(mantis #15504)
  * fixed result parameter of str(enum,ansistr) helper (was shortstring)

git-svn-id: trunk@14629 -
2010-01-12 20:19:52 +00:00
Jonas Maebe
28cd8271c9 * initial version of internal Mach-O/i386 assembler by Dmitry Boyarintsev
(mantis #15163)

git-svn-id: trunk@14628 -
2010-01-12 19:52:55 +00:00
paul
6b087799ef compiler: nested class types:
- fix is_visible_for_object to work correctly if symbol is in the objectsymtable but no current_objectdef present
  - fix ClassName for nested classes
  + test
  

git-svn-id: trunk@14617 -
2010-01-11 19:44:02 +00:00
paul
67ce65eb35 tests: more tests for classes
git-svn-id: trunk@14611 -
2010-01-11 10:07:14 +00:00
paul
fd6e2cc86e compiler: fix internal class symbol search for method arguments
git-svn-id: trunk@14610 -
2010-01-11 09:55:53 +00:00
paul
166f8a63a2 compiler: implement class constants + tests
git-svn-id: trunk@14609 -
2010-01-11 08:43:10 +00:00