Description: rtl-generics

This file as text.
(active) Revisions in this set:
1aa8f978bcd0011be1ae5c2ac1b50874f91b6f57,cce3280fdd7befc699047a71f990b66badcf6657,a1e7a0ba09b7220db149c0cbf7a78421396e0cc6
c88751a610f1b16e942af6fe6a1265f74707c64a,574d07041ec841f44634cf28aaecb948bb5b8b11,82857174cc6efb1d562fd2a3e774485d07638f54
d5c153337711521bf418a7357fc46e89ee6557e2,c9c2a1d30d0f7d25278f98621185c397714bf8d0,45cb7d1eff9241fea5165fa135e94bc04522e0f9
d8e4544fbe384d1598f325310d417275c600eb3c,aa4136ce5227d25398b339001d1945df089a37b2,2e9a84654368830ccbca0c687e248352e0e3fb70
59d0af7f654e14101c3db04fd7f1f9d5baf29fca,b07818e51b638d29f4fb469aec8bd0a81c9d1b06,4f1329fb14a40a084391d3f9cdf10c1cf9941ddf
dfa22fb53ad7bfcdf8d2f4d51c11544be69fde19,b3e8d88f681879522c29a4b80e36a982b1d050e1,97495e93b85abce67c50d097bc09e254bd3ab2d5
e107aa5b5e0ea1dffa18359075d7f0d50836edf8,f89cd88ce295649eb924b740249b9d9b187e1111,259af2d25215b2ef1f58db9986b5d1f59b5f77ed
fc29d5ca7d7c66d5d1c5cfb6eb60e4f5fd5e428c,e1a34d3410e44b15e1a20fac41355b49ae2a824e,780c1f9c494ab9df09fb95e381f33f56cffff740
7d1bb89455dc26b4eeb8da4b90ae9f70976b2e5d,088f394440ca4f75a0aad1394bc6007814579711,886c2ab7d173b61c48249bb12609667f47473cf6
5d65194777d52c2e8b1d31a22950d4e0c1edfc4b,a2826343bbda17b2063e06c511e83e36cd9cd3e8,9627f98f7b1600f0c02b7d0ba172eb1d469d5313
72a3729ca09cb7d13025259cc8094f3d6686f694,e958ad51263c1ba5e33ea772b18bafda989b6db7

Clicking a revision will expand files
 


* Generics.Collections sorting algorithm switches to Insertion Sort if the partition is small (closer to Introsort)
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas


* TArrayHelper<>.QSort uses a simpler 'reasonable' metric that decrements from 2 log2(n) before changing to heapsort
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas


* Dotted filenames for package rtl-generics
Commit consists out of
  • A packages/rtl-generics/namespaced/System.Generics.Collections.pas
  • A packages/rtl-generics/namespaced/System.Generics.Defaults.pas
  • A packages/rtl-generics/namespaced/System.Generics.Hashes.pas
  • A packages/rtl-generics/namespaced/System.Generics.Helpers.pas
  • A packages/rtl-generics/namespaced/System.Generics.MemoryExpanders.pas
  • A packages/rtl-generics/namespaced/System.Generics.Strings.pas
  • A packages/rtl-generics/namespaces.lst
  • M packages/rtl-generics/src/generics.collections.pas
  • M packages/rtl-generics/src/generics.defaults.pas
  • M packages/rtl-generics/src/generics.hashes.pas
  • M packages/rtl-generics/src/generics.helpers.pas
  • M packages/rtl-generics/src/generics.memoryexpanders.pas
  • M packages/rtl-generics/src/generics.strings.pas


Re-enable QSort killer O(N²) detection, make it deterministic and instant, and make the killer itself universal.
Commit consists out of
  • M packages/rtl-generics/tests/tqsort_killer.pp


* ensure that the ATypeInfo parameter is valid before checking it
Commit consists out of
  • M packages/rtl-generics/src/generics.defaults.pas


* move check for whether to use binary comparer functionality to a static function of TComparerService
Commit consists out of
  • M packages/rtl-generics/src/generics.defaults.pas


