Commit Graph

4455 Commits

Author SHA1 Message Date
nickysn
5409450195 + ported and enabled compilation of unit sysutils for win16
git-svn-id: trunk@37734 -
2017-12-15 16:58:49 +00:00
svenbarth
916ff0b92c + extend Concat() with support for dynamic arrays
+ added test

git-svn-id: trunk@37723 -
2017-12-12 19:54:08 +00:00
michael
4467ff81a6 * Second grouping demo, showing fieldkind for user data loop and simple aggregates
git-svn-id: trunk@37666 -
2017-12-03 10:25:05 +00:00
nickysn
78e0f6c68b + added an i8086-specific FarAddr() function, similar to Addr(), but always
returns a far pointer, regardless of the current memory model

git-svn-id: trunk@37628 -
2017-11-27 16:41:48 +00:00
florian
4b8dcd676c * libcups interface unit included in FPC, resolves #32729
git-svn-id: trunk@37619 -
2017-11-26 09:33:34 +00:00
nickysn
c464f7fa56 * fixed the SEG inline asm directive when used with 32-bit registers on the i8086 target
git-svn-id: trunk@37613 -
2017-11-22 15:04:30 +00:00
Károly Balogh
e6aed467b5 renamed script unit to cscript to avoid namespace conflict with univint package on Darwin. this makes it possible to build the textmode IDE on Darwin
git-svn-id: trunk@37598 -
2017-11-17 11:27:19 +00:00
svenbarth
eb7059cea8 + add SQL-DB data dictionary engines for MySQL 5.6 and 5.7
git-svn-id: trunk@37577 -
2017-11-11 20:47:02 +00:00
nickysn
ae92973196 + added support for the retw, retnw, retfw, retd, retnd, retfd, retq, retnq and
retfq x86 instructions. These are variants of the ret instruction with the
  return offset size set explicitly, e.g. retfw is a 16-bit far ret (i.e. pops
  a 16-bit offset and a 16-bit segment), retfd is a 32-bit far ret (pops a
  32-bit offset, followed by a 16-bit segment), etc.

git-svn-id: trunk@37571 -
2017-11-10 16:53:29 +00:00
nickysn
3cbe377f40 + added 2 tests for absolute var access to a 2-dimensional array from within inline asm
git-svn-id: trunk@37562 -
2017-11-06 16:47:07 +00:00
nickysn
24d447716e * fixed support for access from inline asm to absolute vars, pointing to an
array element (previously, it would always point to the start of the array)

git-svn-id: trunk@37558 -
2017-11-06 16:06:34 +00:00
florian
c7d5525b56 + implemented some AVR specific intrinsics
git-svn-id: trunk@37544 -
2017-11-01 16:33:34 +00:00
florian
ff86c80176 * cpu specific header file for the system unit: cpuh.inc, moved several declarations into it
git-svn-id: trunk@37542 -
2017-11-01 16:33:30 +00:00
nickysn
d570c09b9d + added test, which tests public labels as well as 'external far' variables on i8086
git-svn-id: trunk@37533 -
2017-10-30 18:08:39 +00:00
nickysn
be3ff9128a + added an i8086 test for the public directive
git-svn-id: trunk@37531 -
2017-10-30 17:02:48 +00:00
nickysn
29558a74cd + support exporting labels from asm blocks in intel syntax asm blocks via the
'public' directive

git-svn-id: trunk@37530 -
2017-10-30 16:44:13 +00:00
nickysn
d318ab086a * when handling absolute vars from within intel inline assembly, take the
absolute var size into account (not the type of the var it points to or no
  size at all, if it points to a fixed address)

git-svn-id: trunk@37525 -
2017-10-26 15:58:48 +00:00
nickysn
8a0d8f025b * fixed another i8086 inline asm 32-bit constant bug (e.g. in 'or eax, 80000001h')
git-svn-id: trunk@37521 -
2017-10-25 19:38:37 +00:00
nickysn
07eab50afe + added a test for 32-bit inline asm const operand on i8086, using at&t syntax as well
git-svn-id: trunk@37520 -
2017-10-25 18:09:11 +00:00
nickysn
325e66287c * fix for inline asm of instructions with 32-bit constant operands on i8086
git-svn-id: trunk@37519 -
2017-10-25 18:03:22 +00:00
nickysn
e58bad8eef + check for the 'pop cs' instruction in the x86 inline assembler and print a
warning (on the i8086 target) or an error (on i386 and x86_64) when this
  instruction is used (because it only works on 8086 and 8088 CPUs)

