Commit Graph

2292 Commits

Author SHA1 Message Date
Jonas Maebe
07e47171d2 * don't perform temp substitution of an entire array when assigning only the
first array element (related to mantis #13948 and #17413)

git-svn-id: trunk@15992 -
2010-09-15 15:03:32 +00:00
Jonas Maebe
ac8add7cf9 * don't perform temp substitution for variables whose address has been taken
or that are accessible outside the current block (mantis #17413)

git-svn-id: trunk@15990 -
2010-09-15 12:06:21 +00:00
michael
cd196c5622 * Test for negcurrformat values 11-15 from Zeljan Rikalo
git-svn-id: trunk@15983 -
2010-09-14 11:25:04 +00:00
michael
3d148c48ea * Attempt at MySQL 5.1 connection
git-svn-id: trunk@15980 -
2010-09-14 10:10:31 +00:00
michael
a2b0292cdb * Some minimal documentation
git-svn-id: trunk@15978 -
2010-09-13 21:40:17 +00:00
Jonas Maebe
c43fda1fe1 * enabled maybe_call_procvar() also for macpas mode (calls procvars that
don't have any parameters in most expressions, rather than using them
    as the procvar itself) -> replaced procvar<>nil with assigned(procvar)
    in test/tmacprocvar.pp to keep it compiling (otherwise it now called
    the procvar); necessary in combination with the next fix to compile
    webtbs/tw17379a.pp
  * automatically disambiguate the use of the function name when used as a
    parameter in macpas mode (if the formal parameter type is a procvar
    type then interpret it as the current function definition, otherwise
    as the current function result) (mantis #17379)

git-svn-id: trunk@15971 -
2010-09-12 16:03:00 +00:00
Jonas Maebe
7f42c3253e r323 | jonas | 2010-09-09 20:31:47 +0200 (Thu, 09 Sep 2010) | 2 lines
+ translation of CoreFoundation/CFStringTokenizer.h

git-svn-id: trunk@15960 -
2010-09-09 18:42:14 +00:00
florian
f13eff22b0 + added generic stellaris support as provided by #17365
git-svn-id: trunk@15957 -
2010-09-09 09:02:14 +00:00
paul
8bd5cef18b tests: add new for-in test from Michael Van Canneyt
git-svn-id: trunk@15954 -
2010-09-09 08:40:31 +00:00
Jonas Maebe
22b4860dd7 * getregisterinline() can be used to replace multiple size variants
of the same register (or of a register and its aliases) -> make
    sure that all relevant constraints are applied to it as well
    (mantis #16980)

git-svn-id: trunk@15952 -
2010-09-08 21:13:02 +00:00
Jonas Maebe
a311607ca6 * do not convert the second argument of inc/dec(ptrtype,value) into a
pointer, because that will force "value" to become unsigned, which
    result in errors in case of negative 64bit constants in case they
    are multiplied by the size of the pointed type in ncginl (the
    tconstexprint type operators have to handle positive and
    negative numbers differently) (mantis #17342)

git-svn-id: trunk@15951 -
2010-09-08 15:33:43 +00:00
michael
166ba412c9 * Test for formatfloat negative zero
git-svn-id: trunk@15946 -
2010-09-06 11:13:46 +00:00
pierre
973c23e12c * Fix for win64 GNU AS bug
git-svn-id: trunk@15939 -
2010-09-02 23:41:02 +00:00
sekelsenmat
18c8a1f9c0 Adds a lazarus project for fpvwritetest
git-svn-id: trunk@15931 -
2010-09-01 09:01:08 +00:00
Jonas Maebe
80086184d3 * mark values typecasted to regular array types and indexed as non-regable,
so that they aren't forced into a temporary location when passed to a
    var parameter later on (mantis #17283)

git-svn-id: trunk@15918 -
2010-08-29 17:19:58 +00:00
sekelsenmat
ef35ef0b0d Patches from Drigus, adds new wince units. bug #17096 and bug #17097
git-svn-id: trunk@15912 -
2010-08-27 14:31:13 +00:00
florian
ac51f535ae * support of data > 2 GB on x86_64-linux with PIC by picifing the startup code, resolves #17236
* fixed some small issues in the startup files

git-svn-id: trunk@15907 -
2010-08-25 19:43:29 +00:00
Jonas Maebe
821d0c5d26 * use fact that a method belongs to an objectsymtable to determine that
it is a method (_class is also set for nested procedures of methods),
    resolves problem reported in
    http://lists.freepascal.org/lists/fpc-pascal/2010-August/026259.html

git-svn-id: trunk@15898 -
2010-08-24 20:30:18 +00:00
Jonas Maebe
5ca1bd2a32 * if the unit of a procedure call is explicitly specified, limit the search
for (overloaded) procsyms to that unit (mantis #17220)

git-svn-id: trunk@15887 -
2010-08-23 20:51:40 +00:00
sekelsenmat
274856e2f5 Adds support for texts in the core of fpvectorial and adds a new example application for generating a set of documents from code
git-svn-id: trunk@15884 -
2010-08-23 15:26:54 +00:00
florian
3a07adf27e * reduce redundant temporary interfaces variables, resolves #14092
git-svn-id: trunk@15880 -
2010-08-23 11:56:17 +00:00
florian
700f687692 * nested open array constructors are not allowed, resolves #17213
git-svn-id: trunk@15876 -
2010-08-22 20:13:27 +00:00
nickysn
dabb5be491 * DrawPoly and FillPoly TP7 compatibility fixes
git-svn-id: trunk@15869 -
2010-08-21 21:18:23 +00:00
florian
deef8dfa33 * better error message in case of self-referencing generics specialization, resolves #17181
git-svn-id: trunk@15850 -
2010-08-19 08:00:57 +00:00
marco
e6277f6633 o commit patch from Mantis 17191:
* Patch with new linear based IPF writer
    * patch for Interfaces Overview in all Linear writers
    * patch with new Linear Writer specific parameter to control
      if linked documentation should be duplicated or not.
      new parameter is: --duplinkeddoc
      Default is that linked docs are not duplicated.
    * patch for fixing minor spelling mistakes in fpdoc
    * patch to not create a section Errors if there isn't actually
      any specific documentation for errors. makeskel generates error
      nodes but most don't have any items. This caused an Errors title
      in the docs, but with no content.
    * patch to fix SeeAlso section in Linear writer. It never output
      the custom text, but always the node link as text.
    * new features for linear writer that could be overridden in
      descendants.
      - marked some protected methods as virtual so it can be overridden
        in descendants for customization.
      - new section for listing Types found in a unit. Default does nothing,
        except in IPF writer.
      - new section for listing Variables found in a unit. Default does
        nothing, except in IPF writer.
      - new section for listing Constants found in a unit. Default does
        nothing, except in IPF writer.

git-svn-id: trunk@15849 -
2010-08-19 04:26:26 +00:00
ivost
db5e4028c4 * started with mysql 5.1 support (far from beeing finished! but core parts are working)
git-svn-id: trunk@15842 -
2010-08-18 14:07:05 +00:00
michael
4c7f9238c7 * SQL parser
git-svn-id: trunk@15832 -
2010-08-16 23:13:24 +00:00
Jonas Maebe
304a8f4db7 * only insert the current list of pc-relative data if it's not empty,
solves the problem whereby an empty list could sometimes be inserted
    after a jump table load (in case the jump table was larger than the
    maximally allowed offset, and if there was a skipinstr between the
    previous instruction and the jump table load) (mantis #17164)

git-svn-id: trunk@15831 -
2010-08-16 20:17:07 +00:00
Jonas Maebe
97f9157a7a * convert LOC_FLAGS/LOC_JUMP to cbool value in bool_to_bool conversion,
otherwise it stays 0/1 instead of becoming 0/-1 (mantis #17180)

git-svn-id: trunk@15830 -
2010-08-16 17:54:39 +00:00
sekelsenmat
d66b8c7068 Adds a Corel Draw file format explorer and starts implementing the CDR reader in fpvectorial
git-svn-id: trunk@15829 -
2010-08-16 15:00:54 +00:00
sekelsenmat
b7d466e8ab Renames the main fpvectorial example and adds a routine to detect the format from the extension.
git-svn-id: trunk@15826 -
2010-08-16 08:18:21 +00:00
marco
534fdb2e8c * Patch from Dmitry. imm + a dynloaded variant to be used for w9x. Mantis 17167
git-svn-id: trunk@15810 -
2010-08-14 14:59:04 +00:00
sekelsenmat
89593064f7 Starts code to add support to cdr and svg to fpvectorial
git-svn-id: trunk@15793 -
2010-08-13 08:24:27 +00:00
florian
9509437a96 * converted winspool.h from MingW and added it as winspool.pp, resolves #17174
git-svn-id: trunk@15766 -
2010-08-10 20:17:20 +00:00
florian
0085c22c59 - NaN floating point constants do not anymore cause an error when $Q or $R is active (resolves #16315 and #14757)
+ $ieeeerrors (command line switch -C3) to enable errors on NaN floating point constants
+ tests

git-svn-id: trunk@15765 -
2010-08-10 19:05:13 +00:00
Jonas Maebe
89be8d45e3 * use TrueBoolStrs/FalseBoolStrs for *StrToBool* (mantis #16848)
git-svn-id: trunk@15764 -
2010-08-10 13:06:22 +00:00
paul
38da67e08b tests: add hint directives test
git-svn-id: trunk@15760 -
2010-08-10 04:30:59 +00:00
joost
181804e4b9 * Fixed passing parameters on the stack to cdecl interface-methods. The 'call'
shifted all the parameters on the stack. Now the 'self' parameter is
   declared as var, not const, restoring its original value is not necessary
   anymore 

git-svn-id: trunk@15744 -
2010-08-08 13:27:54 +00:00
florian
683ac0ea45 * taking the address of an absolute var sym with constant address evaluates into a const. pointer, resolves #17118
git-svn-id: trunk@15723 -
2010-08-06 11:09:45 +00:00
florian
5d01b7b504 + tests for iso like goto
git-svn-id: trunk@15710 -
2010-08-05 19:16:09 +00:00
Jonas Maebe
57bd6d2685 + merged nestedprocvars branch
+ support for nested procedural variables:
    o activate using {$modeswitch nestedprocvars} (compatible with all
      regular syntax modes, enabled by default for MacPas mode)
    o activating this mode switch changes the way the frame pointer is
      passed to nested routines into the same way that Delphi uses (always
      passed via the stack, and if necessary removed from the stack by
      the caller) -- Todo: possibly also allow using this parameter
      passing convention without enabling nested procvars, maybe even
      by default in Delphi mode, see mantis #9432
    o both global and nested routines can be passed to/assigned to a
      nested procvar (and called via them). Note that converting global
      *procvars* to nested procvars is intentionally not supported, so
      that this functionality can also be implemented via compile-time
      generated trampolines if necessary (e.g. for LLVM or CIL backends
      as long as they don't support the aforementioned parameter passing
      convention)
    o a nested procvar can both be declared using a Mac/ISO Pascal style
      "inline" type declaration as a parameter type, or as a stand-alone
      type (in the latter case, add "is nested" at the end in analogy to
      "of object" for method pointers -- note that using variables of
      such a type is dangerous, because if you call them once the enclosing
      stack frame no longer exists on the stack, the results are
      undefined; this is however allowed for Metaware Pascal compatibility)

git-svn-id: trunk@15694 -
2010-08-02 22:20:36 +00:00
florian
85225d437e + additional goto test
git-svn-id: trunk@15689 -
2010-08-02 19:35:44 +00:00
florian
73d788ff96 + iso7195 unit
git-svn-id: trunk@15680 -
2010-07-31 20:42:52 +00:00
paul
c7de16cae1 tests: add type, var sections fail test
git-svn-id: trunk@15647 -
2010-07-27 02:42:54 +00:00
sergei
0f5795baaf XPath, use a perfect hash to recognize all possible keywords.
git-svn-id: trunk@15638 -
2010-07-26 13:49:46 +00:00
paul
8a47c5ec8e tests: class sections test by Martin
git-svn-id: trunk@15625 -
2010-07-23 09:00:00 +00:00
Jonas Maebe
e56f5d9462 + wavopenal example to play a wav file by Dmitry Boyarintsev (mantis #16961)
* only compile madopenal.pas for platforms for which the "mad" package
    gets compiled

git-svn-id: trunk@15610 -
2010-07-19 14:15:23 +00:00
Jonas Maebe
d7cdd9afba * allow tthread-based threads to only start executing once the constructor
has finished running (based on patch by Jared Davison, mantis #16884)

git-svn-id: trunk@15599 -
2010-07-18 16:31:25 +00:00
Jonas Maebe
b18a4617bb * fixed calling static TP-style object methods from within other methods
(mantis #16954)

git-svn-id: trunk@15598 -
2010-07-18 11:01:12 +00:00
Jonas Maebe
5b0962b735 * fixed misplaced bracket in condition test that caused all blocks
in libraries to be parsed as if they were the main module block,
    which in practice mainly mean that local variables with default
    values were never initialisation (mantis #16949)

git-svn-id: trunk@15596 -
2010-07-18 09:46:04 +00:00
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