Commit Graph

55342 Commits

Author SHA1 Message Date
Mattias Gaertner
07d6c5b688 fcl-passrc: resolver: check record/type helper static
git-svn-id: trunk@41188 -
2019-02-03 16:28:25 +00:00
marco
91fd2396fc * patch from mantis 34851 committed. use size in bits to set result of openbit instead of a fsize*32.
git-svn-id: trunk@41185 -
2019-02-03 14:06:40 +00:00
joost
6ffe906794 * Mover {CompilerVersion} from the fppkg.cfg template to samplecfg, because
on Windows it is possible to install fpc in a location without the 
   compilerversion in the path.

git-svn-id: trunk@41184 -
2019-02-03 13:32:43 +00:00
Károly Balogh
cb5a1ed727 build/install fixes for the new sortbase unit for amiga, atari, aros and morphos
git-svn-id: trunk@41183 -
2019-02-03 02:06:32 +00:00
nickysn
c7d8bd9666 + added a sort algorithm interface that accepts a custom callback function for
exchanging two elements. This is required for TStringList.Sort (and is the
  most generic form for a sort algorithm interface that I can think of).

git-svn-id: trunk@41182 -
2019-02-03 00:33:43 +00:00
nickysn
2a0eb54fd5 + added a simple test that tests TList.Sort
git-svn-id: trunk@41181 -
2019-02-02 23:56:24 +00:00
nickysn
178217821c + added sortbase as a dependency to unit fgl in the makefiles
git-svn-id: trunk@41180 -
2019-02-02 23:22:09 +00:00
nickysn
ad677070f4 * hook TFPSList.QuickSort to also call the default sorting algorithm from sortbase
git-svn-id: trunk@41179 -
2019-02-02 23:08:25 +00:00
nickysn
59a75ea429 * use Inc() and Dec() instead of v:=v+1
git-svn-id: trunk@41178 -
2019-02-02 22:58:52 +00:00
nickysn
63f9afa6bd * fixed TFPList.Sort. Scary news: turns out we don't have any tests for
TFPList.Sort or TList.Sort... :(

git-svn-id: trunk@41177 -
2019-02-02 22:52:08 +00:00
nickysn
4ea42ab6d2 * use the sortbase sorting algorithm in fgl as well
git-svn-id: trunk@41176 -
2019-02-02 22:49:39 +00:00
nickysn
4082b8c7fc + added and implemented QuickSort_ItemList_Context
git-svn-id: trunk@41175 -
2019-02-02 21:21:07 +00:00
nickysn
7f44f2535e * the Compare parameter renamed Comparer for consistency
git-svn-id: trunk@41174 -
2019-02-02 21:08:30 +00:00
nickysn
8cf5779297 * the first parameter of QuickSort_PtrList_NoContext renamed ItemPtrs for
consistency with the other similar procedures

git-svn-id: trunk@41173 -
2019-02-02 21:07:27 +00:00
nickysn
a2a0ed53b2 * the type of the ItemCount parameter changed from PtrUInt to SizeUInt
git-svn-id: trunk@41172 -
2019-02-02 21:05:02 +00:00
nickysn
848890e54b + added the TItemListSorter_NoContext and TItemListSorter_Context procedure
types to sortbase. No implementation for them yet. They will allow sorting
  an array with elements of arbitrary size (e.g. array of records).

git-svn-id: trunk@41171 -
2019-02-02 21:03:10 +00:00
nickysn
25f6da7066 * added PtrList to the names of the current sort algorithm callback functions and
types, to indicate they sort a list of pointers

git-svn-id: trunk@41170 -
2019-02-02 20:56:59 +00:00
nickysn
e8dc54c768 + added TList.Sort overload with a sorting algorithm parameter
git-svn-id: trunk@41169 -
2019-02-02 20:31:16 +00:00
nickysn
c24d525b9f * compilation fixes for many platforms after r41167
git-svn-id: trunk@41168 -
2019-02-02 20:22:07 +00:00
nickysn
248fd313f8 + introduced unit SortBase, which implements the foundation for pluggable
sorting algorithms. A default QuickSort implementation is provided by the
  unit. Other units can be added, to provide other sorting algorithms (e.g.
  HeapSort, MergeSort, IntroSort, etc.)
* TList and TFPList updated to use the current default sorting algorithm defined
  in SortBase for their .Sort method.

git-svn-id: trunk@41167 -
2019-02-02 20:06:50 +00:00
Jonas Maebe
b1a2b405ea * TMultiReadExclusiveWriteSynchronizer: removed some unnecessary barriers and
added some potentially missing ones

git-svn-id: trunk@41166 -
2019-02-02 15:19:32 +00:00
Jonas Maebe
20c4992ac9 - removed data race test with mixed and writers, because the modifications
to the global variable in the read-locked sections could cause
    false positives regarding detecting whether nothing got changed
    during a write-locked section due to lack of read/write dependencies

git-svn-id: trunk@41165 -
2019-02-02 15:17:12 +00:00
Jonas Maebe
56fd8e1208 * fixed tinterlockedmt*.pp for architectures with weak memory consistency
models

git-svn-id: trunk@41164 -
2019-02-02 14:28:48 +00:00
michael
85f1b78162 * Fix wrong typecast, fix warning when compiling
git-svn-id: trunk@41162 -
2019-02-02 09:02:57 +00:00
Jonas Maebe
0db9ff5c39 * fixed packed bitsize calculation for types with a negative lower bound and
and upper bound just below the next power of two (mantis #34971)

git-svn-id: trunk@41161 -
2019-02-01 17:31:53 +00:00
pierre
71559c83a6 Fix parallel make for embedded rtl
git-svn-id: trunk@41159 -
2019-02-01 13:26:46 +00:00
Mattias Gaertner
e9c8d9b1b7 fcl-passrc: resolver: nicer error message on invalid set element type
git-svn-id: trunk@41157 -
2019-01-31 22:36:47 +00:00
Mattias Gaertner
8d368b0c21 pastojs fixed treating big ints as double
git-svn-id: trunk@41156 -
2019-01-31 19:50:23 +00:00
Mattias Gaertner
dd49ad6183 fcl-passrc: fixed treating big ints as extended
git-svn-id: trunk@41155 -
2019-01-31 19:50:06 +00:00
Mattias Gaertner
9aec974448 fcl-js: small optimization
git-svn-id: trunk@41154 -
2019-01-31 19:48:29 +00:00
nickysn
c5331d425a * split the routines with asm versions into strict pascal and strict asm versions
git-svn-id: trunk@41153 -
2019-01-31 15:19:45 +00:00
Mattias Gaertner
74b897b875 pastojs: not using TSelfExpr
git-svn-id: trunk@41152 -
2019-01-31 14:48:44 +00:00
Mattias Gaertner
28b945242e fcl-passrc: resolver: not using TSelfExpr
git-svn-id: trunk@41151 -
2019-01-31 14:48:25 +00:00
pierre
9299e97932 Disable pas2js for jvm compiler
git-svn-id: trunk@41150 -
2019-01-31 11:20:34 +00:00
Mattias Gaertner
d4c96dcf22 pastojs: searching units in current module directory, Delphi compatibility
git-svn-id: trunk@41149 -
2019-01-31 09:23:48 +00:00
Mattias Gaertner
6160a2ad51 pastojs: intrinsics lo/hi, issue #34964, patch from Kryvichh
git-svn-id: trunk@41148 -
2019-01-30 16:44:48 +00:00
Mattias Gaertner
70c4d45474 pastojs: fixed rtl.js
git-svn-id: trunk@41147 -
2019-01-30 15:53:58 +00:00
nickysn
e348fada6c * optimizations in SetVisualX and SetActiveX by using a table, instead of a case statement
git-svn-id: trunk@41146 -
2019-01-30 15:49:00 +00:00
Mattias Gaertner
dd2fc17d51 pastojs: nicer -Jm error message, check for (a,b)[]
git-svn-id: trunk@41145 -
2019-01-30 14:10:31 +00:00
Mattias Gaertner
569bd80cec fcl-passrc: parser: fixed self.a[], self.a()
git-svn-id: trunk@41144 -
2019-01-30 14:09:32 +00:00
nickysn
7a15e4b0a2 * optimizations in SetActive200 and SetActive350
git-svn-id: trunk@41143 -
2019-01-30 12:56:17 +00:00
pierre
202c4f86c0 Disable jvm-android as fcl-json is not supported for this target
git-svn-id: trunk@41142 -
2019-01-30 12:55:04 +00:00
Károly Balogh
6c87b89e45 atari: fpc now searches for the compiler with .ttp extension, as that's the default on Atari
git-svn-id: trunk@41141 -
2019-01-30 10:48:27 +00:00
pierre
beec828647 Fix cycling of arm compiler starting with release ppcarm 3.0.4
git-svn-id: trunk@41140 -
2019-01-30 10:48:21 +00:00
florian
2b6076a719 * compilation fixed
git-svn-id: trunk@41139 -
2019-01-29 22:06:32 +00:00
Jonas Maebe
e52cf555ab * fix loading of constants in registers in the LLVM CG if the constant
does not fit in ptrsinttype

git-svn-id: trunk@41138 -
2019-01-29 21:39:26 +00:00
Jonas Maebe
2d01fe76f6 * initialse the cgpara for the C-style varargs on ARM (needed for LLVM)
git-svn-id: trunk@41137 -
2019-01-29 21:39:23 +00:00
Jonas Maebe
96b27765f0 * replaced fstm/fldm with vstm/vldm for clang compatibility
git-svn-id: trunk@41136 -
2019-01-29 21:39:20 +00:00
Jonas Maebe
9c3e9e80a3 * fixed type correctness of and simplified the threadvar loading size
optimisation

git-svn-id: trunk@41135 -
2019-01-29 21:39:16 +00:00
Jonas Maebe
4869d0ace9 * perform extension of parameters to 32 bit for Darwin in the paraloc instead
of in the cgpara (cgpara should always correspond to the real parameter)

git-svn-id: trunk@41134 -
2019-01-29 21:39:12 +00:00