Commit Graph

50417 Commits

Author SHA1 Message Date
maciej-izak
e4565378db * Allow for "record constraint" in Delphi mode more types like: ordinal, float, classical objects, enumerations (instead of just record). Delphi compatibility. Fix for mantis #24073.
git-svn-id: trunk@35739 -
2017-04-05 13:12:30 +00:00
Mattias Gaertner
07c98e816f pastojs: external class bracket accessor
git-svn-id: trunk@35738 -
2017-04-05 07:35:52 +00:00
Mattias Gaertner
972b24286d fcl-passrc: added test for unit of only external stuff does not generate a hint
git-svn-id: trunk@35737 -
2017-04-05 07:35:14 +00:00
Mattias Gaertner
4bce2e2b4d pastojs: remove empty $impl
git-svn-id: trunk@35736 -
2017-04-04 23:00:14 +00:00
Mattias Gaertner
2afaeb60de fcl-passrc: nicer error message when calling property proc var with wrong args
git-svn-id: trunk@35735 -
2017-04-04 22:59:33 +00:00
nickysn
321876252b + enabled the rol/ror intrinsic on i8086
git-svn-id: trunk@35734 -
2017-04-04 22:37:58 +00:00
nickysn
0b1a54f924 * on 16-bit CPUs, avoid the unnecessary 32-bit conversion of the right shl/shr
parameter, when the operation is 32-bit (even when the operation is 32-bit,
  the shift count is only 16-bit on 16-bit CPUs, so using 32-bits is wasting an
  extra register and an extra instruction to initialize it)

git-svn-id: trunk@35733 -
2017-04-04 21:01:20 +00:00
Mattias Gaertner
2810dc5b44 pastojs: class const
git-svn-id: trunk@35732 -
2017-04-04 20:59:00 +00:00
Mattias Gaertner
5c9c8024be fcl-passrc:
pasresolver: class const
  pasuseanalyzer: no hints for abstract method

git-svn-id: trunk@35731 -
2017-04-04 20:58:29 +00:00
nickysn
b957b65ec8 * generate better i8086 code for 64-bit shl/shr, by masking the shift count by 63
git-svn-id: trunk@35730 -
2017-04-04 17:58:00 +00:00
Mattias Gaertner
6bb2dcf350 pastojs: updated error strings
git-svn-id: trunk@35729 -
2017-04-04 17:25:58 +00:00
Mattias Gaertner
58791a0b5c fcl-passrc: fixed checking proc arg base type from different units, fixed scanner eof row, fixed fail test messages
git-svn-id: trunk@35728 -
2017-04-04 17:25:15 +00:00
nickysn
6580dfee39 * generate better i386 code for 64-bit shl/shr, by masking the shift count by
63, instead of comparing it to 64 and branching. Note that, although this
  changes the behaviour of 64-bit shifts by values larger than 64 (when stored
  in a variable), it actually makes them consistent with both the code,
  generated on x86_64, as well as with 64-bit shift by constant on i386 itself.

git-svn-id: trunk@35727 -
2017-04-04 16:28:54 +00:00
nickysn
76cb419241 * use 16-bit 386+ instructions (shld,shrd) for performing fast 32-bit
shl/shr/sar on i8086, in a_op_const_reg, when the target CPU is set to 80386
  or later

git-svn-id: trunk@35726 -
2017-04-04 14:40:29 +00:00
nickysn
0ab4f01668 * implemented fast (loopless) 32-bit shift by constant for 8086 as well
git-svn-id: trunk@35725 -
2017-04-03 21:04:59 +00:00
maciej-izak
8391b73206 * Virtual methods cannot be declared as static (static virtual method has no sense).
+ added tests