* fix gitlab 0040331: for enumeration with holes (that don't have type information) use the binary comparers
+ added test
Commit consists out of
  • M packages/rtl-generics/src/generics.defaults.pas
  • A tests/webtbs/tw40331.pp


* Enable compilation for webassembly
Commit consists out of
  • M packages/rtl-generics/src/generics.hashes.pas


* Make dictionary constructor behave as Delphi does in absence of comparer
Commit consists out of
  • M packages/rtl-generics/src/inc/generics.dictionaries.inc


* Delphi compatible hash again compatible
Commit consists out of
  • M packages/rtl-generics/src/generics.hashes.pas


* Add TList.list property for Delphi compatibility. Fixes gitlab 0040642
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas


* The order of calling class constructors is not guaranteed.
But LookupExtendedEqualityComparer is called during class constructor of another class.
So it needs to init tables, or it returns a nil result.
This results in a crash when the comparer is used because FEqualitycomparer is nil.
Commit consists out of
  • M packages/rtl-generics/src/generics.defaults.pas


* Added Delegatedcomparer for Delphi compatibility
Commit consists out of
  • M packages/rtl-generics/src/generics.defaults.pas


* Add TList.ExtractAt for delphi compatibility
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas


* added cnDeleting, cnExtracting,cnAdding to TCollectionNotification for Delphi compatibility
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas


* Add function reference version of TComparer.Construct
Commit consists out of
  • M packages/rtl-generics/src/generics.defaults.pas


GetMutableValue and TryGetMutableValue for fcl-stl.TMap and rtl-generics.generics.TDictionary
Commit consists out of
  • M packages/fcl-stl/src/gmap.pp
  • M packages/rtl-generics/src/inc/generics.dictionaries.inc
  • M packages/rtl-generics/src/inc/generics.dictionariesh.inc


* Delphi compatible TCollection.Sort() using helper
Commit consists out of
  • M packages/rtl-generics/src/generics.defaults.pas
  • M rtl/objpas/classes/classesh.inc
  • M rtl/objpas/classes/collect.inc


* patch by foxpas to disable use of crc32 instructions on x86_64-darwin as they apparently don't work, resolves gitlab 0040344
Commit consists out of
  • M packages/rtl-generics/src/generics.hashes.pas


* Add TListRemoveItem, for delphi compatibility
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas


* When raising error, display missing key value as string, if possible
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas
  • M packages/rtl-generics/src/generics.strings.pas


* More routines need to display missing key name
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas
  • M packages/rtl-generics/src/generics.strings.pas
  • M packages/rtl-generics/src/inc/generics.dictionaries.inc


* Copy function for array helper
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas
  • M packages/rtl-generics/src/generics.strings.pas


* Reduce number of warnings and hints
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas
  • M packages/rtl-generics/src/generics.defaults.pas
  • M packages/rtl-generics/src/inc/generics.dictionaries.inc
  • M packages/rtl-generics/src/inc/generics.dictionariesh.inc


* patch by Alexander (Rouse_) Bagel: TArrayHelper.BinarySearch, when searching
for an element that is obviously missing from the array, should return
the position where the element should have been, but instead it reset AFoundIndex to -1, resolves gitlab 0040867
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas
  • A tests/tbs/tb0716.pp


* Implement TList.pack. Patch by Alexander Bagel. Fixes issue gitlab 0040927
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas
  • A tests/tbs/tb9000.pp


Reducing indirect addressing to out parameters
Commit consists out of
  • M packages/rtl-generics/src/inc/generics.dictionaries.inc


* TList<>.Pack() with method pointer parameter already passes Default(T) to the check function, so use R instead of Default(T) in the Pack() overload without method pointer
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas


- remove unnecessary subclassing inside TCustomAVLTreeMap<>
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas


* disable notes for the Collections.Generics unit
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas


- remove further unnecessary sub classing of a specialization
Commit consists out of
  • M packages/rtl-generics/src/inc/generics.dictionariesh.inc


* Add delphi-compatible TList constructor with array of values
Commit consists out of
  • M packages/rtl-generics/src/generics.collections.pas