git-svn-id: trunk@37514 -
2017-10-24 15:07:20 +00:00
yury
af0fdea815 * Android: Include list of supported syscalls for each CPU.
Adjust Linux RTL to work with supported Android syscalls. 
  It should fix issues with Android 8.

git-svn-id: trunk@37480 -
2017-10-17 18:15:02 +00:00
nickysn
dd9b5eb2aa + added the 'Cannot override ES' message in the at&t assembler reader as well
git-svn-id: trunk@37456 -
2017-10-14 00:48:46 +00:00
nickysn
1ee36b5b9b + added error message in the intel assembler reader, when an attempt is made to
override the ES segment in an x86 string instruction (because it cannot be
  overriden)

git-svn-id: trunk@37454 -
2017-10-13 14:56:38 +00:00
nickysn
0fb79946a5 + added support for the parameterized versions of the x86 string instructions
(movs, cmps, scas, lods, stos, ins, outs) in the inline asm of the i8086, i386
  and x86_64 targets. Both intel and at&t syntax is supported.
* NEC V20/V30 instruction 'ins' (available only on the i8086 target, because it
  is incompatible with 386+ instructions) renamed 'nec_ins', to avoid conflict
  with the 186+ 'ins' instruction.

git-svn-id: trunk@37446 -
2017-10-12 00:07:02 +00:00
michael
c2c561a827 * QR Code printable element, plus demo report, using newly added QR Code generator unit
git-svn-id: trunk@37438 -
2017-10-09 19:21:28 +00:00
svenbarth
fcc1ce7a08 * fix for Mantis #30344: applied patch by Mario Ray Mahardhika to add new command line option -Sj[-|+] to control writeable typed constants (with a small adjustment to the help text)
+ added test