git-svn-id: trunk@35724 -
2017-04-03 20:45:52 +00:00
nickysn
0f2ad7b712 * generate faster (i.e. loopless) code for 32-bit shl/shr/sar by const on 186+
git-svn-id: trunk@35723 -
2017-04-03 20:37:21 +00:00
maciej-izak
ee4ae1254f undo accidental commit (r35721) :/
git-svn-id: trunk@35722 -
2017-04-03 17:10:20 +00:00
maciej-izak
b4b87a841c git-svn-id: trunk@35721 - 2017-04-03 17:08:01 +00:00
Mattias Gaertner
e71ac95b69 fcl-passrc: pasuseanalyzer: no hint assigned but never used for out argument
git-svn-id: trunk@35720 -
2017-04-03 15:52:36 +00:00
Mattias Gaertner
dac17860c4 fcl-passrc: pasresolver: when accessing a record member, access the record too
git-svn-id: trunk@35719 -
2017-04-03 15:20:55 +00:00
Mattias Gaertner
457d23a151 fcl-passrc: pasresolver: check proc type or proc var
git-svn-id: trunk@35718 -
2017-04-03 13:01:50 +00:00
maciej-izak
322720236c + added missing dwarf constants: DW_FORM_sec_offset, DW_FORM_exprloc and DW_FORM_flag_present
git-svn-id: trunk@35717 -
2017-04-03 10:42:27 +00:00
Mattias Gaertner
e9791ceffc pas2js: started pass property by reference
git-svn-id: trunk@35716 -
2017-04-03 07:56:29 +00:00
Mattias Gaertner
632b973ed6 fcl-passrc: comments, analyzer option paoKeepPublished
git-svn-id: trunk@35715 -
2017-04-03 07:55:49 +00:00
Mattias Gaertner
bceb016f5f pastojs: added array params to external class 'Array' [integer]:jsvalue, 'Object' [string]:jsvalue
git-svn-id: trunk@35714 -
2017-04-02 18:54:04 +00:00
Mattias Gaertner
d4c801b708 fcl-passrc: pasresolver: allow adding custom arram params
git-svn-id: trunk@35713 -
2017-04-02 18:52:17 +00:00
Mattias Gaertner
fcbfa0899f pastojs: nested proc var
git-svn-id: trunk@35711 -
2017-04-02 11:27:07 +00:00
Mattias Gaertner
f23862e8de fcl-passrc: pasresolver: proc type modifier is nested
git-svn-id: trunk@35710 -
2017-04-02 11:26:25 +00:00
Mattias Gaertner
255870d371 fcl-passrc: pasresolver: fixed searching units recursively
git-svn-id: trunk@35709 -
2017-04-01 20:53:22 +00:00
Mattias Gaertner
4e0fd4de53 fcl-passrc: store access type of accessing default property
git-svn-id: trunk@35708 -
2017-04-01 20:21:39 +00:00
florian
4504648ec1 * initialize maskvalue to fix compilation with -O3+
git-svn-id: trunk@35707 -
2017-04-01 19:03:35 +00:00
michael
cbb5bbbc27 * Patch from Mattias Gaertner: Arrays can be null (test)
git-svn-id: trunk@35706 -
2017-04-01 18:22:59 +00:00
michael
d4d31508c3 * Patch from Mattias Gaertner: Arrays can be null
git-svn-id: trunk@35705 -
2017-04-01 18:22:28 +00:00
michael
ad99d1b015 * Patch from Mattias Gaertner
- function copy(array,start=0,count=max): array
  - procedure insert(item,var array,const position)
  - procedure delete(var array,const start,count)
  - allow type casting array of jsvalue to any array

git-svn-id: trunk@35704 -
2017-04-01 16:00:32 +00:00
michael
9e39442dbc * Fix from Mattias Gaertner for System.Delete() use analyses.
git-svn-id: trunk@35703 -
2017-04-01 15:59:57 +00:00
michael
945b0aa98b * Fix from Mattias Gaertner:
- children of a const record are const too
  - external class instance cannot access static members
  - option to treat open arrays as dynamic arrays
  - made rrfReadable consistent on class types
  - const dynarray param: elements are writable

git-svn-id: trunk@35702 -
2017-04-01 15:59:10 +00:00
joost
3b58c328c7 * Reading the fppkg-settings should not depend on the global
OnGetApplicationName event

git-svn-id: trunk@35701 -
2017-04-01 10:01:29 +00:00
joost
b52d6874d2 * Added more logging on why packages are installed
git-svn-id: trunk@35700 -
2017-03-31 19:49:36 +00:00
joost
20c9a16fa9 * Do not install packages into a repository that does not allow new
packages, also not when they are installed from their original source.

git-svn-id: trunk@35699 -
2017-03-31 19:36:57 +00:00
joost
a3f43a3661 * Try to fix plugins as fast as possible, so that as many packages
are compiled with the plugins

git-svn-id: trunk@35698 -
2017-03-31 18:54:54 +00:00
michael
aade79cff4 * Patch from Mattias Gaertner to fix use of Forward defined Classes
git-svn-id: trunk@35697 -
2017-03-31 15:15:10 +00:00
michael
a9f13acd81 * Patch from Mattias Gaertner:
- type cast array to array with same dimensions and element types
  - allow type casting string to external class name 'String'
  - allow type casting array to external class name 'Array'
  - allow assigning any array to an array of jsvalue

git-svn-id: trunk@35696 -
2017-03-31 11:33:44 +00:00
michael
03e6268a3d * Patch from Mattias Gaertner: type cast array to array with same dimensions and element types
git-svn-id: trunk@35695 -
2017-03-31 11:32:58 +00:00
michael
92cca391aa * Remove debug writeln
git-svn-id: trunk@35694 -
2017-03-31 06:58:16 +00:00
michael
88bd388bb6 * Patch from Mattias Gaertner
- concat(array1,array2,...)
  - jsvalue = and <>
  - allow no other string type except String
  - allow no other float type except Double

git-svn-id: trunk@35693 -
2017-03-31 06:53:24 +00:00
michael
ba7d698b1d * Patch from Mattias Gaertner:
- intrinsics:
    function concat(array1,array2,...): array
    function copy(array): array, copy(a,start), copy(a,start,end)
    insert(item; var array; index: integer)
    delete(var array; start, count: integer)
  - unified type mismatch errors and report types with paths if needed

git-svn-id: trunk@35692 -
2017-03-31 06:52:48 +00:00
michael
f2aebcd595 * Patch from Mattias Gaertner
* fixed checking semicolon after a procedure

git-svn-id: trunk@35691 -
2017-03-31 06:51:31 +00:00
lacak
85c9167f40 fcl-db: sqldb: storage specifiers for Options properties
git-svn-id: trunk@35690 -
2017-03-31 06:32:24 +00:00
marco
7e2cffdb87 * fix compilation.
git-svn-id: trunk@35689 -
2017-03-30 17:04:52 +00:00