Commit Graph

50393 Commits

Author SHA1 Message Date
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
marco
812f1b941d * patch from 32537
git-svn-id: trunk@35688 -
2017-03-30 16:07:56 +00:00
marco
49e4819b2b * patch to speed up spe by WP. Mantis #31534
git-svn-id: trunk@35687 -
2017-03-30 14:31:05 +00:00
nickysn
2fc62d0177 * reserve consecutive inline numbers for the other modify-in-place inline nodes
that I'm planning to implement (sar/shl/shr/rol/ror/not/neg)

git-svn-id: trunk@35686 -
2017-03-29 16:13:40 +00:00
nickysn
f29492bdea * at -O3 level, convert i:=i and/or/xor k to the new in_[and/or/xor]_assign_x_y
inline nodes, which should generate better code for certain CPU targets,
  including x86. Note that the optimization isn't applied yet for all integer
  types (those that have extra implicit typecasts, inserted by the compiler,
  aren't handled yet).

git-svn-id: trunk@35685 -
2017-03-29 15:20:57 +00:00
nickysn
f19ebe2acf * fixed compiler internal error in the in_[and/or/xor]_assign_x_y inline nodes
when their second parameter is a large 64-bit unsigned constant

git-svn-id: trunk@35684 -
2017-03-29 14:55:07 +00:00
michael
b62a833a01 * Patch from Mattias Gaertner
- allow only String, no other string types
  - assigned(array)
  - tpasargument proc type

git-svn-id: trunk@35683 -
2017-03-29 11:38:42 +00:00
michael
6ab7bc9def * Patch from Mattias Gaertner:
- function type

git-svn-id: trunk@35682 -
2017-03-29 11:38:02 +00:00
michael
0653c7045e * Patch from Mattias Gaertner
- assigned(array)
  - open array: override, pass array literal, pass var
  - reporting type mismatches shows full path if necessary
  - fixed comparing basetype from different units
  - types with unitname

git-svn-id: trunk@35681 -
2017-03-29 11:37:16 +00:00
michael
bfd78af212 * Patch from Mattias Gaertner:
- fixed source pos of function type
  - fixes closing asm..end block

git-svn-id: trunk@35680 -
2017-03-29 11:36:10 +00:00
nickysn
8033392554 * on 16-bit CPUs remove unnecessary 32-bit conversions of integers, that are
later converted back to 16 bits

git-svn-id: trunk@35679 -
2017-03-29 10:49:32 +00:00
Károly Balogh
6d795df166 m68k: removed silly debug writeln accidentally left in r35671
git-svn-id: trunk@35673 -
2017-03-28 11:57:17 +00:00
Károly Balogh
eeb660017e m68k: improve floating point compares against memory references by swapping sides when left is a reference and right is a register
git-svn-id: trunk@35672 -
2017-03-28 11:50:39 +00:00
Károly Balogh
21468861d4 m68k: handle more reg_ref and ref_reg operations more flexibly on the cg level. these OPs should get utilized better with some of the upcoming inline nodes
git-svn-id: trunk@35671 -
2017-03-28 09:57:14 +00:00
sergei
8ae0864c9a * x86 Intel asm reader: handle special variables "self" and "result" similar to regular ones in terms of subscripting. This makes fix from r34911 apply to these special variables. Resolves #31542.
git-svn-id: trunk@35669 -
2017-03-27 19:58:55 +00:00
michael
52c9e272d2 * Patch from Mattias Gaertner
- ord(char), chr()
    - typecast boolean to integer
    - typecast integer to boolean
    - open arrays, same as dynamic arrays
    - Pascal descendant of external class can define a newinstance class
      function
    - allow to type cast any class to any root class
    - jsvalue
      - init as undefined
      - assign to jsvalue := integer, string, boolean, double, char
      - type cast base types to jsvalue
      - type cast jsvalue to base type
         integer: Math.floor(jsvalue)
         boolean: !(jsvalue == false)
         double: rtl.getNumber(jsvalue)
         string: ""+jsvalue
         char: rtl.getChar(jsvalue)
      - enums: assign to jsvalue, typecast jsvalue to enum
      - class instance: assign to jsvalue, typecast jsvalue to a class
      - class of: assign to jsvalue, typecast jsvalue to a class-of
      - array of jsvalue
      - parameter, result type, assign from/to untyped

git-svn-id: trunk@35668 -
2017-03-27 10:34:50 +00:00
michael
a5919aa63f * Patch from Mattias Gaertner:
pastree: fixed double iterations in foreach
  parser: fixed skipping token after var declaration without checking
  pasresolver: 
  - ord(char), chr()
  - method visibility: warn and fix if override has lower visibility
  - open arrays
  - allow descendants to add their own base types
  - typecast to alias type
  pasuseanalyzer: support public modifier

git-svn-id: trunk@35667 -
2017-03-27 10:33:53 +00:00
nickysn
fc59649a98 + added inline nodes for handling and/or/xor in place (i.e. x:=x op y, where
op=and/or/xor). They generate more optimal code on certain architectures
  (including x86). The new inline nodes aren't generated by the compiler yet,
  but will be used in the future, at certain optimization levels, whenever the
  pattern x:=x op y is detected by the compiler.

git-svn-id: trunk@35666 -
2017-03-26 23:16:53 +00:00
florian
73c46a5988 - removed unused constants
git-svn-id: trunk@35664 -
2017-03-26 13:06:34 +00:00
florian
0897bd154a + align(<int64>,<int64>) and align(<qword>,<qword>), resolves an issue reported on the mailing list with large records
+ tests
* trecordsymtable.insertunionst takes a asizeint parameter
* changed one aint into a asizeint

git-svn-id: trunk@35662 -
2017-03-26 09:35:56 +00:00
florian
74423b88e0 * comment on border between linear list and jmp tree for case statements extended
git-svn-id: trunk@35661 -
2017-03-26 07:36:58 +00:00
nickysn
5cb724edd9 + added optimized implementation of a_op64_reg_ref for i386 as well; improves
generated code for inc(int64_var,int64_var) and dec(int64_var,int64_var)

git-svn-id: trunk@35660 -
2017-03-25 21:40:20 +00:00
joost
59cd3891e1 * Replaced calls to procedures that depend on global variables, which
are not always set

git-svn-id: trunk@35659 -
2017-03-25 20:27:00 +00:00
florian
88e31dc8c3 * revision.inc updated
git-svn-id: trunk@35658 -
2017-03-25 19:05:14 +00:00
nickysn
f0a63fa895 + added an optimized implementation of a_op64_reg_ref for i8086; this improves
the generated code on i8086 for things like inc(int64_var,int64_var) and
  dec(int64_var,int64_var)

git-svn-id: trunk@35657 -
2017-03-25 18:45:31 +00:00