git-svn-id: trunk@37437 -
2017-10-09 19:19:23 +00:00
michael
656405d7dc + Added QR code generator, image drawer
* QR Code generator code translated from C code from Project Nayuki (http://nayuki.io)
    (reused with permission)
  * Translated demo app from project Nayuki
  * Added sample QR code generator demo app 

git-svn-id: trunk@37436 -
2017-10-09 19:17:26 +00:00
svenbarth
f6a867ef04 * move handling of Concat to tinlinenode so that it can be easily extended for dynamic arrays
+ added test

git-svn-id: trunk@37429 -
2017-10-08 10:39:34 +00:00
michael
43867344cd * Demo how to create pdf from text file
git-svn-id: trunk@37425 -
2017-10-08 08:29:05 +00:00
florian
3d3298f64d * write absolute references correctly on avr, resolves #32040
git-svn-id: trunk@37419 -
2017-10-07 21:09:20 +00:00
florian
4cf2a2672a changes to fix #32043
* changed most of the variables in the assembler readers used to store constants from aint to tcgint 
  as aint has only the size of the accumular while some CPUs (AVR) allow larger constants in instructions
+ allow access to absolute symbols with address type in inline assembler
* allow absolute addresses in avr inline assembler
+ tests

git-svn-id: trunk@37411 -
2017-10-06 21:07:19 +00:00
florian
cc44328109 * correctly calc case label distance after r36362, resolves #32115 and #32311
git-svn-id: trunk@37390 -
2017-10-03 20:36:09 +00:00
florian
c0feaf1f1e + allow absolute to absolute symbols, resolves issue #32474
git-svn-id: trunk@37379 -
2017-10-01 19:54:44 +00:00
svenbarth
9619576515 + add support for $SetPE{OS,SubSys,User}Version directives; Delphi compatible; Note: $SetPEUserVersion takes precedence to $Version
+ added test

git-svn-id: trunk@37364 -
2017-09-30 13:55:29 +00:00
svenbarth
81a0f88d8c + add Delphi compatible TThread.ForceQueue() which enqueues the method also for the main thread (at least if the RTL is in multi threading mode, otherwise it's still executed right away - whether this is Delphi compatible needs to be tested as I only have a 10.1 currently which does not yet support TThread.ForceQueue())
+ added test

git-svn-id: trunk@37359 -
2017-09-29 21:19:45 +00:00
svenbarth
c5b33f51f9 * fix for Mantis #32412: correctly handle an incorrect parameter count for Delete() and Insert() intrinsics
+ added tests

git-svn-id: trunk@37342 -
2017-09-27 21:15:00 +00:00
svenbarth
a1c910d892 * fix for Mantis #32108: ensure that types are registered once there is no more specialization is going on
git-svn-id: trunk@37341 -
2017-09-27 20:47:16 +00:00
michael
6a0dee6583 * Simple JSON -> YAML converter
git-svn-id: trunk@37333 -
2017-09-27 18:02:02 +00:00
nickysn
e4a405dcd9 + added unit 'cpu' for i8086
git-svn-id: trunk@37332 -
2017-09-27 16:55:56 +00:00
michael
c731e5030b * Add barcode support
git-svn-id: trunk@37313 -
2017-09-24 09:34:58 +00:00
michael
8cd2ebf94b * Add barcode drawing routines
git-svn-id: trunk@37305 -
2017-09-23 20:20:50 +00:00
pierre
17a974940e Add cthreads unit to BeOS target
git-svn-id: trunk@37276 -
2017-09-20 15:58:18 +00:00
michael
b793b2dd28 * Patch from Pascal Riekenberg to implement nested groups
git-svn-id: trunk@37273 -
2017-09-20 15:33:43 +00:00
Mattias Gaertner
4b4e40c98e fcl-js: added example srcmapdump
git-svn-id: trunk@37263 -
2017-09-20 09:08:07 +00:00
pierre
856b3d86ce Add ufloatx80 unit, to add operator overload for 80-bit extended type on CPUs that do not support this type natively
git-svn-id: trunk@37256 -
2017-09-19 20:57:20 +00:00
Mattias Gaertner
49115a4199 pastojs: added test for generating sourcemap
git-svn-id: trunk@37236 -
2017-09-17 19:58:59 +00:00
svenbarth
90bd408de4 * fix for Mantis #32355: adjust the meaning of the typehelpers modeswitch for Delphi modes in that it enables the "type helper" syntax as it is in the non-Delphi modes; extending primitive types with record helpers is now always enabled in Delphi modes
+ added test

git-svn-id: trunk@37225 -
2017-09-15 21:09:21 +00:00
Károly Balogh
587471a0bb palmos: new pascal startup code sketch. the code was tested elsewhere, but not as part of the RTL yet
git-svn-id: trunk@37216 -
2017-09-15 16:06:19 +00:00
Károly Balogh
b56a4bc800 palmos: an include which will contain the subset of the API the RTL needs
git-svn-id: trunk@37215 -
2017-09-15 16:05:13 +00:00
florian
01b950f39b + new test
git-svn-id: trunk@37170 -
2017-09-10 18:07:15 +00:00
maciej-izak
8b5524ac3a * ignore is_publishable for properties in interfaces (related to $M+ directive). $M has effect on visibility of default section for classes. Interface has always only public section (fix for problem in tb0631.pp)
git-svn-id: trunk@37136 -
2017-09-03 19:05:21 +00:00
michael
628b2e5717 * Demo database is created on demand
git-svn-id: trunk@37104 -
2017-09-02 09:00:32 +00:00
michael
0415de90e7 * Fix TPasWriter so it produces compileable output, add more constructs. Sample program to rewrite a source file
git-svn-id: trunk@37103 -
2017-09-01 21:21:53 +00:00
svenbarth
135b5de410 + add function call manager based on libffi; currently only tested on x86_64-linux; all other targets need to be explicitely tested before being enabled
git-svn-id: trunk@37096 -
2017-08-31 21:18:49 +00:00
svenbarth
179b59753d + add optional, not by default enabled test for Invoke
git-svn-id: trunk@37095 -
2017-08-31 21:10:10 +00:00
svenbarth
5c97248f85 + also write the set's size to the RTTI as that simplifies handling in Invoke()
git-svn-id: trunk@37090 -
2017-08-31 19:23:12 +00:00
svenbarth
0553d94765 * generate Makefile after r37084
git-svn-id: trunk@37085 -
2017-08-30 19:29:44 +00:00
svenbarth
0140028d4e + add headers for the ffi library, the foreign function call library
git-svn-id: trunk@37084 -
2017-08-30 19:28:56 +00:00
svenbarth
7b675b6769 * correctly write the type of open array parameters as the element def and not the array def
+ added test that shows the linking error if not done so (otherwise that should already be covered by trtti15.pp)

git-svn-id: trunk@37083 -
2017-08-29 20:17:24 +00:00
svenbarth
83e4585b0f * correctly handle unit identifiers inside specializations of generic routines
git-svn-id: trunk@37080 -
2017-08-29 18:29:10 +00:00
svenbarth
6acba684d4 * class helpers: fix calling virtual methods of the extended type using inherited
git-svn-id: trunk@37060 -
2017-08-25 19:36:56 +00:00
michael
164778b020 * Patch from Martok to fix compilation using build project (Bug ID 32322)
git-svn-id: trunk@37046 -
2017-08-24 08:11:15 +00:00
michael
4f6fffa331 * Add libfontconfig
git-svn-id: trunk@37040 -
2017-08-23 07:18:29 +00:00
svenbarth
239d0704ca + add support for type helpers to also extend interface types
git-svn-id: trunk@37023 -
2017-08-21 20:49:20 +00:00
svenbarth
bd6b4b97a7 + add default config file for FPCUnit ConsoleTestRunner
git-svn-id: trunk@36993 -
2017-08-20 20:24:21 +00:00
michael
6672e77222 * Added fcl-report
git-svn-id: trunk@36962 -
2017-08-20 18:00:29 +00:00
svenbarth
50f3479f64 + add test for the DynArray* functions (currently only DynArraySize() and DynArrayIndex() are tested)
git-svn-id: trunk@36943 -
2017-08-20 15:16:16 +00:00
svenbarth
324e63b5d3 * a bit of language consolidation: "type helper" can now be used for records and classes as well
git-svn-id: trunk@36938 -
2017-08-18 15:29:19 +00:00
michael
1fa863721f * Patch from Denis Kozlov to fix threaded server
git-svn-id: trunk@36916 -
2017-08-15 09:55:18 +00:00
michael
25e85d1772 * TJSONIniFile class added
git-svn-id: trunk@36913 -
2017-08-15 08:58:18 +00:00
svenbarth
0b02dab684 + new Delphi-compatible intrinsic GetTypeKind() which returns the TTypeKind of a type as a constant value (and thus can be optimized away in If- and Case-statements)
+ added test

git-svn-id: trunk@36875 -
2017-08-11 22:12:53 +00:00
svenbarth
5deca8ed7b * copy and include rttih.inc (even though the functions are not available currently)
git-svn-id: trunk@36872 -
2017-08-11 20:28:51 +00:00
Károly Balogh
fed07e6643 m68k-palmos: yet another broken-over-a-decade platform build fixed
git-svn-id: trunk@36863 -
2017-08-08 19:10:27 +00:00
Károly Balogh
5f2dce07d3 m68k-palmos: skeleton for a recent system unit
git-svn-id: trunk@36862 -
2017-08-08 19:09:23 +00:00
Károly Balogh
914ac30919 netbsd/powerpc: made it to build at least. resulting executables probably still crash & burn
git-svn-id: trunk@36859 -
2017-08-08 14:31:57 +00:00
Károly Balogh
90ed130750 bsd: add support for syscalls on m68k, based on NetBSD/elf
git-svn-id: trunk@36780 -
2017-07-23 23:02:44 +00:00
Károly Balogh
847f014707 netbsd: prt0 startup code and dummy files for build pass for m68k
git-svn-id: trunk@36779 -
2017-07-23 22:43:31 +00:00
florian
a2e442e111 * keep the names of X, Y and Z in assembler files, fixes issue #32150
git-svn-id: trunk@36776 -
2017-07-23 19:24:45 +00:00
michael
3b5d532ab5 * Corrected patch from Rolf Wetjen to use unicode API on windows (bug ID 32185)
git-svn-id: trunk@36765 -
2017-07-22 17:09:45 +00:00
michael
32cdee6f5d * Fix bugs 30950 & 29781
git-svn-id: trunk@36740 -
2017-07-17 16:24:05 +00:00
svenbarth
0c42b6f44a * fix for Mantis #32118: also provide a range for undefined defs
+ added test

git-svn-id: trunk@36723 -
2017-07-10 19:47:21 +00:00
svenbarth
ca78bfffae * fix for Mantis #32111: allow undefined defs as a for loop's counter; the specialization will decide whether it will compile or not
+ added test

git-svn-id: trunk@36722 -
2017-07-10 19:45:15 +00:00
michael
0a73f141a4 * Forgotten in commit 36662
git-svn-id: trunk@36683 -
2017-07-08 14:10:35 +00:00
michael
feebdbfc92 * Winhttp unit added (bug id 30650)
git-svn-id: trunk@36677 -
2017-07-08 11:25:03 +00:00
florian
567dfef9a7 + object files for sparc64-linux to test linking with gcc
git-svn-id: trunk@36655 -
2017-07-06 18:02:20 +00:00
michael
afa74238f5 * SAX JSON reader, rework JSONParser on top of that
git-svn-id: trunk@36580 -
2017-06-22 19:45:22 +00:00
nickysn
a217c4c7d0 * merged all changes from ptc trunk from sourceforge; adds support for different
keyboard input modes in ptccrt (TP7 compatible, GO32 CRT compatible and WIN32
  CRT compatible mode)

git-svn-id: trunk@36555 -
2017-06-20 00:23:32 +00:00
florian
3c72115e30 * basic sparc64 calling convention handling and stack frame handling fixed
git-svn-id: trunk@36518 -
2017-06-18 15:49:21 +00:00
florian
c7d4a64ae4 + basic sparc64-linux specific rtl code, based on the sparc-linux one
git-svn-id: trunk@36515 -
2017-06-18 15:44:06 +00:00
florian
a6c2f1660b + sparc64 variants of the cpu specific files used by the rtl
git-svn-id: trunk@36514 -
2017-06-18 15:42:22 +00:00
florian
b8755b6b2c + setjmp/longjmp implementation for sparc64, based on the sparc one
git-svn-id: trunk@36513 -
2017-06-18 15:41:25 +00:00
florian
278d33f611 + first implementation of sparc64-linux startup code, partly dummies
git-svn-id: trunk@36512 -
2017-06-18 15:39:37 +00:00
nickysn
f2587b6061 * updated ptc and ptcgraph to the latest trunk (future 0.99.15 release) from sourceforge
git-svn-id: trunk@36507 -
2017-06-18 00:16:03 +00:00
marcus
d4d7778e86 + Linux/m68k test object files
git-svn-id: trunk@36502 -
2017-06-14 20:33:26 +00:00
Mattias Gaertner
2df7e116e3 fcl-js: added TSourceMap
git-svn-id: trunk@36492 -
2017-06-12 18:23:25 +00:00
florian
5e969d90cb + SPARC64 cpugas unit
+ support for %gdop_hix22/%gdop_lox22

git-svn-id: trunk@36475 -
2017-06-10 11:24:55 +00:00
svenbarth
dffe423b10 * fix for Mantis #31945: two fixes for nested routines inside generic methods
a) correctly determine whether token recording is required or not (nested routines of generic routines don't need it)
  b) correctly determine whether the trailing ";" needs to be parsed (nested routines of generic routines need to)

git-svn-id: trunk@36469 -
2017-06-09 15:46:10 +00:00
svenbarth
eb9b4fb71f * fix for Mantis #31973: resolve dummy symbols earlier and print a nice error message if a generic dummy could not be resolved to an ordinary symbol
+ added test
* adjusted test tw9673 which should have never worked as is (what if TList would have been "of T" instead of "of byte"?)

git-svn-id: trunk@36468 -
2017-06-09 14:41:26 +00:00
maciej-izak
751bde9792 Revert revision 36436 from trunk. Final fix for issue #31675.
git-svn-id: trunk@36446 -
2017-06-07 21:06:54 +00:00