mORMot and Open Source friends
File History
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History of SynCommons.pas

2020-10-19
17:15
{6150} some Delphi revisions have trouble with "object" as own method parameters (e.g. IsEqual) so we force to use "record" type if possible for TSynDate and TSynSystemTime file: [8996554ef1] check-in: [07068d6635] user: ab branch: trunk, size: 2278907
2020-10-15
17:26
{6149} introducing TrimU() function alias to Trim() for RawUTF8 file: [089435d8a2] check-in: [d9ebbcfb73] user: ab branch: trunk, size: 2278457
2020-09-28
08:39
{6140} published TTextWriter.HumanReadableLevel file: [e22b922dc9] check-in: [f7639d78a8] user: ab branch: trunk, size: 2277980
08:38
{6139} fixed TTextWriter.AddJSONToXML file: [0872487610] check-in: [31e129b231] user: ab branch: trunk, size: 2277827
2020-09-14
07:35
{6135} minor refactoring and tests enhancements file: [586f1f6510] check-in: [80b1e2863d] user: ab branch: trunk, size: 2277807
07:30
{6133} fixed Iso8601ToDateTimePUTF8CharVar/TryEncodeDate sign issue file: [7bb3efa204] check-in: [0050d762cc] user: ab branch: trunk, size: 2278559
2020-08-24
14:40
{6121} RemoveCommentsFromJSON() will also remove a trailing commas - from https://github.com/synopse/mORMot/pull/346 file: [dee05ebd7c] check-in: [0f4228ff20] user: ab branch: trunk, size: 2278421
2020-08-21
16:55
{6118} escape the "tilde" in URI, trusting the practice, and not the last RFC - check https://synopse.info/forum/viewtopic.php?pid=32796 file: [0e55b458d0] check-in: [bbcf6fdbdd] user: ab branch: trunk, size: 2277952
2020-08-13
11:09
{6113} proven TAESGCMEngine code - including extensive unit tests file: [638cb07bb4] check-in: [7241206bc5] user: ab branch: trunk, size: 2277791
2020-08-12
19:38
{6112} initial TAESGCMEngine code - not tested yet! file: [a10d5c9084] check-in: [36ddc13d0a] user: ab branch: trunk, size: 2277694
2020-08-01
07:50
{6103} fixed FindFiles sub-folders search under Windows - from https://github.com/synopse/mORMot/pull/336 file: [830c396050] check-in: [9310fdfeaa] user: ab branch: trunk, size: 2277167
2020-07-31
16:14
{6102} circumvent URW1111 on Delphi 2010 and URW1136 on Delphi XE file: [1ca79ced21] check-in: [80cad9a07f] user: ab branch: trunk, size: 2277170
09:51
{6101} ensure TTimeLogBits.FullText will handle 0 value as valid date file: [42a8e91dc1] check-in: [40466c1e3d] user: ab branch: trunk, size: 2277124
2020-07-30
10:21
{6097} refactored ISO-8601 date/time conversion file: [1308fd23b9] check-in: [b415f46419] user: ab branch: trunk, size: 2277151
10:20
{6096} enhanced TTextWriter stream flush file: [6007435239] check-in: [1ac797a522] user: ab branch: trunk, size: 2275015
2020-07-22
09:17
{6093} specify how to output a '%' character via FormatUTF8() file: [4c6f61eb1d] check-in: [bc360e800a] user: ab branch: trunk, size: 2274605
2020-07-17
14:12
{6091} try to circumvent Delphi 10.4 optimizer bug file: [f31b4b1948] check-in: [c2a35d8687] user: ab branch: trunk, size: 2274460
2020-07-13
08:03
{6088} try to circumvent Delphi 10.4 optimization issue file: [890212938c] check-in: [832b1be8bb] user: ab branch: trunk, size: 2274358
07:14
{6086} optimized TSQLTableJSON performance for single JSON use file: [044e54ca16] check-in: [7e1a666c3b] user: ab branch: trunk, size: 2274256
2020-06-24
14:44
{6066} enhanced OpenBSD and FreeBSD support file: [6ad8bf5b8a] check-in: [7da305dde0] user: ab branch: trunk, size: 2274258
2020-06-13
10:08
{6054} two minor fixes - intercept exception in case FPCUSEVERSIONINFO is defined but no resource info is available - use UTF-8 codepage if none is defined file: [44b30bd7d5] check-in: [6273ad17b3] user: ab branch: trunk, size: 2274217
2020-06-10
14:07
{6048} a lot of fixes for proper i386 Linux (and POSIX) support - FPC codegen for Linux i386 changed late 2019 (SVN rev 43005 to 43014) to force a stackframe generation: https://www.mail-archive.com/fpc-devel@lists.freepascal.org/msg38885.html - ensure stack is always 16-bytes aligned during SOA calls - also fixed a problem with epoll struct file: [cc9124fcfe] check-in: [c7be2576c0] user: ab branch: trunk, size: 2273993
2020-06-05
17:05
{6045} try to circumvent issues of IObjectDynArray with Delphi 10.4 Sydney - the order of fields finalization may have changed, so the whole purpose of wrapper may have become incompatible with Delphi 10.4 and up file: [603bf0d381] check-in: [73a73e3bf8] user: ab branch: trunk, size: 2271869
2020-06-04
19:37
{6041} fixed Delphi Add/Delete/Clear late-binding file: [c553e705c6] check-in: [acc12807e6] user: ab branch: trunk, size: 2271647
13:48
{6038} disabled write late-binding methods (Add/Clear/Delete) on FPC - they triggered random GPF so are unsafe due to RTL restrictions file: [67a55420f9] check-in: [7bbf6c8e97] user: ab branch: trunk, size: 2271610
2020-06-03
20:27
{6037} let Getmem(0) act like GetMem(1) just like FPC RTL heap.inc file: [c730bb192f] check-in: [442eac1200] user: ab branch: trunk, size: 2271481
15:05
{6036} new FPC_X64MM_WIN explicit conditional - SynFPCx64MM is not fully validated on Windows yet file: [e11e8657d8] check-in: [dde5820b3c] user: ab branch: trunk, size: 2271485
2020-06-02
16:33
{6032} rewritten fpc_ansistr_compare/fpc_ansistr_compare_equal in x86_64 asm file: [3d55b3ec51] check-in: [d4b447daf1] user: ab branch: trunk, size: 2271480
2020-06-01
15:13
{6027} fixed Iso8601ToDateTimePUTF8CharVar() to handle len parameter file: [363e0ef6e9] check-in: [1a424ecb13] user: ab branch: trunk, size: 2268519
13:45
{6024} fixed Iso8601ToTimeLogPUTF8Char() to properly handle L parameter file: [2095dbb2e8] check-in: [b28bbab8c9] user: ab branch: trunk, size: 2268463
10:39
{6023} small optimizations to FillCharFast and FPC RTL patches file: [67056fc3b1] check-in: [a183adcbf3] user: ab branch: trunk, size: 2268451
2020-05-31
17:40
{6020} ensure FillCharFast() rejects count<0 just as the FPC RTL - seems like FPC generics code assumes this file: [e49bb23855] check-in: [69f664c486] user: ab branch: trunk, size: 2268765
2020-05-30
14:06
{6019} enhanced datetime to iso function file: [1f3f2b924d] check-in: [b5eb26cc47] user: ab branch: trunk, size: 2268694
2020-05-29
16:39
{6016} introducing DOUBLE_SAME constant - 1E-11 seems less paranoid than 1E-12 file: [598d1871ba] check-in: [a9f3a31f99] user: ab branch: trunk, size: 2268655
07:56
{6009} fix FloatStrCopy for -.01 .02: should be -0.01 0.02 - thanks mpv for https://github.com/synopse/mORMot/pull/312 file: [04756e2295] check-in: [80834b10c4] user: ab branch: trunk, size: 2268407
2020-05-28
15:50
{6003} the FPC RTL x86_64 asm patches are now disabled by default - unless DOPATCHTRTL conditional is defined file: [cd9d7a0724] check-in: [e86090e08f] user: ab branch: trunk, size: 2268503
2020-05-17
19:56
{6000} upcoming Delphi 10.4 codename seems to be "Sydney" file: [191af3d913] check-in: [cb25c600d5] user: ab branch: trunk, size: 2268453
16:23
{5999} rewritten FPC SetLength(ansistring) in asm for SynFPCx64MM file: [edd4ab39a6] check-in: [e112c3111c] user: ab branch: trunk, size: 2268402
10:51
{5997} leverage Unicode string support - noticed after https://github.com/synopse/mORMot/pull/311 file: [fd9fbdc599] check-in: [116ca7cd50] user: ab branch: trunk, size: 2266894
10:21
{5996} enhanced package support - from https://github.com/synopse/mORMot/pull/311 file: [2086ce7475] check-in: [3a3a00d76a] user: ab branch: trunk, size: 2266874
2020-05-16
19:56
{5994} patch fpc_ansistr_concat (and *_multi) on FPC_X64/POSIX at runtime file: [dd549cfbc4] check-in: [8aaff02aac] user: ab branch: trunk, size: 2266803
2020-05-14
16:06
{5990} restore expected GetExtended() behavior on error - it should return the parsed value, just like the Delphi x87 asm file: [28935e800a] check-in: [7cedb85058] user: ab branch: trunk, size: 2260142
2020-05-13
12:34
{5984} better SynFPCx64MM integration to raw SynCommons process file: [7a457a81fb] check-in: [2a97ff47d5] user: ab branch: trunk, size: 2260181
2020-05-10
12:18
{5976} x86_64 asm patches for fpc_dynarray_* and fpc_unicodestr_* raw functions file: [3ae0cb5719] check-in: [566502b36c] user: ab branch: trunk, size: 2259555
2020-05-09
19:46
{5974} optimized FPC RTL fpc_ansistr* patches file: [e8e6e1f819] check-in: [1aa8013810] user: ab branch: trunk, size: 2257570
14:53
{5973} redirect FPC RTL raw fpc_ansistr* functions to some optimized x86_64 asm file: [6feba44f82] check-in: [166a84cb5f] user: ab branch: trunk, size: 2256902
2020-04-30
14:46
{5966} ensure TDynArray.LoadFrom identify mORMot2 new layout with hash32=0 file: [edc2db6bbd] check-in: [b28c8e6689] user: ab branch: trunk, size: 2254315
2020-04-27
19:51
{5964} fixed TSynAuthenticationAbstract exceptions file: [0c7e4d6f9c] check-in: [65b15f27d2] user: ab branch: trunk, size: 2254262
2020-04-21
09:14
{5960} THttpApiServer: ensure processing threads actually ended before Free file: [86be05d059] check-in: [210562c189] user: ab branch: trunk, size: 2254231
2020-04-16
11:37
{5955} fixed some typos - no functional change file: [9ddcd0b8ed] check-in: [c5711a4971] user: ab branch: trunk, size: 2254230
2020-04-08
23:33
{5945} fixed TRawUTF8InterningSlot.Clean file: [be504021d1] check-in: [80f9619cd1] user: ab branch: trunk, size: 2254227
23:28
{5944} fixed FPC compilation file: [8f697fc62a] check-in: [73f7c5d32e] user: ab branch: trunk, size: 2254226
23:21
{5942} optimized TRawUTF8Interning file: [2996454d7a] check-in: [b9669d49e4] user: ab branch: trunk, size: 2254281
23:18
{5941} fixed memory leak in TDocVariant.ToJSON file: [0eda34bff4] check-in: [b8528d8633] user: ab branch: trunk, size: 2254158
2020-04-07
08:31
{5938} introducing DEFAULT_WRITEOPTIONS global - including now woSQLRawBlobAsBase64 by default - to circumvent problems reported by Alf file: [4df7e9f259] check-in: [1bb589f43f] user: ab branch: trunk, size: 2254023
2020-04-05
13:52
{5935} fixed GetExtended() with xxxE32 exponent file: [ab5c0a4835] check-in: [40ff1867d7] user: ab branch: trunk, size: 2254132
2020-04-04
23:10
{5934} ensure OCI_AL32UTF8 is used by default for UTF-8 encoding in Oracle databases file: [c0b9567a9c] check-in: [5e7dc66fa1] user: ab branch: trunk, size: 2254170
10:13
{5933} fixed Delphi compilation file: [eb0a44465b] check-in: [490c632f56] user: ab branch: trunk, size: 2254167
10:06
{5932} introducing IsLeapYear() - and optimized Div100/TryEncodeDate/Int32ToStr file: [d7a8f0b5b3] check-in: [8fdde7e58e] user: ab branch: trunk, size: 2253606
2020-04-03
10:05
{5930} several optimizations - mainly about UrlEncode - with no functional change file: [ad7be603ee] check-in: [3da6eafd58] user: ab branch: trunk, size: 2253168
2020-03-31
16:24
{5925} fixed/enhanced TextToVariantNumberType/TextToVariantNumberTypeNoDouble file: [fb508bd877] check-in: [fe73500966] user: ab branch: trunk, size: 2252919
16:22
{5924} circumvent a Lazarus bug which crashed the IDE when browsing mORMot code (at least I am not able to reproduce it any more) file: [fd676ee403] check-in: [283e755d8b] user: ab branch: trunk, size: 2252272
2020-03-30
22:06
{5923} rewritten GetExtended() to use a 64-bit integer for the digits - also ensure regressions tests are a little relaxed about floating point precision file: [087e5e2273] check-in: [9b283604c6] user: ab branch: trunk, size: 2252280
12:27
{5922} fixed JSONEncode() in Delphi Unicode - from TTextWriter.AddJSONEscapeW - thanks mapes for the patch! file: [db99e5e833] check-in: [f06626ecbf] user: ab branch: trunk, size: 2252505
12:17
{5921} tuned scientific notation for floating point values - also optimized d2a_gen_digits file: [f9770998d8] check-in: [41b8b834bd] user: ab branch: trunk, size: 2252442
2020-03-29
17:35
{5920} small enhancements to DoubleToAscii() file: [a78b15f119] check-in: [4af900fc91] user: ab branch: trunk, size: 2252393
2020-03-28
16:29
{5918} stabilized d2a Grisu conversion on all targets but Delphi Win32 (which compiler is inefficient with 64-bit arithmetic) - includes updated benchmark numbers file: [e61cc58280] check-in: [4a50dee9e8] user: ab branch: trunk, size: 2252003
10:01
{5917} enabled double to text Grisu conversion on Delphi Win64 - includes some benchmarking notes file: [c39b961064] check-in: [98fdbf5c8d] user: ab branch: trunk, size: 2251346
01:26
{5915} fixed awful regression in JSON parsing introduced yesterday file: [b1395cef68] check-in: [3a22f4e370] user: ab branch: trunk, size: 2250141
01:14
{5914} added some new tests - and fix Delphi issue about float to text file: [0c9e09d49b] check-in: [3f7757fcce] user: ab branch: trunk, size: 2250133
00:12
{5911} another (late) pass on d2a() file: [ee5352b188] check-in: [16a68e98f2] user: ab branch: trunk, size: 2250180
2020-03-27
23:21
{5909} optimized FloatStringNoExp() and SynLZDecompress1() file: [a574e0828d] check-in: [9ef9de7398] user: ab branch: trunk, size: 2250270
22:56
{5908} huge refactoring of floating-point to text/JSON conversion - introducing Fabian Loitsch's Grisu algorithm especially compiled for double values (on FPC) file: [8c46403fe5] check-in: [5f11b8f62b] user: ab branch: trunk, size: 2250136
2020-03-26
18:07
{5907} rewritten CompareMemSmall file: [7340e1c814] check-in: [7c3efd7286] user: ab branch: trunk, size: 2245296
17:38
{5905} rewritten MoveSmall function file: [78ebe6fd5a] check-in: [2789bd7c15] user: ab branch: trunk, size: 2245186
16:48
{5904} refactored TJsonWriter buffer to use a stack buffer at first - increase performance when up to 8KB of JSON is generated: which is likely to be the case for most Retrieve() statements - then an increasing heap buffer (up to 1MB) will be used file: [065915b7fe] check-in: [0025ac3b41] user: ab branch: trunk, size: 2245282
16:44
{5903} TTextWriter.FlushToStream will auto-resize also from stack buffer - could increase a lot the performance in some situations file: [b43ac4e2c8] check-in: [d646ed82b6] user: ab branch: trunk, size: 2245229
09:01
{5902} tuned GetNextFieldProp() to use our lookup tables for branchless code file: [c0f003bcbc] check-in: [f973a80a13] user: ab branch: trunk, size: 2245165
00:33
{5900} refactoring of JSON/text/numbers/uri parsing - using optimized lookup tables for branchless decoding - FPC is not efficient when compiling P^ in [....] or case P^ of .... file: [63587f2721] check-in: [d194dc17ef] user: ab branch: trunk, size: 2245079
2020-03-25
15:49
{5899} another speed-up of JSON serialization process (optimized escape algorithm to avoid branches) file: [035bd2a7d3] check-in: [3c413d1e92] user: ab branch: trunk, size: 2245422
09:41
{5896} optimized hexadecimal, octal and base-64 encoding - targetting the FPC compiler file: [163c44ec52] check-in: [98c0999c28] user: ab branch: trunk, size: 2244711
2020-03-24
15:53
{5888} optimized some integer-array processing functions file: [0fc608f733] check-in: [0c0cbf6fb3] user: ab branch: trunk, size: 2244343
2020-03-23
16:29
{5885} optimized TSynInvokeableVariantType.IsOfType() file: [df594f545d] check-in: [e83330c7e1] user: ab branch: trunk, size: 2244282
2020-03-22
22:32
{5880} minor refactoring - no functional change file: [ecbe9bffbc] check-in: [e7978bf9c8] user: ab branch: trunk, size: 2244176
11:06
{5875} reverted ISQLDBRows.RefCount check and introduced an explicit call to new ReleaseRows method file: [9dc71ca27b] check-in: [a1dfe9124e] user: ab branch: trunk, size: 2244171
02:26
{5872} optimized TRawUTF8Interning.UniqueVariant/TTextWriter.AddQuotedStr/RawByteStringToVariant/TextToVariantNumberType* functions file: [cf92938e50] check-in: [53dca73459] user: ab branch: trunk, size: 2244165
2020-03-21
23:24
{5869} defined our inlined VarClear() also for Delphi - get rid of explicit VTYPE_STATIC check file: [2c631e54a8] check-in: [010670a638] user: ab branch: trunk, size: 2244501
14:44
{5861} introduced FloatStrCopy() and fixed TTextWriter.AddFloatStr - with new regression tests file: [d4a7ed571c] check-in: [89e91a178a] user: ab branch: trunk, size: 2247127
14:31
{5860} fixed TTextWriter.AddFloatStr - with new regression tests file: [0d983842e0] check-in: [67a96437c2] user: ab branch: trunk, size: 2246739
12:06
{5857} introducing OctToBin() and HexToBinFast() functions file: [80195355f5] check-in: [a6f327ca0b] user: ab branch: trunk, size: 2245963
2020-03-20
23:02
{5854} optimized TTextWriter.AddJSONEscape which is now faster with Len=0 file: [6db4b5d986] check-in: [7b21c002ea] user: ab branch: trunk, size: 2243708
22:37
{5853} optimized TTextWriter.AddFloatStr file: [59f7fc7dd6] check-in: [cd0b5c5c88] user: ab branch: trunk, size: 2243646
19:21
{5850} fixed compilation on Unicode Delphi file: [fdab2d8a31] check-in: [c7e7a6af65] user: ab branch: trunk, size: 2243597
14:48
{5842} new Hash128Index/Hash256Index optimized functions instead of HashFound file: [249ef68d14] check-in: [249d872cc3] user: ab branch: trunk, size: 2243601
14:44
{5841} ensure GetSystemPath() won't create a \log sub-folder on Windows unless required file: [f2581169c6] check-in: [29f110c73d] user: ab branch: trunk, size: 2242270
14:43
{5840} avoid null FillCharFast/MoveFast on Darwin file: [1e1220bd78] check-in: [30ac9434dc] user: ab branch: trunk, size: 2242319
2020-03-19
19:02
{5835} new ReplaceParamsByNumbers() and BoundArrayToJSONArray() function with proper regression tests - as used by SynDBPostgre.pas file: [e1ae8c053a] check-in: [5d5f84b91c] user: ab branch: trunk, size: 2242287
12:04
{5829} introducing SynDBPostgres.pas - deep refactoring of https://github.com/synopse/mORMot/pull/287 file: [af0343a8cf] check-in: [f8b1d80028] user: ab branch: trunk, size: 2241693
09:44
{5828} small refactoring of FindNameValue/GotoNextLine for better performance file: [be99b7fef9] check-in: [e8d930ceda] user: ab branch: trunk, size: 2241633
2020-03-18
19:03
{5827} introducing FindNameValue() when FindIniNameValue() is not required file: [0d1785e40e] check-in: [9a22461857] user: ab branch: trunk, size: 2241293
10:28
{5825} some review after https://github.com/synopse/mORMot/pull/286 (still need to review SynFPCSockLIBC.inc) file: [5376828ea4] check-in: [9fcb261c21] user: ab branch: trunk, size: 2238210
2020-03-17
21:45
{5824} small comment fixes - no functional change file: [5228d7ae9c] check-in: [419da8e4cc] user: ab branch: trunk, size: 2238158
2020-03-16
21:40
{5820} small refactoring while translating existing code to mormot2 - no functional change file: [a6dcf0044a] check-in: [2c81d832dd] user: ab branch: trunk, size: 2238138
2020-03-13
09:44
{5818} fixed and optimized GetLineContains() file: [ca072a8727] check-in: [82995dad97] user: ab branch: trunk, size: 2238206
2020-03-12
20:58
{5817} fixed Delphi 6 compilation ;) file: [b392e9454a] check-in: [c6b69d160e] user: ab branch: trunk, size: 2238162
20:50
{5815} faster StrLenPas() and BufferLineLength() file: [982ab258f6] check-in: [56f226240d] user: ab branch: trunk, size: 2238110
20:49
{5814} refactored GotoNextLine() for better performance and no compiler complain file: [ac0725ba3e] check-in: [9248eaeaa1] user: ab branch: trunk, size: 2238336
20:48
{5813} fixed GetLineSize() so that it stops on #0 when PEnd=nil file: [0067901baa] check-in: [3763596bd9] user: ab branch: trunk, size: 2238342
16:58
{5812} RawUTF8ToVariant() refactoring file: [db0ed6df8c] check-in: [a3fd4cd7cb] user: ab branch: trunk, size: 2237686
14:27
{5809} GetLineSize() will use optimized BufferLineLength() and its SSE2 asm file: [3a98df233a] check-in: [b5223a0483] user: ab branch: trunk, size: 2238010
14:26
{5808} fixed IdemPCharWithoutWhiteSpace() file: [b68736734b] check-in: [c376894b0a] user: ab branch: trunk, size: 2237617
09:44
{5805} hardened "array of const" pairs input parameters file: [0f43b8b5ac] check-in: [3a4e943a37] user: ab branch: trunk, size: 2237616
09:43
{5804} new overloaded SynReplaceAll() function file: [4c16bda91b] check-in: [b0d00acf6d] user: ab branch: trunk, size: 2237520
2020-03-11
10:12
{5802} proper unit test log on FPC file: [2ff60149ba] check-in: [373e2285ca] user: ab branch: trunk, size: 2237003
00:55
{5800} fixed Darwin 64 compilation file: [1dc36d1b5f] check-in: [3d75c9b829] user: ab branch: trunk, size: 2237000
2020-03-10
19:15
{5794} small hasher use and regression tests optimizations file: [11b4c53bfa] check-in: [ee32d41ff7] user: ab branch: trunk, size: 2236860
19:12
{5793} small refactoring of dynamic array header rtti access - no functional change file: [2f14e87d38] check-in: [4ae6e3fe20] user: ab branch: trunk, size: 2236837
18:59
{5792} fixed SynCommons initialization pattern file: [989d7ca167] check-in: [4158d61402] user: ab branch: trunk, size: 2237043
11:16
{5791} fixed random socket problem on Windows after https://github.com/synopse/mORMot/commit/84f29682cd2a004111a52f7b733a5dcb8245fa12 file: [b722d03718] check-in: [1078ba0f05] user: ab branch: trunk, size: 2237138
10:50
{5790} fixed FPC Win32 target file: [57c4e5bdcb] check-in: [5d48ac1cd5] user: ab branch: trunk, size: 2236889
10:49
{5789} fixed FileOpenSequentialRead() on Delphi file: [44347845b8] check-in: [1a4cd74fc7] user: ab branch: trunk, size: 2236827
01:17
{5788} FileStreamSequentialRead() will return a THandleStream and FileOpenSequentialRead() will call fpOpen only (whereas SysUtils.FileOpen calls fpOpen + fpFlock) on POSIX - assuming FileName is UTF-8 file: [c8b0fcca4a] check-in: [b940ac651f] user: ab branch: trunk, size: 2236453
2020-03-09
13:13
{5786} refined TSynLocker / TSynObjectListLocked documentation about thread-safety file: [075d2d6df1] check-in: [d5e9c2752d] user: ab branch: trunk, size: 2236314
11:33
{5785} reduce unnecessary calls to GetTick64() OS function (clock_gettime) during normal socket processing file: [96541c2498] check-in: [606597ced5] user: ab branch: trunk, size: 2235620
00:41
{5784} introducing TSynList/TSynObjectList/TSynObjectListLocked file: [5363b78154] check-in: [1cd7d503dd] user: ab branch: trunk, size: 2235574
2020-03-08
21:41
{5783} refactored THttpApiServer and TSynThreadPool - also includes a cut-down version of https://github.com/synopse/mORMot/pull/280 file: [d3c08ad5dc] check-in: [10b0598e32] user: ab branch: trunk, size: 2231283
2020-03-07
16:05
{5782} added padding to avoid TSynThreadPool locks cpu cache line collision on 32-bit (ensure it is >128) file: [f1527feb2c] check-in: [f31fcb67b3] user: ab branch: trunk, size: 2231285
14:29
{5779} refactored crcblocks() function and its asm/SSE4.2 versions file: [beab53a912] check-in: [c1a2ae9adf] user: ab branch: trunk, size: 2231202
2020-03-06
16:12
{5778} optimized TSynAnsiFixedWidth conversions file: [3906475129] check-in: [fea1bfe949] user: ab branch: trunk, size: 2229487
16:10
{5777} ensure SynchFolders() includes the number of synched files from sub-folders file: [772da3d7d3] check-in: [8d100cfe64] user: ab branch: trunk, size: 2229516
14:06
{5773} refactoring after merged https://github.com/synopse/mORMot/pull/276 - ARM compatibility file: [1ca366c925] check-in: [aece4bdb97] user: ab branch: trunk, size: 2229504
11:02
{5772} introducing USERECORDWITHMETHODS conditional to use "record" instead of "object" and circumvent Delphi bugs in an unified way file: [5bca202ce4] check-in: [969350c8fa] user: ab branch: trunk, size: 2229376
10:59
{5771} fixed Delphi unexpected Warning in SynchFolders() file: [0d74ffa0f7] check-in: [8f2452f963] user: ab branch: trunk, size: 2229260
2020-03-05
17:58
{5769} fixed SynchFolders() with SubFolder=true file: [4a8345e640] check-in: [fc9c17602a] user: ab branch: trunk, size: 2229023
17:49
{5768} new SynchFolders/SearchRecValidFolder/HashFile functions file: [971bec3ddc] check-in: [f01266e3a1] user: ab branch: trunk, size: 2229023
13:35
{5767} another try to prevent F2084 Internal Error: C2130 on Delphi XE3 file: [cb1a8bad52] check-in: [164a3ef3ae] user: ab branch: trunk, size: 2225840
13:26
{5766} try to prevent F2084 Internal Error: C2130 on Delphi XE3 file: [ff3a1d84ac] check-in: [b178f522b6] user: ab branch: trunk, size: 2225797
2020-03-04
14:16
{5764} Android ARM/AARCH64 compatibility by Alfred - from https://github.com/synopse/mORMot/pull/275 file: [debf3ca64a] check-in: [a5e647d77a] user: ab branch: trunk, size: 2225669
2020-03-03
20:59
{5763} optimized GetExtended/GetCardinal overloaded functions file: [15154d1436] check-in: [7193d6fc69] user: ab branch: trunk, size: 2225043
20:24
{5762} optimized GetInteger() overloaded functions file: [290afadeb7] check-in: [22d2c1b775] user: ab branch: trunk, size: 2224915
16:16
{5758} removed comments about changes/versioning which were old and redundant to our fossil/github source code management systems file: [c0764eb9a8] check-in: [a59d412f59] user: ab branch: trunk, size: 2224535
15:22
{5756} deep refactoring of SynCommons.pas and mORMot.pas to move code into SynTable.pas - trying to reduce bloated size of those units, which tends to make the IDE very unstable file: [59dd077fb6] check-in: [7148a6fa61] user: ab branch: trunk, size: 2224703
15:17
{5755} enhanced cross-compiler string/dynarray internal header access file: [8ad5693c07] check-in: [d63a4f6a0b] user: ab branch: trunk, size: 2362094
2020-03-02
20:09
{5754} refactored TDocVariant sorting methods file: [de23842736] check-in: [8b408e2a75] user: ab branch: trunk, size: 2363199
20:08
{5753} new overloaded FindPropName() function file: [175fc090af] check-in: [94afbffb75] user: ab branch: trunk, size: 2362370
11:37
{5752} try to achieve ms resolution on Windows 8+ using GetSystemTimePreciseAsFileTime() - introducing UnixMSTimeUTCFast() new function when 10-16 ms resolution is enough file: [4bb109ffde] check-in: [9a8e9b23ad] user: ab branch: trunk, size: 2362794
09:44
{5751} small refactoring - no functional change file: [b477593e84] check-in: [b1a9240dec] user: ab branch: trunk, size: 2360738
2020-03-01
18:32
{5750} optimized variant arrays QuickSort file: [43448f142d] check-in: [a5482082af] user: ab branch: trunk, size: 2360721
18:31
{5749} optimized (AnsiString) dynamic arrays clearing process file: [2ead4f23f4] check-in: [3953ebe717] user: ab branch: trunk, size: 2360493
2020-02-28
18:49
{5748} deep rewrite of dynamic arrays clearing process - for TDynArray/TSynDictionary and also at lower level - for better performance and consistency file: [1087e57e30] check-in: [ea62c390fa] user: ab branch: trunk, size: 2359195
11:38
{5747} refactored TSynInvokeableVariantType/TDocVariant property lookup file: [39222b5ed7] check-in: [781fa95be8] user: ab branch: trunk, size: 2356495
11:35
{5746} optimized FindShortStringList* functions file: [4ccd1663be] check-in: [0240c86985] user: ab branch: trunk, size: 2354456
11:32
{5745} optimized GetNextItemShortString/GetNextTChar64 file: [791f5a736b] check-in: [004a8c47ea] user: ab branch: trunk, size: 2353885
2020-02-26
11:11
{5744} fixed longstanding bug in TDocVariantData.InitJSONInPlace file: [bb969203d3] check-in: [a1b612b1c2] user: ab branch: trunk, size: 2353548
10:45
{5743} introducing JSONToVariant/JSONToVariantInPlace - after fixes from https://github.com/synopse/mORMot/pull/274 file: [11d969c9c0] check-in: [a583e69e11] user: ab branch: trunk, size: 2353548
07:57
{5742} FillZero() rewrite - no functional change file: [a6791ec700] check-in: [8272390537] user: ab branch: trunk, size: 2351199
2020-02-25
18:51
{5741} rewritten FastFindWordSorted() x86_64 asm as a branchless loop file: [bc4829e374] check-in: [711e4b96dd] user: ab branch: trunk, size: 2351407
18:32
{5739} optimization pass - especially about FastFindPUTF8CharSorted() and IntegerScan/Index/Exists Int64Scan/Index/Exists file: [582c641819] check-in: [10500a3d26] user: ab branch: trunk, size: 2351268
18:29
{5738} new AnyScanExists() function file: [7f1b3d734a] check-in: [5520166218] user: ab branch: trunk, size: 2347366
07:20
{5737} actual changes to prefer "mov eax,-1" to "or eax,-1" which is sometimes slower due to an unexpected dependency to previous eax value :) file: [1dbedc8ffc] check-in: [12c15038e3] user: ab branch: trunk, size: 2345950
07:18
{5735} enhanced FastFindIntegerSorted/FastFindInt64Sorted x86_64 asm to use branchless implementation file: [5b718571c5] check-in: [300be0a304] user: ab branch: trunk, size: 2345950
2020-02-24
20:09
{5734} added FastFindIntegerSorted/FastFindInt64Sorted/FastFindWordSorted in fast x86_64 asm file: [d44a9dad61] check-in: [7bc6b02066] user: ab branch: trunk, size: 2345876
17:40
{5733} reimplemented crc32cfast() in fast x86_64 / i386 asm using Maxim feedback file: [a1eb590818] check-in: [2252d725bf] user: ab branch: trunk, size: 2343883
11:13
{5730} favor movaps/movups against movadq/movudq since it performs the same and is one byte shorter - also includes minor x86_64 asm refactoring file: [6a47a10776] check-in: [26c04e2737] user: ab branch: trunk, size: 2342920
2020-02-23
11:50
{5729} fixed some keyboard typo just before commit! :( file: [91bd5cce15] check-in: [ba1a1803d4] user: ab branch: trunk, size: 2342793
2020-02-22
10:14
{5728} some fixes to TRawUTF8List - mainly documentation and thread-safety file: [021110e4d3] check-in: [3b88751d91] user: ab branch: trunk, size: 2342798
2020-02-21
16:37
{5724} extended UrlEncodeJsonObject to allow exclusion of query delimiter ('?') from https://github.com/synopse/mORMot/pull/272 file: [9757faffdc] check-in: [6a9df302e4] user: ab branch: trunk, size: 2341567
16:20
{5722} full rewrite of TRawUTF8List - confusing TRawUTF8ListHashed/Locked are now deprecated and will be removed soon file: [56a6cd7bac] check-in: [28a7876602] user: ab branch: trunk, size: 2341138
16:17
{5721} rewritten crc32csse42() for Win32/Linux32 file: [c8ee376519] check-in: [915c283293] user: ab branch: trunk, size: 2350176
16:16
{5720} several fixes and enhancements to TDynArray file: [9aa5c40191] check-in: [17f4a9e193] user: ab branch: trunk, size: 2350331
16:14
{5719} new overloaded FindRawUTF8(PRawUTF8) efficient search function file: [c0f047069f] check-in: [5356dfdc59] user: ab branch: trunk, size: 2349806
16:13
{5718} new i386/x86_64 asm version of Hash32() - twice faster than pure pascal code file: [4f0bc4e06d] check-in: [474b8c45c7] user: ab branch: trunk, size: 2349219
16:11
{5717} enhanced Darwin compatibility file: [691d70671b] check-in: [effbca87b9] user: ab branch: trunk, size: 2347125
2020-02-19
11:24
{5514} fixed Delphi Win64 compilation and included some other asm optimizations file: [a52342696a] check-in: [1928e9192b] user: ab branch: trunk, size: 2345831
01:23
{5512} avoid performance penalty on Intel CPU due to TVarData.VType field being 16-bit file: [8e46af86d0] check-in: [3429cfe5e4] user: ab branch: trunk, size: 2346117
2020-02-18
22:59
{5510} slightly optimized FillCharFast() file: [91b5108b73] check-in: [90ae7a20d2] user: ab branch: trunk, size: 2345281
22:18
{5508} get rid of unneeded TObjectHash - we can use TDynHasher instead file: [27838021b3] check-in: [ec59c65f99] user: ab branch: trunk, size: 2345330
22:17
{5507} ensure TDynArray down resize won't reallocate memory each time for T*ObjArrays file: [69654e314e] check-in: [3e392e4efd] user: ab branch: trunk, size: 2350417
22:16
{5506} optimization via branchless comparison and explicit byte() conversion file: [8d14848842] check-in: [836b5a90b2] user: ab branch: trunk, size: 2350554
22:14
{5505} use MoveFast() when MoveSmall() has little benefit file: [4c41a841fa] check-in: [0b5e0fd18b] user: ab branch: trunk, size: 2351240
22:10
{5504} published RawObjectsClear() for efficient FreeAndNil() over an array of objects file: [ca72b89741] check-in: [b04f578f36] user: ab branch: trunk, size: 2351883
12:37
{5502} hardened RecordSave(TSynTempBuffer) file: [432b9e3253] check-in: [88d7079047] user: ab branch: trunk, size: 2351844
12:34
{5501} fixed comments/documentation file: [a3fade9ed8] check-in: [70ca8e19a5] user: ab branch: trunk, size: 2351618
12:33
{5500} new optimized asm versions of most-used sorting/comparison functions file: [0b234c7d3d] check-in: [a9260a5b4b] user: ab branch: trunk, size: 2356444
12:32
{5499} refactored TRawUTF8ListHashed file: [8b49cef91a] check-in: [36ae6397e1] user: ab branch: trunk, size: 2354614
12:31
{5498} enhanced TDynArrayHasher/TDynArrayHashed file: [d374dbc3cc] check-in: [0360ff1aa6] user: ab branch: trunk, size: 2354282
12:29
{5497} optimized ToVarUInt32/ToVarUInt64 functions file: [83cb3b9277] check-in: [25a40b92b0] user: ab branch: trunk, size: 2353406
12:26
{5496} new TSortedIntegerArray object storage file: [141d9b73ba] check-in: [230e9ba953] user: ab branch: trunk, size: 2353338
2020-02-17
09:42
{5494} introducing TPrecisionTimer.Started/StopInMicroSec file: [525f6b721d] check-in: [af830a0313] user: ab branch: trunk, size: 2351582
09:13
{5493} new overloaded UrlEncodeJsonObject() with explicit copy of the JSON input buffer file: [55c62994c5] check-in: [668368aeba] user: ab branch: trunk, size: 2350978
2020-02-16
11:26
{5491} some fixes for hash reduction in TDynArrayHasher/TSynDictionary file: [437f20628b] check-in: [daa3dd9857] user: ab branch: trunk, size: 2350192
2020-02-15
23:07
{5490} use Lemire's algorithm for hash reduction in TDynArrayHasher/TSynDictionary allowing to use primes with no costly integer modulo computation (especially for CPU64 or FPC compilers with efficient 64-bit multiplication) file: [deeb0c83d4] check-in: [0a8d239214] user: ab branch: trunk, size: 2350187
12:42
{5489} fixed Mac OS X compilation file: [7186834d34] check-in: [0d97ec5bce] user: ab branch: trunk, size: 2352612
12:32
{5488} extract TDynArrayHasher logic from TDynArrayHashed storage - better SOLID design to enable hashing logic reuse file: [a9d4411cf4] check-in: [bb1414ffc3] user: ab branch: trunk, size: 2352678
10:19
{5487} enhanced regression tests file: [68ac607a4d] check-in: [7b71e5a467] user: ab branch: trunk, size: 2349579
10:06
{5486} TDynArrayHashed refactoring - enhanced logic and use prime modulos for higher ranks file: [3e8abb0538] check-in: [4494cd64ac] user: ab branch: trunk, size: 2349278
10:05
{5485} enhanced TObjectListHashed deletion file: [f7c84827a4] check-in: [b117925e3f] user: ab branch: trunk, size: 2344771
10:03
{5484} refactored TDynArrayHashed.FindHashedAndDelete and its associated sse2/avx2 asm file: [68e196fca3] check-in: [325ae1940a] user: ab branch: trunk, size: 2344149
10:01
{5483} non-temporal move/fill optimization file: [d18932cd5b] check-in: [34ad7528dd] user: ab branch: trunk, size: 2345502
10:00
{5482} crc32c asm optimization file: [ef4f1b6246] check-in: [544170c6eb] user: ab branch: trunk, size: 2345299
09:57
{5481} record/object use refactoring - no need to mess with the compiler/IDE if there is no managed field involved file: [2a19a8eab5] check-in: [02f60697cc] user: ab branch: trunk, size: 2345265
2020-02-13
17:49
{5479} minor update - no functional change file: [6eb09ff4b9] check-in: [65e4d5db3e] user: ab branch: trunk, size: 2346172
17:38
{5478} new AVX code for MoveFast() for 30% speed increase - also fixed a problem in SSE2 non-temporal move file: [d037ff0d3a] check-in: [e659409937] user: ab branch: trunk, size: 2346243
15:38
{5474} TDynArrayHashed and TSynDictionary will now delete much faster and use half memory for their internal hash table (only one 32-bit integer per slot) - won't fully rehash at deletion: introducing a new algorithm and very nice SSE2/AVX2 simd code for very fast indexes adjustment in the hash table file: [2d16fbb641] check-in: [a200d83ce5] user: ab branch: trunk, size: 2343999
15:34
{5472} new FillCharFast() x86_64 optimized assembly function for SSE2 and AVX file: [f97b216531] check-in: [87949d9e0b] user: ab branch: trunk, size: 2335635
15:33
{5471} new MoveFast() x86_64 optimized assembly function file: [c43bc47a11] check-in: [3bf5d4c77d] user: ab branch: trunk, size: 2331211
15:26
{5470} refactored TPrecisionTimer - especially fixing Pause/Resume process file: [86f0d6579a] check-in: [c8cfb1665e] user: ab branch: trunk, size: 2335258
15:10
{5468} circumvent Delphi 2007 "C1632 internal error" bug file: [1734eac66c] check-in: [1ef8add4de] user: ab branch: trunk, size: 2336028
2020-02-10
13:35
{5467} documentation update file: [7772409229] check-in: [7db8ad1d9c] user: ab branch: trunk, size: 2335976
13:14
{5466} fixed Delphi compilation file: [07c4d4c44d] check-in: [fed78becd6] user: ab branch: trunk, size: 2335607
11:37
{5465} huge TDynArrayHashed/TSynDictionary optimizations: use twice less memory, and no full ReHash on deletion file: [0a01db1a44] check-in: [9436a3ba84] user: ab branch: trunk, size: 2335580
11:34
{5464} fixed TDynArray.Find with too optimistic optimization file: [41c64bec16] check-in: [bc6d823e53] user: ab branch: trunk, size: 2337986
11:33
{5463} introducing x86_64 optimized assembly for SortDynArrayAnsiString() file: [41af4bdf57] check-in: [f66caf9f4a] user: ab branch: trunk, size: 2338436
11:31
{5462} let TTimeLog use up to 40 bits, allowing year 0..9999 as per the ISO-8601 standard file: [c250c7fbbc] check-in: [139f30b6c0] user: ab branch: trunk, size: 2337218
2020-02-07
20:39
{5460} introducing GetBitsCountPtrInt() - with SSE4.2 popcnt use if available - as used also by GetBitsCount() file: [b2c69aaa71] check-in: [7ce8f3dd3f] user: ab branch: trunk, size: 2337318
20:32
{5458} optimized TDynArrayHashed.ReHash for most common cases file: [fd5d78b7c6] check-in: [f44f393cd7] user: ab branch: trunk, size: 2332710
2020-02-06
20:38
{5447} optimized Split() functions for FPC file: [da8d201aca] check-in: [0af47744d3] user: ab branch: trunk, size: 2330885
20:38
{5446} new aValueOwned optional parameter to TDocVariantData.AddValue() file: [fb3396dcc5] check-in: [5e60ecf429] user: ab branch: trunk, size: 2330608
20:37
{5445} minor code refactoring in implementation section - no functional change file: [18b36689a1] check-in: [12768858c5] user: ab branch: trunk, size: 2330263
20:35
{5444} fixed long-standing bug in TNameValuePUTF8Char/JSONDecode on FPC/x86_64 file: [53044dc9f3] check-in: [967e9d300d] user: ab branch: trunk, size: 2330174
20:34
{5443} new TRawUTF8List.Contains method file: [20beb0f940] check-in: [42099cb9cc] user: ab branch: trunk, size: 2330140
20:33
{5442} ensure dynamic arrays are made unique before their items are deleted/modified if RefCount>1 file: [3c2a04f3fb] check-in: [ba179e5c93] user: ab branch: trunk, size: 2329718
20:29
{5441} new TTextWriter.PropName method - fixes e.g. record serialization in extended JSON mode file: [91adecb800] check-in: [8eba1ba0b6] user: ab branch: trunk, size: 2327725
20:23
{5440} enhanced GetMimeContentTypeFromBuffer/GetMimeContentType file: [b43de101a0] check-in: [c277851f37] user: ab branch: trunk, size: 2327467
20:21
{5439} fixed NOSETTHREADNAME compilation file: [53eb5e951d] check-in: [c6077693a1] user: ab branch: trunk, size: 2326934
20:20
{5438} new IsVoid() and IdemFileExts() functions file: [8e635807a1] check-in: [c47253e229] user: ab branch: trunk, size: 2326950
2020-02-05
11:36
{5437} optimized late binding access to all our enhanced variant types file: [90a31c208a] check-in: [36cb210293] user: ab branch: trunk, size: 2325873
11:34
{5436} optimized TDocVariant object name lookup file: [f2168ae9ff] check-in: [e7d11d22e5] user: ab branch: trunk, size: 2325015
2020-02-04
16:01
{5434} overloaded QuotedStrJSON(PUTF8Char) function file: [7180dad558] check-in: [58c31a8518] user: ab branch: trunk, size: 2324505
15:59
{5433} overloaded FromVarUInt64/FromVarString with optional buffer overflow checking file: [6367f81ac5] check-in: [b3fdbe3c2d] user: ab branch: trunk, size: 2322881
15:57
{5432} overloaded NeedsJsonEscape(PUTF8Char) function file: [9b98bc5bcc] check-in: [40a0b5ae4d] user: ab branch: trunk, size: 2320959
2020-02-03
19:49
{5430} new FromVarString() and FromVarUInt64Safe() functions protected against buffer overflows file: [332ad969f9] check-in: [7db471aaa4] user: ab branch: trunk, size: 2320387
2020-01-31
14:51
{5423} don't use FILE_FLAG_SEQUENTIAL_SCAN on XP/WS2003 file: [23ec3d066c] check-in: [e77e5f84a0] user: ab branch: trunk, size: 2318939
2020-01-30
17:23
{5417} reverted original QWord/Int64Scan*() code file: [a52edbb91c] check-in: [9b14779db3] user: ab branch: trunk, size: 2318351
10:41
{5416} fixed GetTickCount64 fallback routing on XP/2003 file: [537333302f] check-in: [f66f423372] user: ab branch: trunk, size: 2317753
09:55
{5415} refactored Int64/WordScan*() functions file: [185f67b308] check-in: [1792d3da76] user: ab branch: trunk, size: 2317766
2020-01-29
17:41
{5412} shorten thread names by removing meaningless chars file: [839608fcc0] check-in: [ffa6dae010] user: ab branch: trunk, size: 2318180
11:19
{5410} enhanced TSynQueue for optional value comparison file: [bb201b9187] check-in: [78a70f0734] user: ab branch: trunk, size: 2317770
11:19
{5409} new overloaded ObjArrayFind() ObjArrayDelete() functions file: [6218d603a4] check-in: [c56e53c8c8] user: ab branch: trunk, size: 2316746
11:16
{5407} use [] instead of "" in exceptions to avoid JSON escape file: [1889394852] check-in: [932caf23d7] user: ab branch: trunk, size: 2315461
2020-01-28
14:58
{5405} fixed Delphi compilation file: [612b4c39c4] check-in: [e1723af2be] user: ab branch: trunk, size: 2315429
2020-01-27
22:48
{5404} small refactoring - no functional change file: [fb9db1ab85] check-in: [7cab00eba7] user: ab branch: trunk, size: 2315407
21:55
{5403} hardened records and dynamic arrays binary serialization / pass #2 file: [d813669458] check-in: [5f66d51335] user: ab branch: trunk, size: 2314926
18:39
{5402} hardened records and dynamic arrays binary serialization to avoid potential buffer overflow on forged input file: [2d63d29df0] check-in: [cef0c03b09] user: ab branch: trunk, size: 2314003
11:51
{5398} bypass XE4 Win64 linker bug by disallowing static SQLite3 for this target file: [2fe9d7b8a5] check-in: [0a291d0c14] user: ab branch: trunk, size: 2307618
11:32
{5397} optional aFileNotMapped flag to TFileBufferReader.Open() file: [7ea7b27f2b] check-in: [f923e22663] user: ab branch: trunk, size: 2307633
2020-01-23
19:37
{5585} FillCharx64 / TSynPersistent.NewInstance optimizations file: [098bb48c29] check-in: [3a9c5b7fdc] user: ab branch: trunk, size: 2307468
19:36
{5584} enhanced PtrArrayDelete/ObjArrayDelete file: [5840212c51] check-in: [e8af0b6613] user: ab branch: trunk, size: 2309648
19:34
{5583} enhanced documentation file: [fb9cbc1fe1] check-in: [4a25d19f6e] user: ab branch: trunk, size: 2308597
2020-01-20
11:15
{5580} Wine API detection file: [05756fc4f8] check-in: [3a602921ae] user: ab branch: trunk, size: 2308176
11:11
{5578} new TTextWriter.AddTrimSpaces overloaded methods file: [417c766c15] check-in: [6d88ac4224] user: ab branch: trunk, size: 2307629
2020-01-17
14:12
{5576} new IsValidJson() functions file: [b114d52b39] check-in: [e2047eb23a] user: ab branch: trunk, size: 2306917
2020-01-16
11:03
{5568} new TrimCopy() function file: [e4f423d9cf] check-in: [398209306c] user: ab branch: trunk, size: 2305717
2020-01-15
14:55
{5564} new BinToBase64Short() overloaded functions file: [b802c8e0ee] check-in: [babb089def] user: ab branch: trunk, size: 2305069
2020-01-14
15:12
{5562} allow IsHashElementWithoutCollision() to compare items for exact duplicates - used e.g. by TSynDictionary.LoadFromJSON file: [2f256764b6] check-in: [1e1040d83c] user: ab branch: trunk, size: 2304274
11:46
{5561} fixed Delphi compilation on some versions file: [849498d76d] check-in: [803c764bf1] user: ab branch: trunk, size: 2303673
11:28
{5557} optimized TDynArrayHashed.IsHashElementWithoutCollision file: [c07198e2e7] check-in: [abac771b03] user: ab branch: trunk, size: 2303464
11:27
{5556} fixed StringFromFile() on constrained Windows platforms file: [c792be9766] check-in: [5c1ec696f8] user: ab branch: trunk, size: 2303397
2020-01-13
21:30
{5555} added CustomVariantOptions parameter to TSynDictionary.LoadFromJSON file: [bb015058bf] check-in: [083b9bc9a1] user: ab branch: trunk, size: 2302865
21:26
{5554} added CustomVariantOptions parameter to TDynArray.LoadFromJSON and TDynArrayJSONCustomReader file: [6f8997636f] check-in: [056ee79b08] user: ab branch: trunk, size: 2302396
2020-01-11
15:02
{5553} fixed ERMS support for Win64 file: [f25df6d716] check-in: [1f259d5c4d] user: ab branch: trunk, size: 2300499
14:56
{5552} ERMS support for FillFastChar() on FPC x86_64 Windows/Linux file: [15c5c2c3f7] check-in: [852d131f3e] user: ab branch: trunk, size: 2300454
14:08
{5550} new FillCharFast() in optimized asm for FPC x86_64 (faster than RTL's version for small blocks) file: [cea54724ca] check-in: [e2313c19bf] user: ab branch: trunk, size: 2297653
2020-01-10
17:28
{5549} introducing RecordZero() file: [9ec91082d2] check-in: [3fb0a0171a] user: ab branch: trunk, size: 2297970
14:20
{5544} HUGE performance boost on Linux after SleepHiRes() refactoring file: [8a912e5539] check-in: [06306e16ed] user: ab branch: trunk, size: 2297467
2020-01-09
18:55
{5540} TTextWriter refactoring and enhancements - in both implementation and use file: [baf545eb51] check-in: [92cbecb83c] user: ab branch: trunk, size: 2297378
2020-01-08
17:12
{5537} fixed Delphi compilation issue file: [c2f96eee8e] check-in: [8b77ebfa7a] user: ab branch: trunk, size: 2296847
09:26
{5536} small refactoring - no functional change file: [b222bc551c] check-in: [00a044bbaa] user: ab branch: trunk, size: 2296831
09:18
{5535} allow to customize Markdown process (e.g. Emoji detection), especially as Mustache helper file: [9ca7fbd393] check-in: [e7cba3e08a] user: ab branch: trunk, size: 2296724
2020-01-07
21:03
{5534} some additional tests file: [7f729f78e7] check-in: [81f2e30ff7] user: ab branch: trunk, size: 2296043
20:55
{5533} small Emoji process enhancements file: [f1f43fd8ca] check-in: [6ecb1b7b64] user: ab branch: trunk, size: 2295973
20:43
{5532} transparent Emoji support in Wiki/Markdown file: [857bdbee8a] check-in: [28fd2d8be6] user: ab branch: trunk, size: 2295811
20:42
{5531} tuned MoveSmall() usage file: [a85d645e81] check-in: [c42c06c01d] user: ab branch: trunk, size: 2289344
14:22
{5529} introducing MarkdownToHtml and SimpleToHtml Mustache helpers file: [4deb08dc1e] check-in: [869df35eef] user: ab branch: trunk, size: 2289229
2020-01-06
20:44
{5527} new fast Markdown to HTML renderer file: [41a062d8a8] check-in: [18d1531701] user: ab branch: trunk, size: 2289212
2020-01-03
09:31
{5522} changed TFileVersion.VersionInfo text layout file: [2810f4e10b] check-in: [8b05f31d8b] user: ab branch: trunk, size: 2279840
09:30
{5521} new VarStringOrNull() and QuotedStrJSON() functions file: [cb282b1305] check-in: [d34e261eff] user: ab branch: trunk, size: 2279724
2019-12-31
14:27
{5518} happy new mORMot's Year 2020 ! :) file: [492515c6ec] check-in: [69912b1fe1] user: ab branch: trunk, size: 2279102
2019-12-19
10:46
{5509} fixed QuotedStr when Quote is not " file: [d13aebe6c5] check-in: [af3cd59e4b] user: ab branch: trunk, size: 2279102
2019-12-16
11:20
{5507} several optimization for 64-bit and RISC (ARM) CPUs - no functional change file: [f3dac4b7c0] check-in: [afd2c55d0f] user: ab branch: trunk, size: 2279056
10:40
{5506} fixed class custom JSON serialization - from https://github.com/synopse/mORMot/pull/251 file: [f52630429d] check-in: [097f7f30e9] user: ab branch: trunk, size: 2278706
2019-12-13
23:00
{5502} introducing TWinRegistry object - fixed REG_MULTI_SZ support which was not consistent with FPC and Delphi file: [c93d935d4c] check-in: [6a4eec4faf] user: ab branch: trunk, size: 2277880
22:57
{5500} fixed QuotedStr() - seems unstable with FPC+Win64 and heaptrc file: [dcd20fa78d] check-in: [666befff44] user: ab branch: trunk, size: 2274534
2019-12-10
20:19
{5489} enhanced RetrieveSystemInfo e.g. running from a VM file: [584e10d088] check-in: [3ecf0a18d5] user: ab branch: trunk, size: 2275207
2019-12-05
10:31
{5488} fixed PosExString() on Unicode Delphi - thanks Amir for the report! file: [8a90dec74f] check-in: [57e8496c5d] user: ab branch: trunk, size: 2274751
2019-12-02
12:45
{5486} fixed PosExStringPas/PosExPas with negative Offsets (should return 0) file: [491b273a5b] check-in: [900f909286] user: ab branch: trunk, size: 2274738
10:44
{5485} introduced PosExString() file: [7e4f378c9c] check-in: [44aeb3b0b8] user: ab branch: trunk, size: 2274720
2019-11-29
10:46
{5483} full hardening to prevent problems in case of RDRAND/SEE42 cpu hardware bugs file: [027b06f38a] check-in: [82fdecb916] user: ab branch: trunk, size: 2272499
2019-11-28
15:20
{5482} deep pass over the whole framework to fix and tune memory allocation of strings or TBytes returned as functions result file: [a3b96aeac9] check-in: [763bf324a4] user: ab branch: trunk, size: 2272025
15:17
{5481} detect and circumvent AMD CPU bug: RDRAND opcode returning -1 after HW suspend file: [cbe5261464] check-in: [4b2f2730ce] user: ab branch: trunk, size: 2271537
2019-11-26
09:57
{5479} some refactoring (especially TSynLocker) - no functional change file: [8dedee3871] check-in: [80394491ba] user: ab branch: trunk, size: 2271166
2019-11-19
09:21
{5471} small TFileVersion.Create fix file: [96954d96f4] check-in: [781acc3960] user: ab branch: trunk, size: 2271056
2019-11-15
17:25
{5468} Utf8TruncateToLength/AppendUInt32ToBuffer optimization file: [1165e1aae0] check-in: [0e8bb5ba1c] user: ab branch: trunk, size: 2271086
17:24
{5467} renamed UTF-16 overloaded IsAnsiCompatible() into IsAnsiCompatibleW() file: [70713b5d41] check-in: [3264043526] user: ab branch: trunk, size: 2271065
2019-11-13
13:19
{5463} new AnyScanIndex() function and optimized CompareMemFixed/CompareMemSmall/TDynArray.IndexOf/GetLineContains file: [dcfa62391a] check-in: [b2b7b37d28] user: ab branch: trunk, size: 2271047
13:17
{5462} fixed DynArrayItemTypeLen() file: [5a3f54cffc] check-in: [6c85d34a38] user: ab branch: trunk, size: 2269974
2019-11-12
16:51
{5460} optimized IdemPropNameUSameLen() file: [46f35760de] check-in: [91c547d0bd] user: ab branch: trunk, size: 2269986
2019-11-08
11:49
{5451} overloaded StringToSynUnicode() procedure - with some refactoring of UNICODE compiler handling file: [07fae5f971] check-in: [8f2c693b7c] user: ab branch: trunk, size: 2269629
2019-11-07
14:19
{5450} enhanced the Split() function file: [a9dd369e8d] check-in: [fcce8a8a58] user: ab branch: trunk, size: 2269424
14:17
{5449} new overloaded DynArrayLoadJSON() function which will make a copy of the input buffer file: [0108571929] check-in: [bd63059e2f] user: ab branch: trunk, size: 2269249
2019-11-06
14:32
{5448} enhanced TTextWriter.CancelLastChar/CancelLastComma documentation to clearly state that calling such methods twice won't work file: [1a430e8c57] check-in: [b6b6cc3a3d] user: ab branch: trunk, size: 2268259
08:53
{5445} TSQLDBOracleStatement.ExecutePrepared refactoring (VData header patch is not needed for Delphi Win64) file: [e9936dc0d1] check-in: [388bed948f] user: ab branch: trunk, size: 2265854
2019-11-04
17:41
{5442} enhanced TSynTempWriter file: [f043dd0f67] check-in: [be34211a98] user: ab branch: trunk, size: 2265855
2019-10-30
15:10
{5436} restored Delphi compilation after https://github.com/synopse/mORMot/pull/249 merge file: [18429d8cde] check-in: [17f69d56e8] user: ab branch: trunk, size: 2265367
2019-10-26
09:17
{5429} new GetEnumNameValueTrimmedExact() function - and some internal refactoring/optimization file: [296c1c17e2] check-in: [c92fd43287] user: ab branch: trunk, size: 2263942
09:16
{5428} refactored CompareMemFixed() file: [aea0b366f9] check-in: [1554c0f511] user: ab branch: trunk, size: 2262323
2019-10-25
21:35
{5427} new TSynSystemTime.FromMS/FromSec methods file: [ef24d3d806] check-in: [c6a68f0c1c] user: ab branch: trunk, size: 2261974
21:34
{5426} published StringReplaceAllProcess() low-level function file: [a659d5ee4c] check-in: [135aa332b3] user: ab branch: trunk, size: 2261264
16:27
{5425} introducing ObjArrayAddFrom/ObjArrayAddOnceFrom functions file: [1a24389ab4] check-in: [cb9362ff01] user: ab branch: trunk, size: 2260976
16:19
{5424} fixed TTextWriter.AddFloatStr - thanks Kevin Chen for the feedback! file: [004705a026] check-in: [2d79343aa0] user: ab branch: trunk, size: 2259654
2019-10-23
12:38
{5420} introducing TSynTestCase.IsEqual/NotEqual methods file: [d172e4cb5a] check-in: [22cf5a37f8] user: ab branch: trunk, size: 2259639
2019-10-22
08:51
{5415} make CurlIsAvailable call thread-safe - from https://github.com/synopse/mORMot/pull/244 file: [a2e357d7f8] check-in: [4eee14dbdd] user: ab branch: trunk, size: 2259551
2019-10-17
16:23
{5414} refactored stack allocation to use TSynTempBuffer file: [a80725c666] check-in: [acf264fc39] user: ab branch: trunk, size: 2259545
16:21
{5413} fixed some Windows XP issues file: [e94287381e] check-in: [d61cc97e42] user: ab branch: trunk, size: 2260292
10:08
{5412} merged https://github.com/synopse/mORMot/pull/242 file: [ff41adf234] check-in: [2a5b611672] user: ab branch: trunk, size: 2260062
2019-10-15
16:17
{5410} introducing MoveSmall() to speed up various parts of the framework file: [c111d7bd4c] check-in: [36c8718010] user: ab branch: trunk, size: 2260024
09:41
{5409} new TTextWriter.AddCurrentNCSALogTime and TSynSystemTime.ComputeDayOfWeek methods file: [d9a91fa865] check-in: [b89ed1aa4b] user: ab branch: trunk, size: 2260003
2019-10-14
13:15
{5408} optimized TTimeLogBits.Expand file: [481d8a65d0] check-in: [51bbf6c557] user: ab branch: trunk, size: 2258749
12:53
{5407} new TSynSystemTime.FromText method file: [62e9d7b71a] check-in: [241347694f] user: ab branch: trunk, size: 2258747
08:26
{5406} new FormatBuffer() function file: [f011280ffb] check-in: [11bef17f1b] user: ab branch: trunk, size: 2258042
2019-10-09
20:39
{5402} parse identifier as SQL string (e.g. "@field0") for TTextWriter.RegisterCustomJSONSerializerFromText() - GetNextJson() was buggy in this context file: [a3edcad9fa] check-in: [6366115d11] user: ab branch: trunk, size: 2257433
20:30
{5401} allow JSON string for the name of an identifier for TTextWriter.RegisterCustomJSONSerializerFromText() file: [e55b0e5227] check-in: [b05803f3df] user: ab branch: trunk, size: 2257333
17:37
{5396} fixed Delphi 5 compilation file: [c6fb4475aa] check-in: [2fdeb65018] user: ab branch: trunk, size: 2257111
2019-10-04
13:26
{5391} new TSynDate.FromDate/ComputeDayOfWeek and TSynSystemTime.ToSynDate methods file: [45a3691f03] check-in: [25f5580957] user: ab branch: trunk, size: 2257037
2019-10-03
12:56
{5390} introducing TSynDate to store a date as Year/Month/Day file: [b4b51b2991] check-in: [de53166e01] user: ab branch: trunk, size: 2256010
2019-09-30
10:07
{5387} fixed some older Delphi compilation file: [c60bf03c75] check-in: [f8e8212372] user: ab branch: trunk, size: 2250087
2019-09-27
10:06
{5386} enhanced methods inlining file: [2d12517efd] check-in: [6cf0a90bfa] user: ab branch: trunk, size: 2250067
2019-09-26
11:57
{5384} new GetNextFieldPropSameLine() function file: [e96f0f3c9d] check-in: [67214ed9b5] user: ab branch: trunk, size: 2250089
09:14
{5383} new IsRawUTF8DynArray() test - and small RTTI refactoring file: [5d85ffa36a] check-in: [dff6ec5b63] user: ab branch: trunk, size: 2249277
2019-09-25
09:01
{5382} avoid potential GPF in ManagedTypeSave after last commit file: [18c73fe4e6] check-in: [b211d92d1e] user: ab branch: trunk, size: 2249287
08:56
{5381} fixed WideString FPC serialization support file: [3d4c458c68] check-in: [aeafcc719c] user: ab branch: trunk, size: 2249226
08:53
{5380} optimized AnsiICompW() file: [d532d594de] check-in: [a32e98090b] user: ab branch: trunk, size: 2249070
2019-09-24
13:40
{5376} new IsRawUTF8DynArray() function - used e.g. by TPropInfo.SetFromText/GetToText file: [c8f39f08f7] check-in: [4037b898eb] user: ab branch: trunk, size: 2248883
2019-09-23
15:32
{5373} first pass to handle FPC attributes as introduced in SVN 42356-42411 (2019/07) - define FPC_PROVIDE_ATTR_TABLE in Synopse.inc to test with current FPC trunk file: [128b70fcd9] check-in: [dc83f46a6b] user: ab branch: trunk, size: 2247690
2019-09-21
09:50
{5369} some minor comment fix after RTTI refactoring file: [9ff3174812] check-in: [55eaa29f5d] user: ab branch: trunk, size: 2248032
2019-09-20
19:22
{5366} optimized Base-64 processing file: [ba423ba1e3] check-in: [1b9bed120d] user: ab branch: trunk, size: 2248241
19:21
{5365} let TDynArray.LoadFromJSON handle 'null' input as expected file: [523e4fd640] check-in: [7e0cb5130e] user: ab branch: trunk, size: 2248062
19:20
{5364} refactored StrIComp, AnsiIComp, UTF8UpperCopy and UpperCopyShort file: [85b4e5f515] check-in: [12c23b89ab] user: ab branch: trunk, size: 2247864
2019-09-19
14:27
{5362} minor refactoring - mostly documentation refinement, no functional change file: [70186c65c9] check-in: [da6daae0c0] user: ab branch: trunk, size: 2248026
10:49
{5361} ensure TSQLPropInfoRTTIObject will use JSONTOOBJECT_TOLERANTOPTIONS file: [67bf304f37] check-in: [ed58b97a61] user: ab branch: trunk, size: 2247947
08:17
{5360} optimized FPC variant process file: [2f63c580ed] check-in: [a053eb0b9c] user: ab branch: trunk, size: 2247971
07:44
{5357} new optional andtrim parameter to GetNextLine() file: [c502ecf13c] check-in: [1bb28a251c] user: ab branch: trunk, size: 2247533
2019-09-17
18:26
{5355} fixed Delphi 6 compilation file: [ce288fd2c3] check-in: [165acd3f0f] user: ab branch: trunk, size: 2247226
17:16
{5353} refactored TDocVariantData process file: [7a279bc660] check-in: [58bacd30c0] user: ab branch: trunk, size: 2247243
15:21
{5352} fixed Delphi compilation file: [3a8c2012c4] check-in: [40b075a6d0] user: ab branch: trunk, size: 2247156
15:10
{5348} deep refactoring for better inlining - induce some micro-optimizations, especially under FPC file: [ed6381555b] check-in: [a5641cf07e] user: ab branch: trunk, size: 2247219
15:07
{5347} new GetClassParent() inlined function file: [ceecd3d120] check-in: [dea1126f2e] user: ab branch: trunk, size: 2245986
2019-09-16
11:59
{5344} new ToDouble() function file: [fa16f8ea4d] check-in: [6bb4cde03e] user: ab branch: trunk, size: 2245503
2019-09-13
15:58
{5339} BREAKING CHANGE: SOA TDateTime parameters will be serialized as ISO8601 JSON text instead of unusual TDateTime JSON number - it sounds to be in fact a fix of a bug/consistency file: [cd8023cb16] check-in: [187d474624] user: ab branch: trunk, size: 2244880
15:22
{5338} new IsZeroSmall() function file: [9b4febc273] check-in: [10cdcadd28] user: ab branch: trunk, size: 2244794
14:15
{5337} some refactoring - no functional change file: [a345322d14] check-in: [51c0c88d94] user: ab branch: trunk, size: 2244363
2019-09-12
16:31
{5336} another RTTI-related optimization file: [b9ae7d76d9] check-in: [cdecd0beb0] user: ab branch: trunk, size: 2243798
14:47
{5335} deep refactoring of cross-compiler RTTI access file: [165cd4d620] check-in: [0e83dd56b0] user: ab branch: trunk, size: 2243854
2019-09-09
10:33
{5330} documentation update file: [9fb76c68ef] check-in: [9fcbcee9fb] user: ab branch: trunk, size: 2241633
2019-09-04
11:41
{5328} documentation fixes from https://github.com/synopse/mORMot/pull/232 file: [6396770696] check-in: [b34c3ac71e] user: ab branch: trunk, size: 2241516
11:37
{5326} UpperCopy/PosExChar refactoring file: [d1b28f8a9f] check-in: [6cf8050e1c] user: ab branch: trunk, size: 2241531
2019-09-03
13:09
{5321} try to fix FPC 3.0.4 branch compilation file: [308db65ba7] check-in: [54429d3ba8] user: ab branch: trunk, size: 2241439
10:34
{5320} properly implement SynCurl after https://github.com/synopse/mORMot/pull/231 file: [59ad754385] check-in: [7ef7b6d394] user: ab branch: trunk, size: 2241406
2019-08-30
15:55
{5318} FormatUTF8/VarRecToUTF8 optimization file: [f314599404] check-in: [ed72dba279] user: ab branch: trunk, size: 2241391
2019-08-28
10:37
{5316} minor TDynArray refactoring for Delphi file: [0a394a10f7] check-in: [1f82876ce9] user: ab branch: trunk, size: 2241374
09:50
{5315} some fixes/enhancements/refactoring to TDynArray.ToKnownType file: [01e5fc98f6] check-in: [51eced20b8] user: ab branch: trunk, size: 2241384
07:36
{5313} fixed overloaded TTextWriter.RegisterCustomJSONSerializerSetOptions() aAddIfNotExisting process file: [a840d0ca96] check-in: [76ba23c9a6] user: ab branch: trunk, size: 2242436
2019-08-27
07:07
{5311} fixed Delphi 5 compilation file: [4a330c4e2b] check-in: [c41c50479d] user: ab branch: trunk, size: 2242418
2019-08-14
16:44
{5305} new ConsoleReadBody() function - includes some other low-level refactoring file: [cc5f82d4a1] check-in: [5e1bc652e1] user: ab branch: trunk, size: 2242203
2019-08-03
11:34
{5304} let VariantToBoolean() handle text input as potential boolean value - properly implement https://github.com/synopse/mORMot/pull/229 file: [0bb10ef124] check-in: [0bb4e6dc36] user: ab branch: trunk, size: 2240683
2019-07-26
12:22
{5293} new ConsoleWrite() overloaded functions file: [99391e211b] check-in: [1af74137c1] user: ab branch: trunk, size: 2240204
12:22
{5292} let ConsoleWaitForEnterKey call Synchronize on Linux file: [d55a7fb6a2] check-in: [0fa4326230] user: ab branch: trunk, size: 2239384
12:20
{5291} introducing BOOL_UTF8[] to replace JSONBoolean() function file: [ba97502673] check-in: [788c6722d0] user: ab branch: trunk, size: 2238982
2019-07-25
08:40
{5290} refactored base-64 encoding for performance file: [838109e0f5] check-in: [8ec5f12ef5] user: ab branch: trunk, size: 2239124
2019-07-24
14:10
{5287} optimized Base-64 process file: [900f93feb1] check-in: [7193ebe065] user: ab branch: trunk, size: 2239043
12:45
{5286} let TFileBufferWriter use an internal flushing method file: [6d1d55bcab] check-in: [8d199bbabb] user: ab branch: trunk, size: 2239129
12:44
{5285} TTypeInfo.elType2 seems inconsistent with FPC -> disable in TDynArray.ToKnownType file: [1626927870] check-in: [6bdd0e4b0b] user: ab branch: trunk, size: 2239735
09:57
{5283} new TFileBufferWriter.WriteRecord/DirectWritePrepare/DirectWriteFlush methods file: [cebc03fce6] check-in: [9ff8f781a8] user: ab branch: trunk, size: 2239491
08:16
{5282} minor code refactorings - no functional change file: [e746113444] check-in: [eab6602127] user: ab branch: trunk, size: 2239874
2019-07-23
06:59
{5281} fixed Delphi x86 compilation file: [821e2b9b67] check-in: [3a5ba5857b] user: ab branch: trunk, size: 2239868
2019-07-20
13:18
{5279} tuned mul64_64() and UpperCopy255BufPas() for FPC x86 file: [1250eb04a3] check-in: [1d1175bcd6] user: ab branch: trunk, size: 2239771
2019-07-19
09:21
{5277} fixed FPC i386 compilation file: [cfe8b74886] check-in: [9c0ff5c5b7] user: ab branch: trunk, size: 2239774
2019-07-18
16:18
{5274} enhanced RTTI usage for TDynArray JSON serialization (on FPC and Delphi 2010+) file: [696279afdd] check-in: [888baa599a] user: ab branch: trunk, size: 2240170
16:15
{5273} refactored bswap32/bswap64 functions for FPC/Intel file: [352b4c57a8] check-in: [11d2c3f3d4] user: ab branch: trunk, size: 2237676
16:13
{5272} optimized TDynArray.GetCount and Reverse methods file: [bf3fd05b0b] check-in: [d24d6d5930] user: ab branch: trunk, size: 2237538
16:12
{5271} moved TSynCache to SynTable.pas unit file: [929990a824] check-in: [2e4545250c] user: ab branch: trunk, size: 2237630
2019-07-10
08:28
{5265} deep refactoring to avoid most FPC warnings file: [93f4c5f39d] check-in: [11e95dcc93] user: ab branch: trunk, size: 2245121
2019-07-01
09:16
{5261} small refactoring after https://github.com/synopse/mORMot/pull/219 file: [12e1c5ff66] check-in: [5b6273cd94] user: ab branch: trunk, size: 2244603
2019-06-28
09:38
{5260} optimized TDynArray.InternalSetLength file: [72161ea086] check-in: [6dc86a9511] user: ab branch: trunk, size: 2244615
09:38
{5259} some FindFiles() refactoring after https://github.com/synopse/mORMot/pull/218 file: [5ee74e2f49] check-in: [9f617d6b37] user: ab branch: trunk, size: 2244540
2019-06-25
07:59
{5256} new GetEnumTrimmedNames() overloaded function file: [db73a4d4bd] check-in: [af1f7be85e] user: ab branch: trunk, size: 2244061
07:54
{5255} fixed Kylix support - thanks Eugene Ilyin for the feedback! file: [ecdf52c6fa] check-in: [4c89d1596a] user: ab branch: trunk, size: 2243469
2019-06-23
17:56
{5254} re-disable NOSETTHREADNAME by default file: [e2021b31d9] check-in: [03733981ad] user: ab branch: trunk, size: 2243277
2019-06-20
15:02
{5251} small doc enhancements file: [5400d55a25] check-in: [514a4ca1ee] user: ab branch: trunk, size: 2243038
11:28
{5250} let IPToCardinal() set the value to 0 on parse error file: [3c4c039a7b] check-in: [1f2c4bcc63] user: ab branch: trunk, size: 2242827
2019-06-19
21:05
{5249} small doc fixes - no functional change file: [7253b8168d] check-in: [fdfe0df470] user: ab branch: trunk, size: 2242785
15:28
{5247} new overloaded IP4Text() function file: [7fa1adfe95] check-in: [3c247666a4] user: ab branch: trunk, size: 2242725
15:25
{5246} fixed UnixMSTimePeriodToString() first parameter name and type file: [ae0fe89ffa] check-in: [d23fc91df6] user: ab branch: trunk, size: 2242358
2019-06-15
09:10
{5244} merged two pull requests from github file: [3935ff2b40] check-in: [7262087052] user: ab branch: trunk, size: 2242342
2019-06-13
13:16
{5242} introducing TIMELOGUNIX() built-in SQLite3 function returning Unix Epoch seconds from a TTimeLog value file: [684757244f] check-in: [fed98960de] user: ab branch: trunk, size: 2242343
08:24
{5237} new ByteScanIndex() function file: [062cfa6061] check-in: [5b5cdadaf8] user: ab branch: trunk, size: 2242221
07:36
{5236} several fixes to TSynLocker.DoneAndFreeMem use file: [a99938247b] check-in: [f8f17ad5d0] user: ab branch: trunk, size: 2241668
2019-06-12
13:56
{5235} try to circumvent Delphi 5 compilation issues - with no success yet file: [fbb462f1f6] check-in: [aff7fc6b62] user: ab branch: trunk, size: 2241660
09:29
{5234} fixed TSQLDBConnectionPropertiesThreadSafe.CurrentThreadConnectionIndex file: [9f35a021ce] check-in: [30a48e5b16] user: ab branch: trunk, size: 2241429
2019-05-29
09:44
{5232} new VariantVTypeToSQLDBFieldType() and TextToSQLDBFieldType() functions file: [c651de8134] check-in: [e001f38eea] user: ab branch: trunk, size: 2241419
2019-05-28
08:34
{5228} some ARM fix file: [bca770c5e5] check-in: [5326a4699f] user: ab branch: trunk, size: 2241427
2019-05-27
17:49
{5227} optimized ToVarUInt64() file: [de4ee716f4] check-in: [78b905f173] user: ab branch: trunk, size: 2241324
13:11
{5225} introducing NewSynLocker / TSynLocker.DoneAndFreemem functions - used instead of TAutoLocker when possible file: [1b896ac919] check-in: [728e5aee92] user: ab branch: trunk, size: 2240771
2019-05-17
13:00
{5222} slight optimization of bit-level processing - no functional change file: [d1af9e1a89] check-in: [8a04c99694] user: ab branch: trunk, size: 2240089
2019-05-16
13:19
{5220} slightly optimized TSynSystemTime.FromDate file: [462b741d0f] check-in: [326cd69378] user: ab branch: trunk, size: 2239570
2019-05-10
14:09
{5216} big refactoring to move code from SynCommons to SynTable - to keep file size reasonnable file: [a87048c851] check-in: [451d7f7b8e] user: ab branch: trunk, size: 2239480
2019-05-09
07:52
{5214} added aUseSSL parameter to THttpServerRequest.Prepare as proposed by Eugene Ilyin - and enhanced TLS flag support file: [8f17e4ca1f] check-in: [b6242953ba] user: ab branch: trunk, size: 2402415
2019-05-08
10:05
{5210} some optimisations of asm code file: [5c23288965] check-in: [974ab4c6c4] user: ab branch: trunk, size: 2402417
2019-05-03
08:51
{5208} refactored integer to text conversion to fix SIGSEGV in ToUTF8 function for x64 target - see https://github.com/synopse/mORMot/pull/194 file: [89007017af] check-in: [aab0123c64] user: ab branch: trunk, size: 2402322
2019-04-29
11:20
{5206} refactoring of TSynLogFamily.Destroy and fixed env variables on Windows file: [2bf3553713] check-in: [067cb1db9f] user: ab branch: trunk, size: 2401635
2019-04-26
13:03
{5203} another refactoring of GetExtended() file: [b060cef0dc] check-in: [bd19dafd92] user: ab branch: trunk, size: 2401624
11:55
{5199} refactored GetQWord() and GetExtended() file: [3509e3bb70] check-in: [d1d593f39a] user: ab branch: trunk, size: 2401613
10:10
{5196} fixed FPC GetExtended() with high level exponents file: [26b145516f] check-in: [cbd68fec70] user: ab branch: trunk, size: 2401617
10:09
{5195} fixed ARM/AARCH64 compilation file: [e268e7cff4] check-in: [48f4d7d111] user: ab branch: trunk, size: 2401534
10:08
{5194} fixed FPC i386 for TDecimal128 and SynEcc file: [3e934a251c] check-in: [1556769521] user: ab branch: trunk, size: 2401494
2019-04-25
19:35
{5193} optimized integer and date/time conversions - for both pascal code and asm file: [739a8365e9] check-in: [c84622e94d] user: ab branch: trunk, size: 2401463
2019-04-24
15:41
{5192} fixed strspnsse42() file: [91f387d605] check-in: [bea3ace0d2] user: ab branch: trunk, size: 2399637
15:07
{5191} new overloaded IPToCardinal() function file: [012dd139cb] check-in: [d354e5dde7] user: ab branch: trunk, size: 2399637
11:42
{5190} fixed MultiPartFormDataEncode() file: [b79a406df9] check-in: [ffde757ecd] user: ab branch: trunk, size: 2398969
2019-04-23
18:53
{5189} refactored object/record type definitions file: [9906b5a8d6] check-in: [861c5640f9] user: ab branch: trunk, size: 2398955
18:51
{5188} published TLecuyer object file: [70be5c6c88] check-in: [fd344cdd9e] user: ab branch: trunk, size: 2398850
2019-04-16
22:07
{5184} hardened RecordLoad/RecordSave binary serialization file: [64c24ab2c7] check-in: [98b3584f70] user: ab branch: trunk, size: 2397944
13:05
{5183} small refactoring of TDocVariant growing strategy file: [4be6d8e21b] check-in: [7bbf66d2f2] user: ab branch: trunk, size: 2396716
2019-04-15
15:57
{5180} priviledge /tmp over /var/tmp for POSIX temporary folder file: [ba655a809c] check-in: [f73fff232a] user: ab branch: trunk, size: 2396769
13:50
{5178} new NextGrow() function to optimize arrays growing strategy - see #187 file: [e7a52f6f7e] check-in: [8933c4aedd] user: ab branch: trunk, size: 2396773
10:24
{5177} optimized crcblocks() function file: [a9365c50be] check-in: [2b328ed980] user: ab branch: trunk, size: 2396344
09:45
{5175} don't call any SSE 4.2 string functions which may trigger random GPF - you could use it on purpose, or set the unsafe FORCE_STRSSE42 conditional file: [bfac16728f] check-in: [1765970783] user: ab branch: trunk, size: 2396037
2019-04-12
22:48
{5174} refactored pointer hexadecimal serialization - to reduce e.g. TSynLog verbosity file: [02a2555f3b] check-in: [1b3c4d6c7f] user: ab branch: trunk, size: 2395083
21:15
{5173} new GetNextItemHexa() and TTextWriter.AddBinToHexDisplayMinChars functions file: [acd5c7b279] check-in: [4c97065f84] user: ab branch: trunk, size: 2395175
09:45
{5171} slightly refactored UnCamelCase() file: [a275400c92] check-in: [591e342dd1] user: ab branch: trunk, size: 2393881
2019-04-11
16:35
{5169} fixed latest commit on some targets file: [b9fc94b56b] check-in: [0838abde35] user: ab branch: trunk, size: 2393904
16:14
{5168} new CompareInteger/CompareQWord functions for proper inlining - SortDynArrayInteger/QWord can't be inlined file: [3d0675ce90] check-in: [7e72109621] user: ab branch: trunk, size: 2394025
15:06
{5166} introducing NOSTRSSE42 conditional file: [05e8e9252e] check-in: [bc46309e45] user: ab branch: trunk, size: 2392975
10:07
{5164} new IncludeInteger/IncludeInt64 functions - with associated tests file: [2a81c65670] check-in: [64b7ab5f73] user: ab branch: trunk, size: 2392111
2019-04-09
15:40
{5161} small refactoring/documentation - no functional change file: [b246e50158] check-in: [a353e9c1ee] user: ab branch: trunk, size: 2389745
12:37
{5160} new _CSV() wrapper function file: [06abd3d0f9] check-in: [45aed2a92b] user: ab branch: trunk, size: 2389723
12:26
{5159} new _CSV() wrapper function file: [f2bd2a71a0] check-in: [ff1d3e2793] user: ab branch: trunk, size: 2389406
2019-04-08
12:27
{5158} revert latest FastSetString() functions for FPC - where in fact broken from other code expectations file: [11f58d99fa] check-in: [f37923d917] user: ab branch: trunk, size: 2388472
11:29
{5157} try paranoid slower FastSetString() functions for FPC file: [b435eea9c6] check-in: [d4e3fcef30] user: ab branch: trunk, size: 2388990
2019-04-01
15:05
{5152} new GetBitPtr/SetBitPtr/UnsetBitPtr functions for proper inlining file: [946df2abe7] check-in: [54f339d73e] user: ab branch: trunk, size: 2388576
08:53
{5150} several optimizations to date/time text conversion on x86_64/ARM file: [7374ea8073] check-in: [9b046e41c2] user: ab branch: trunk, size: 2388403
2019-03-31
11:16
{5148} fixed system info bug on BSD + MacOSX - thanks Alan Chate for the feedback! file: [9d11ab6c78] check-in: [f5968e225b] user: ab branch: trunk, size: 2387774
2019-03-29
14:20
{5144} enhanced QuotedStrJSON() and optimized NeedsJsonEscape() file: [0a91bfb824] check-in: [9bdff04c81] user: ab branch: trunk, size: 2387759
2019-03-28
15:02
{5142} paranoid refactoring of all TRTLCriticalSection/TSynLocker to use TSynPersistentLock file: [efb8567e84] check-in: [5028bc71c0] user: ab branch: trunk, size: 2387620
2019-03-26
14:12
{5138} several fixes and enhancements for Darwin and Win64 file: [d22ca12807] check-in: [1f1e0c8881] user: ab branch: trunk, size: 2388222
2019-03-25
20:59
{5137} avoid Delphi 5 compilation error file: [a25e3240a5] check-in: [2f631e6f12] user: ab branch: trunk, size: 2381671
2019-03-23
01:43
{5135} another pass of fixes for Darwin support file: [2c29142f61] check-in: [e90606ab7c] user: ab branch: trunk, size: 2381662
2019-03-22
21:05
{5134} enhanced Darwin (Mac OS X) support via FPC file: [67c33300c6] check-in: [7e244bf65b] user: ab branch: trunk, size: 2381989
17:24
{5133} Linux/FPC enhancements - no functional change file: [856163d01b] check-in: [6c1c3206ac] user: ab branch: trunk, size: 2380923
17:20
{5132} enhanced TDocVariantData.SortArrayByField file: [9b2c322625] check-in: [141166dc3c] user: ab branch: trunk, size: 2380736
14:31
{5131} some FPC specific fixes/enhancements file: [2e7c1888e1] check-in: [dee6972ba0] user: ab branch: trunk, size: 2380232
2019-03-21
10:23
{5127} fixed potential issue in TDynArray.InternalSetLength with refcount<>1 file: [fa6de3b185] check-in: [2a9772f2cd] user: ab branch: trunk, size: 2380242
2019-03-20
16:38
{5125} modify UrlDecode*() functions to expect a Upper: RawUTF8 parameter file: [be523491e6] check-in: [906ce0e4b4] user: ab branch: trunk, size: 2380208
16:13
{5124} introducing THash160 matching SHA-1 digests file: [27a15d97d7] check-in: [b343d41f69] user: ab branch: trunk, size: 2380178
13:36
{5123} fixed TFastReader.NextByteSafe method file: [71b35f24a6] check-in: [9d0ac9779b] user: ab branch: trunk, size: 2377068
13:30
{5121} new TFastReader.NextByteSafe method file: [49fc05b8c9] check-in: [15f36a7dce] user: ab branch: trunk, size: 2377035
2019-03-19
17:09
{5119} let IntToThousandString() return a shortstring to avoid memory allocation file: [92f6ca08da] check-in: [229640db55] user: ab branch: trunk, size: 2376523
10:06
{5118} remove untested/buggy overloaded TDynArray.Delete file: [bf4ebb138a] check-in: [3046c6da25] user: ab branch: trunk, size: 2376523
10:03
{5117} hardened TDynArray.Delete when new items are about to be added file: [0a430cf578] check-in: [4edbf85398] user: ab branch: trunk, size: 2377758
09:36
{5114} proper QWord descendant handling for record/array JSON serialization file: [ad916fad59] check-in: [d5fff81571] user: ab branch: trunk, size: 2377934
2019-03-18
21:34
{5113} new TDocVariantData.SortArrayByField method file: [70904fdc26] check-in: [0c126f4045] user: ab branch: trunk, size: 2377718
13:02
{5112} new CompareCardinal() and TDynArray.Delete(index,count) methods file: [57465273b2] check-in: [21e2353175] user: ab branch: trunk, size: 2374493
2019-03-16
10:47
{5111} fixed VariantToInteger/TDocVariantData.GetAsInteger with varLongWord values file: [bb48f5c111] check-in: [44494be624] user: ab branch: trunk, size: 2372848
00:43
{5110} small refactoring / no functional change file: [663dd34157] check-in: [037ac1c46f] user: ab branch: trunk, size: 2372889
2019-03-15
08:58
{5109} fixed Delphi compilation file: [95fb5017b0] check-in: [9685be8fd3] user: ab branch: trunk, size: 2373000
2019-03-14
19:29
{5106} refactored numbers to text conversion for FPC/x86-64 file: [a12d2007ed] check-in: [44485d1518] user: ab branch: trunk, size: 2372739
11:43
{5105} fixed Delphi 5 compilation file: [7f8ee37494] check-in: [ddb59386c2] user: ab branch: trunk, size: 2372782
11:06
{5103} enhanced TSQLRestServerDB blob process file: [624513555b] check-in: [0d31ba1bd3] user: ab branch: trunk, size: 2372645
2019-03-13
15:56
{5101} ensure TAESPRNG/FillSystemRandom won't read more than 32 bytes from /dev/urandom - as expected by "man urandom" Usage file: [40c0c3ae81] check-in: [a8dcebcb93] user: ab branch: trunk, size: 2372317
2019-03-09
15:06
{5093} fix libcurl compilation under Delphi file: [5e9f39abf2] check-in: [8dff348b08] user: ab branch: trunk, size: 2372107
2019-03-08
10:22
{5090} some fixes to varUInt64/varQWord variant e.g. TDecimal128.FromVariant file: [b72b117e2c] check-in: [69c0c7647e] user: ab branch: trunk, size: 2372061
2019-03-07
15:58
{5088} enhanced TGZRead to support files > 4GB file: [d649039432] check-in: [4a459298c9] user: ab branch: trunk, size: 2371766
2019-03-05
10:59
{5087} small TSynDictionary refactoring file: [16bdafeb25] check-in: [0713b309c6] user: ab branch: trunk, size: 2371768
2019-03-04
09:56
{5085} introducing LIBCURLMULTI conditional (raw API definition only - not yet used) file: [2c39d3b37f] check-in: [be6ae9a9c0] user: ab branch: trunk, size: 2371770
2019-03-01
09:35
{5084} circumvent Delphi 5 compilation issues (mainly Internal Error C1093) file: [9dbaa5e207] check-in: [04f3cbe257] user: ab branch: trunk, size: 2371758
09:01
{5082} several fixes for GetTickCount64 on pre-Vista Windows - previous GetSystemTimeAsFileTime call was not monotonic - warning: FPC's SysUtils.GetTickCount64 or TThread.GetTickCount64 don't handle properly 49 days wrapping under XP -> always use our safer version file: [0515eef9c4] check-in: [1d1e3753be] user: ab branch: trunk, size: 2371516
2019-02-28
20:41
{5080} fixed several bugs in TAlgoCompress.Compress - if BufferOffset<>0 or Plain=nil or PlainLen=0 file: [c063d06fe6] check-in: [d6296de07f] user: ab branch: trunk, size: 2371012
11:15
{5078} added '/' in TFileVersion.UserAgent file: [0f977848c8] check-in: [ba5af20447] user: ab branch: trunk, size: 2370968
2019-02-27
14:21
{5076} added BufferOffset optional parameter to overloaded TAlgoCompress.Decompress method file: [77b5877f23] check-in: [7f6dfdd40c] user: ab branch: trunk, size: 2370966
2019-02-26
20:11
{5073} optional BufferOffset parameter to TSynPersistentStore.SaveTo and TFileBufferWriter.FlushAndCompress file: [333e2eff8a] check-in: [0bdec1d969] user: ab branch: trunk, size: 2370900
20:10
{5072} new TFastReader.ReadCompressed method file: [cffc1eb023] check-in: [43d029ff90] user: ab branch: trunk, size: 2370627
20:09
{5071} optional BufferOffset parameter to TAlgoCompress.Compress/Decompress file: [b53fea2138] check-in: [c5ce63540a] user: ab branch: trunk, size: 2370068
16:03
{5070} minor refactoring - no functional change file: [6045703eec] check-in: [19008ea337] user: ab branch: trunk, size: 2369617
2019-02-25
14:41
{5066} optimized sorting of pointer-sized array file: [1fe45e6e6f] check-in: [83e8cb7daf] user: ab branch: trunk, size: 2369463
2019-02-22
22:49
{5062} renamed QueryPerformanceCounterMicroSeconds() as QueryPerformanceMicroSeconds() file: [8bbcf1a59e] check-in: [545e533280] user: ab branch: trunk, size: 2368873
22:46
{5060} refactored TPrecisionTimer for consistency file: [cb0bb18331] check-in: [e335d9cff7] user: ab branch: trunk, size: 2368908
22:45
{5059} ensure our faster GetTickCount64 using CLOCK_MONOTONIC_COARSE is called file: [567c7aa123] check-in: [9a226dfd22] user: ab branch: trunk, size: 2368513
14:10
{5058} TPrecisionTimer optimizations (mainly for FPC on Linux/BSD/Darwin) file: [9f035b69af] check-in: [e4d55c1d16] user: ab branch: trunk, size: 2368018
13:13
{5057} new TAlgoCompress.Algo overloaded method file: [7fff1db150] check-in: [df6510da89] user: ab branch: trunk, size: 2367418
09:21
{5055} tuned documentation about crc32c() to avoid confusion with plain zlib's crc() file: [f294456e52] check-in: [282d870af7] user: ab branch: trunk, size: 2366718
2019-02-20
20:08
{5050} new OnMainThreadIdle optional parameter to TSynParallelProcess.ParallelRunAndWait - to allow e.g. direct call from the UI thread file: [1e2be05398] check-in: [3baf0168d1] user: ab branch: trunk, size: 2366547
09:46
{5049} new TPrecisionTimer.SizePerSec method file: [7a0779a4e7] check-in: [993eac30e5] user: ab branch: trunk, size: 2365642
09:45
{5048} new TSynSystemTime.ToNCSAText method file: [fd39a0d2b5] check-in: [bf530aa4f7] user: ab branch: trunk, size: 2365376
2019-02-19
14:11
{5047} tuned heap manager identifier in SYNOPSE_FRAMEWORK_FULLVERSION file: [09d048c3f5] check-in: [0be1cdc25b] user: ab branch: trunk, size: 2363097
09:51
{5046} allows SynFPCCMemAligned to use either glibc, Intel TBB or jemalloc libraires file: [24d4e35c28] check-in: [c785d45ccf] user: ab branch: trunk, size: 2363103
2019-02-18
21:27
{5044} introducing SynTBB unit and FPC_SYNTBB conditional for FPC + Intel TBB malloc use (tested on Linux x86_64 for server-side multi-threaded performance) file: [1f65b9428a] check-in: [0cf376a3c5] user: ab branch: trunk, size: 2363041
2019-02-15
18:55
{5043} optimized TDynArray.InternalSetLength file: [ee7537a83d] check-in: [a56bf1b8d7] user: ab branch: trunk, size: 2362986
12:40
{5040} small refactoring after latest changes - no functional modification file: [a58aacfa6d] check-in: [b49be37b25] user: ab branch: trunk, size: 2362956
11:03
{5038} fixed SHA256/x64-SSE4.1 process using new GetMemAligned() function file: [4a43155b69] check-in: [a783f7e4f7] user: ab branch: trunk, size: 2362746
2019-02-13
17:11
{5037} ensure PatchCode() will work even if OS memory page size is not 4KB file: [e63a6e1ccf] check-in: [3973e3ae61] user: ab branch: trunk, size: 2362253
2019-02-12
09:00
{5031} optimized PosEx() pure pascal version - especially for FPC x86_64 file: [dade9b2135] check-in: [c286434798] user: ab branch: trunk, size: 2362305
2019-02-09
10:07
{5030} new overloaded IPToCardinal() function, and CompareFloat/CompareInt64 comparators file: [c22da86107] check-in: [5b6a8b88d2] user: ab branch: trunk, size: 2362258
2019-02-08
00:18
{5028} introducing TSynQueue.WaitPeekLocked method file: [b89963cbf7] check-in: [c4137ea987] user: ab branch: trunk, size: 2361903
2019-02-07
20:08
{5027} do not override FPC $hints value (which is commonly disabled) file: [5f4ce019a7] check-in: [f9d4f6f241] user: ab branch: trunk, size: 2360202
20:07
{5026} try to return a correct folder for logs under Windows file: [97989d5077] check-in: [d1606b29b3] user: ab branch: trunk, size: 2360134
16:28
{5025} enhanced TSynQueue.WaitPopFinalize file: [6c9f8db69f] check-in: [6ee7b679ca] user: ab branch: trunk, size: 2360083
14:35
{5024} new TSynQueue.WaitPop/WaitPopFinalize methods file: [e125cad782] check-in: [529200416f] user: ab branch: trunk, size: 2359618
13:49
{5022} made TSynPersistentLock and TSynPersistentLocked aliases since allocated PSynLocker on heap is no overhead in comparison to maintaining a lock file: [68dfa7a89e] check-in: [b57ebf8438] user: ab branch: trunk, size: 2357533
2019-02-06
16:05
{5021} ensure the TDynArray.Sorted flag is set by Sort() not by SortRange() file: [3924694f5b] check-in: [176c855e90] user: ab branch: trunk, size: 2358350
15:20
{5020} use recursion only for smaller range on all QuickSort functions - thanks Maciej for the tip! see https://github.com/maciej-izak/generics.collections/blob/master/src/generics.collections.pas#L999-L1044 file: [d6d937961a] check-in: [0be4bf4fc1] user: ab branch: trunk, size: 2358351
10:53
{5019} ensure GetSystemPath(spUserData) will return ~/.cache/appname for POSIX - also used for spLog as fallback if neither /var/log nor the executable folder is writable file: [aac3d9ca50] check-in: [3f996136e3] user: ab branch: trunk, size: 2355715
09:19
{5018} TSynDaemonSettings will ensure that /var/log folder is writable file: [6bd03228c3] check-in: [036ffaf61d] user: ab branch: trunk, size: 2355001
09:11
{5017} new IsDirectoryWritable() function file: [6301dc49b2] check-in: [e9c76d078b] user: ab branch: trunk, size: 2354964
09:10
{5016} new overloaded TDynArray.Sort with TEventDynArraySortCompare comparer file: [3b6114f2f5] check-in: [440eae1cbf] user: ab branch: trunk, size: 2354326
03:49
{5015} new TAlgoCompress.UncompressedSize class method file: [0466679e75] check-in: [074d6eb497] user: ab branch: trunk, size: 2351654
2019-02-04
17:08
{5014} overloaded AddInteger/AddInt64 functions to append two dynamic arrays file: [23a0e33218] check-in: [b0c23b33b6] user: ab branch: trunk, size: 2351106
2019-01-31
22:33
{5012} more aggressive auto-resize of TTextWriter internal buffer to use 1MB when 40MB is reached (instead of 64KB) file: [c6da5ae395] check-in: [de68c72e97] user: ab branch: trunk, size: 2350191
15:29
{5011} new TSQLTable.FieldAsString() overloaded methods file: [07741d7669] check-in: [e97206e259] user: ab branch: trunk, size: 2349922
2019-01-30
18:47
{5010} avoid some unexpected Delphi compiler hints file: [028fb753be] check-in: [13bd100368] user: ab branch: trunk, size: 2349811
18:44
{5008} new TFileVersion.UserAgent method file: [73ece2910e] check-in: [3694f81626] user: ab branch: trunk, size: 2349790
2019-01-29
17:04
{5004} added fmShareDenyWrite to TTextWriter.CreateOwnedFileStream flags file: [f4dbdd9f7c] check-in: [c3223cf88c] user: ab branch: trunk, size: 2349077
2019-01-28
16:44
{5001} new TSynDictionary.FindKeyFromValue method file: [40b75a4b7d] check-in: [d42743a5c6] user: ab branch: trunk, size: 2349057
10:31
{4998} fixed MicroSecToString() with days unit - includes associated regression tests file: [c3ecabccb4] check-in: [f6bdeb3b52] user: ab branch: trunk, size: 2348117
2019-01-25
14:40
{4997} alllow days time unit in MicroSecToString() file: [2c44d9e8a9] check-in: [9b88017553] user: ab branch: trunk, size: 2348114
10:29
{4996} TDynArray documentation precision - no functional change file: [6a970b7451] check-in: [4283c063b1] user: ab branch: trunk, size: 2348026
2019-01-24
23:10
{4995} enhanced TTextWriter + new ToTextOS() function file: [a4ca1024b4] check-in: [387dac8c5d] user: ab branch: trunk, size: 2347679
14:22
{4994} new ToText(TOperatingSystemVersion) and TrimLeftLowercaseToShort() functions file: [222a9431a5] check-in: [bc7cd6e214] user: ab branch: trunk, size: 2346969
2019-01-23
23:43
{4990} fixes for GetDiskPartitions/GetDiskPartitionsText file: [57cb381f18] check-in: [06b24ae728] user: ab branch: trunk, size: 2346216
18:05
{4987} new LogEscapeFull() overloaded functions file: [8bff2c9e73] check-in: [9fc61bfcec] user: ab branch: trunk, size: 2345852
2019-01-22
10:15
{4981} new overloaded IsValidUTF8() functions file: [a62bd224e2] check-in: [e4b415f787] user: ab branch: trunk, size: 2344947
09:37
{4980} refactored TSynMonitorSize / TSynMonitorMemory / GetDiskPartitionsText to allow shorter text without spaces file: [dd597daa3f] check-in: [dca7f1a062] user: ab branch: trunk, size: 2343688
08:33
{4979} fixed TSynMonitorMemory.PhysicalMemoryTotal file: [3beb687d1c] check-in: [e89f4cde7b] user: ab branch: trunk, size: 2341550
2019-01-21
22:54
{4978} ensure TCurlHTTP handles connection timeout parameter - was left to the default libcurl value i.e. 300 seconds = 5 minutes! file: [b7e23d1f9f] check-in: [3ba7682fa9] user: ab branch: trunk, size: 2341546
20:50
{4977} comments fixes - no functional change file: [30bfdc0d3e] check-in: [43544bb662] user: ab branch: trunk, size: 2341561
16:00
{4976} some RecordSaveBase64/RecordLoadBase64 and similar optimizations file: [0eb3d2f879] check-in: [d702902209] user: ab branch: trunk, size: 2341907
11:20
{4975} new RecordSaveBytes() function file: [dc6acb96cf] check-in: [23f5a71ac7] user: ab branch: trunk, size: 2340734
10:55
{4973} new OS_INITIAL[] constants file: [88a0ce2d3a] check-in: [3558872782] user: ab branch: trunk, size: 2340306
08:07
{4971} minor changes to DateTimeToUnixMSTime() and GetExtended() file: [7d3ca7ee3a] check-in: [dda4f803b8] user: ab branch: trunk, size: 2339918
2019-01-17
21:54
{4970} some comments changes - no function modification file: [9541dc74ba] check-in: [4ec53ebc38] user: ab branch: trunk, size: 2339783
2019-01-16
16:30
{4969} circumvent some Delphi compilation bugs file: [f879217c38] check-in: [c8dab74f07] user: ab branch: trunk, size: 2339751
16:21
{4968} several fixes to BufferLineLength() - with associated regression tests file: [6cf41458e3] check-in: [9a5752ad78] user: ab branch: trunk, size: 2339742
13:43
{4966} introducing PosExChar() fast function file: [c23ed02c9a] check-in: [107c5eacac] user: ab branch: trunk, size: 2339989
13:41
{4965} introducing BufferLineLength() fast function file: [1bf1b2dfc6] check-in: [03e99ea7f1] user: ab branch: trunk, size: 2339551
2019-01-15
19:16
{4963} ensure proper x86_64 registers use on some functions file: [5373b2480e] check-in: [39a561512e] user: ab branch: trunk, size: 2336203
16:05
{4961} optimized GetExtended() for FPC/x86-64 file: [8c843acece] check-in: [0a626b8d83] user: ab branch: trunk, size: 2336234
2019-01-14
20:10
{4957} introducing TParserAbstract to allow any kind of expression parsers (e.g. SQL evaluator) file: [02eff1f748] check-in: [b65e79c2b2] user: ab branch: trunk, size: 2336109
2019-01-12
15:03
{4954} fixed reference-counting in TJSONCustomParserRTTI.FinalizeNestedArray - thanks maciej for the feedback! file: [84fdc38a06] check-in: [23611433a6] user: ab branch: trunk, size: 2336088
2019-01-08
17:37
{4948} new TMatch.PrepareContains method and several optimizations to TMatch search file: [b8e16a592d] check-in: [8a48bad258] user: ab branch: trunk, size: 2335958
14:52
{4947} fixed IsCaseSensitive() to work as expected - it was working like a IsUpperCase() function file: [e8e2e8a192] check-in: [777759e4ff] user: ab branch: trunk, size: 2335537
2019-01-07
20:05
{4944} new TExprParserMatch class for efficient search expression parsing file: [ed64f886aa] check-in: [98d50f9a25] user: ab branch: trunk, size: 2335602
09:06
{4942} exclude UID from stackoverflow.com links comments file: [a2679d2b67] check-in: [4a0320b5ac] user: ab branch: trunk, size: 2335600
09:04
{4941} proper detection of Windows Server 2019 edition file: [c4e2ef7baa] check-in: [7809d533cc] user: ab branch: trunk, size: 2335516
2019-01-04
11:57
{4940} fixed SortDynArrayString on Delphi 2009+ (circumvent RTL's SysUtils.StrComp bug) file: [cce203b6fe] check-in: [263e2e02fb] user: ab branch: trunk, size: 2335359
2019-01-03
13:27
{4937} new TSynSystemTime.ToDateTime method file: [aa101ffe6f] check-in: [39a6040780] user: ab branch: trunk, size: 2335299
13:26
{4936} FPC fix: incorrect usage of TPrecisionTimer.ProfileCurrentMethod in SynDBOracle - from https://github.com/synopse/mORMot/pull/169 file: [85b401fb7a] check-in: [24973b0c1e] user: ab branch: trunk, size: 2334907
2018-12-31
16:50
{4933} happy new year 2019 ! :) file: [99db0d3409] check-in: [d1590bef54] user: ab branch: trunk, size: 2334825
2018-12-29
12:43
{4932} fixed Delphi compilation - sounds like if we really spend all our time in FPC/Lazarus now :) file: [5cf3e5b5e8] check-in: [0e40f5ef46] user: ab branch: trunk, size: 2334825
2018-12-28
19:51
{4931} new %L format specifier for ScanUTF8() file: [286c8cdde4] check-in: [2a05878b0b] user: ab branch: trunk, size: 2334868
2018-12-27
14:35
{4929} please some paranoid valgrid expectations for https://github.com/synopse/mORMot/pull/168 file: [cd40edc4a4] check-in: [ac89bf90c6] user: ab branch: trunk, size: 2334576
13:38
{4928} TSynTempBuffer.Init and TSQLTableJSON will always allocate 16 more bytes than required - for a trailing #0 and to ensure our (e.g. TDocVariant) fast JSON parsing won't trigger any GPF (since it may read up to 4 bytes ahead via its PInteger() trick) or any SSE4.2 function applied on the buffer - fix for https://github.com/synopse/mORMot/pull/168 - also fixed other potential buffer overflows (especially in TTextWriter) file: [1b0cc0417f] check-in: [3e501bc977] user: ab branch: trunk, size: 2334958
2018-12-26
09:49
{4926} minor refactoring of SynCrtSock (no functional change) - mainly about performance and Kylix compatibility file: [be7df5432f] check-in: [c2cf1c2f33] user: ab branch: trunk, size: 2334233
2018-12-19
18:25
{4924} new IsCaseSensitive() function file: [30177bd05a] check-in: [0bda9de879] user: ab branch: trunk, size: 2334233
2018-12-17
20:10
{4921} introducing low-level GetMemoryInfo() API function file: [8254595d56] check-in: [5627784bdf] user: ab branch: trunk, size: 2333707
2018-12-14
16:59
{4919} optionally include the free disk space to GetDiskPartitionsText() - used for remote REST status of the serve too file: [16e17de608] check-in: [7bfa375026] user: ab branch: trunk, size: 2332474
16:57
{4917} new TSynLogFamily.WithInstancePointer property to optionally reduce log verbosity file: [a8a28210c3] check-in: [1bbe0b673a] user: ab branch: trunk, size: 2332221
16:55
{4916} published PDynArrayRec to allow TDynArray.GetCount inlining file: [09500d34ab] check-in: [6c70430e85] user: ab branch: trunk, size: 2332143
2018-12-13
21:20
{4914} new GetDiskPartitions/GetDiskPartitionsText functions file: [eab7ffd63e] check-in: [28090d8b33] user: ab branch: trunk, size: 2331888
21:18
{4913} enhanced TIntelCpuFeatures with latest CPUID flags file: [8d75f45aa2] check-in: [a6612e1e2c] user: ab branch: trunk, size: 2327306
2018-12-09
20:18
{4910} after latest merges, fixes for compilation on all targets (especially old Delphi compilers) file: [0a1e8779de] check-in: [7bbc0e3426] user: ab branch: trunk, size: 2327283
19:57
{4906} new functions to handle unquoting CSV strings - from https://github.com/synopse/mORMot/pull/160 file: [515a8a9c80] check-in: [5945d07b63] user: ab branch: trunk, size: 2327249
2018-12-04
17:49
{4903} fixed TSynAnsiConvert.AnsiBufferToUnicode for FPC/POSIX file: [076ca4fa46] check-in: [bb91db8b0c] user: ab branch: trunk, size: 2325349
2018-12-03
16:27
{4902} avoid wrongly deleted content with FillZero(RawUTF8/RawByteString) file: [4f10f04194] check-in: [c68f92fd3f] user: ab branch: trunk, size: 2325349
12:24
{4896} TextColor - prevent unnecessary syscalls - from https://github.com/synopse/mORMot/pull/157 file: [6ec02c5b00] check-in: [6c5d9cbd53] user: ab branch: trunk, size: 2325349
12:22
{4895} fix some valgrind warnings - from https://github.com/synopse/mORMot/pull/159 file: [45d0c9bddc] check-in: [0af702170c] user: ab branch: trunk, size: 2325326
2018-11-29
10:23
{4891} published TDynArrayHashed.ElemPtr/ElemCopyAt methods for Unicode Delphi file: [99cf87161a] check-in: [c112ee3ed2] user: ab branch: trunk, size: 2325103
2018-11-19
08:20
{4882} unmapping memory mapped files for Unix - mpv patch from https://github.com/synopse/mORMot/pull/152 file: [8fdfb55c87] check-in: [2c66e63c91] user: ab branch: trunk, size: 2324801
2018-11-16
17:37
{4879} optimized VariantToBoolean(null) file: [41b7a34c2f] check-in: [6bf92e8022] user: ab branch: trunk, size: 2324857
2018-11-05
17:08
{4871} optional LeftStr output parameter to SplitRight() function file: [5243984f5f] check-in: [a5d3448cd4] user: ab branch: trunk, size: 2324788
16:42
{4868} fixed documentation - gitpull request from mpv file: [8cc49053fe] check-in: [a1810e8d7a] user: ab branch: trunk, size: 2324491
2018-10-30
11:45
{4865} introducing TSynLogSettings class for simple log-related settings file: [5feb80804e] check-in: [fb9928b577] user: ab branch: trunk, size: 2324530
2018-10-27
12:14
{4863} new GetDiskInfo() cross-platform function file: [e54bdf1dd9] check-in: [f44401d68c] user: ab branch: trunk, size: 2324456
10:03
{4862} introducing TSynLocker.TryLockMS method file: [718062624a] check-in: [34436fd19c] user: ab branch: trunk, size: 2323534
2018-10-26
20:44
{4861} hardened TStream.Write use in case of I/O failure file: [53c54c44dc] check-in: [351e38c844] user: ab branch: trunk, size: 2322983
2018-10-25
15:42
{4859} recognize Delphi 10.3 as "Rio" version file: [9adbefdb90] check-in: [0079ebd50d] user: ab branch: trunk, size: 2322568
2018-10-23
09:59
{4857} DateTimeToFileShort() will truncate years >= 2100 as "99xxxx" file: [eb043b20bd] check-in: [9a65970108] user: ab branch: trunk, size: 2322524
2018-10-19
07:26
{4855} breaking change: use LF (#10) instead of CR (#13) for single-char end of line - previous #13 usage was very misleading, especially on Unix systems file: [fa7126f99b] check-in: [9d4d385964] user: ab branch: trunk, size: 2322480
06:13
{4854} FPC/Linux: TextColor do nothing in case stdout is not a TTY - thanks mpv for the github pull request file: [c5ae1256a5] check-in: [964384221e] user: ab branch: trunk, size: 2322338
2018-10-18
18:16
{4852} new cross-platform FILES_ALL constant file: [6417703f80] check-in: [0f36425301] user: ab branch: trunk, size: 2322090
2018-10-17
10:30
{4850} fixed TSynLogOnBeforeException documentation file: [822f3b54fa] check-in: [24fedb6c83] user: ab branch: trunk, size: 2321836
2018-10-16
17:22
{4848} try to circumvent some weird Delphi compiler bug with "object" file: [b3ca97d5bd] check-in: [40f53ff03b] user: ab branch: trunk, size: 2321728
2018-10-11
21:33
{4846} new TSynLocker.IsInitialized property file: [e78ad70494] check-in: [146a3cd900] user: ab branch: trunk, size: 2321502
20:58
small documentation fix for RegisterCustomJSONSerializerFromText file: [bb093a7203] check-in: [de768be863] user: mpv branch: trunk, size: 2321146
10:13
{4843} let TDynArray.AddArray() return the number of added items file: [e396f7828f] check-in: [b693f3c52b] user: ab branch: trunk, size: 2321156
2018-10-10
08:21
{4842} detect Alpine Linux distribution file: [159c5563b6] check-in: [70f6b8d0f9] user: ab branch: trunk, size: 2321070
2018-10-09
12:43
{4841} try to circumvent FPC issue on NowUTC - github pull request from mpv file: [fd9e036723] check-in: [a4fdf84827] user: ab branch: trunk, size: 2320750
2018-10-08
12:48
{4840} fixed TSynParallelProcess.ParallelRunAndWait when self is nil file: [ae5f23f885] check-in: [2e15ab553c] user: ab branch: trunk, size: 2320708
2018-10-06
10:47
{4838} new aUpdateTimeOut optional parameter to TSynDictionary.FindAndCopy file: [a10e16a0e3] check-in: [9c37596420] user: ab branch: trunk, size: 2320687
2018-10-04
22:39
{4833} refactoring of the socket (Linux) HTTP server thread pool - much increased stability on high concurrent load file: [e15f11e6c9] check-in: [7bf96df21f] user: ab branch: trunk, size: 2320605
2018-10-03
15:16
{4830} merged github pull request - thanks f-vicente! file: [6ec0b4fa58] check-in: [0e75c46ac1] user: ab branch: trunk, size: 2320603
11:55
{4829} added optional NotBeforeDelta parameter to TJWTAbstract.VerifyPayload file: [03a46ee706] check-in: [18c1dbcf84] user: ab branch: trunk, size: 2320583
2018-10-02
14:39
{4828} let KB() return PB/ET units file: [57098c948f] check-in: [f39944c8bf] user: ab branch: trunk, size: 2320579
07:51
{4826} it is always better with the actual files (need more coffee this morning!) file: [00952ce95a] check-in: [fb62d2c7c3] user: ab branch: trunk, size: 2320197
2018-10-01
08:49
{4823} new FileInfoByHandle() cross-platform function file: [0c4d643767] check-in: [7be804bd1e] user: ab branch: trunk, size: 2319573
2018-09-28
21:57
{4821} breaking change: refactor TAlgoCompress.Compress() overload procedure as a function instead of out parameter to avoid GPF when Plain/PlainLen point indeed to result file: [e6c9c37e0a] check-in: [9c7cd83b1c] user: ab branch: trunk, size: 2317387
13:51
{4820} new GetSystemPath(spLog) item and TDynArray.ArrayTypeShort property file: [e6cfe80c91] check-in: [72cea4ea1a] user: ab branch: trunk, size: 2316680
2018-09-25
20:14
{4813} proper MVC values decoding from RTTI as reported in https://synopse.info/forum/viewtopic.php?pid=28100 file: [58aa0a3c38] check-in: [36a766021d] user: ab branch: trunk, size: 2316166
2018-09-15
00:49
{4800} new EscapeToShort() overloaded functions file: [506917a97e] check-in: [ae72ed5ac8] user: ab branch: trunk, size: 2316152
2018-09-14
14:08
{4799} introducing TSynDictionary.SetTimeoutAtIndex file: [335e62e977] check-in: [c4bf82d254] user: ab branch: trunk, size: 2315386
2018-09-12
22:08
{4796} new TFindFiles.ToText and TFastReader.Next4/Next8 methods file: [c1a42d9758] check-in: [15857110a9] user: ab branch: trunk, size: 2314814
22:07
{4795} new DateTimeToFileShort() overloaded functions file: [5a51e0eeb9] check-in: [66426563d3] user: ab branch: trunk, size: 2313976
2018-09-10
13:01
{4791} allow e.g. --fork switch (idem to /f -f /fork -fork) for service command lines file: [633c567084] check-in: [48a9a2e806] user: ab branch: trunk, size: 2312953
2018-09-05
22:17
{4785} ensure TTextWriter.AddChars will work with any count of chars to append file: [0992aaf9ea] check-in: [ec3cdb7070] user: ab branch: trunk, size: 2312956
2018-09-02
21:24
{4780} new SplitRights() function - also include some refactoring to please FPC on ARM file: [0869239d81] check-in: [8b1a4a7df3] user: ab branch: trunk, size: 2312845
2018-09-01
02:34
{4779} introducing SortDynArrayRawByteString to allow proper RawByteString process especially in TDynArray/TDynArrayHashed and TSynDictionary file: [ecc9047f16] check-in: [b94a258ae4] user: ab branch: trunk, size: 2311987
2018-08-31
08:55
{4776} fixed custom events interception for https.sys body (from maciej's github pull request - thanks!) file: [fd467d1104] check-in: [ede210f712] user: ab branch: trunk, size: 2310939
2018-08-30
19:42
{4775} proper Linux Distribution detection for System Information file: [18910ccd77] check-in: [bc1a4bbb9c] user: ab branch: trunk, size: 2310937
16:28
{4774} fixed an (FPC only?) awfull race condition in SynTest when tcoLogEachCheck is used from multiple threads file: [c0b2a460f4] check-in: [42d505870b] user: ab branch: trunk, size: 2308596
00:12
{4772} new ClearBeforeCopy optional parameter to TDynArray.ElemCopyFrom - used e.g. for safer TSynDictionary.AddOrUpdate file: [257d6f588c] check-in: [a31c722f65] user: ab branch: trunk, size: 2308587
00:10
{4771} new FormatUTF8ToVariant() function file: [b892fe4854] check-in: [4449c4fb3f] user: ab branch: trunk, size: 2308184
2018-08-28
20:53
{4767} allow no compression for TSynDictionary.SaveToBinary file: [dac94d084f] check-in: [9f3c52b8ea] user: ab branch: trunk, size: 2307833
00:06
{4766} try to circumvent Internal Error C1093 on Delphi 5 :( file: [23db67145a] check-in: [dfe2942684] user: ab branch: trunk, size: 2307520
2018-08-27
23:46
{4765} minor refactoring - no functional change file: [e7d15e508b] check-in: [6fa632e536] user: ab branch: trunk, size: 2307347
2018-08-26
22:43
{4763} minor comments/wrappers refactoring file: [0bd71af475] check-in: [1ce082dc5e] user: ab branch: trunk, size: 2306661
2018-08-25
16:40
{4762} new FileTimeToUnixMSTime and FileTimeToUnixTime functions file: [ed2a40017d] check-in: [426759d12b] user: ab branch: trunk, size: 2306613
2018-08-24
07:49
{4760} update some conditional for new FPC branches (github pull request) file: [bdfe9339c0] check-in: [e76e24c904] user: ab branch: trunk, size: 2305667
2018-08-23
20:30
{4758} new UnixMSTimeToFileShort() function file: [78606abaef] check-in: [cedc1f5c75] user: ab branch: trunk, size: 2305595
11:53
{4757} new TFastReader.VarNextInt methods file: [bf4c076d84] check-in: [8729a4c058] user: ab branch: trunk, size: 2304400
09:24
{4754} some conditional refactoring to leverage latest FPC branches file: [276ff71f9f] check-in: [e26b34644d] user: ab branch: trunk, size: 2302626
2018-08-21
15:23
{4750} immediate notification of TSynBackgroundThreadAbstract.Pause change to the Execute loop file: [96991fac2e] check-in: [ebf0345132] user: ab branch: trunk, size: 2302646
15:20
{4749} more human-friendly KB() output file: [287eb17e9f] check-in: [7682feb45a] user: ab branch: trunk, size: 2302320
15:20
{4748} new aMaxSize optional parameter to AppendToTextFile file: [c04f076b9b] check-in: [f4c800323b] user: ab branch: trunk, size: 2302241
15:19
{4747} new SearchRecValidFile() function file: [6b6540b80c] check-in: [9119e8225d] user: ab branch: trunk, size: 2302125
07:29
{4745} new TSynSystemTime.AddLogTime method file: [388638d74b] check-in: [a9e3ede903] user: ab branch: trunk, size: 2301990
2018-08-20
14:09
{4744} refactored DeduplicateInteger/DeduplicateInt64 and TDynArrayHashed.Count file: [deb8a16c18] check-in: [413dd79458] user: ab branch: trunk, size: 2302085
14:08
{4743} new TSynTempBuffer.InitZero method file: [81e25b3764] check-in: [d214d551bd] user: ab branch: trunk, size: 2301815
2018-08-19
13:06
{4742} several performance optimizations mainly about text processing file: [62229a4e09] check-in: [ba624c69fc] user: ab branch: trunk, size: 2301550
13:00
{4741} circumvent Delphi 2007 C2096 internal error file: [9c9a0589c2] check-in: [581c6f3daf] user: ab branch: trunk, size: 2301232
2018-08-18
20:24
{4739} circumvent a Delphi bug file: [92143a9f1a] check-in: [d99965b482] user: ab branch: trunk, size: 2301178
16:37
{4738} new IP6Text() overloaded function file: [f8ba37efc3] check-in: [39b7706910] user: ab branch: trunk, size: 2301180
2018-08-17
19:20
{4737} TDynArray will recognize THash128/THash256/THash512 pattenrs file: [7ee3baf2d6] check-in: [d92e194309] user: ab branch: trunk, size: 2300885
16:17
{4736} BREAKING CHANGE: JsonDecode() functions returns values on the stack - to reduce heap use, and avoid unneeded calls to StrLen() for faster process - also for less error-prone object values decoding file: [a919261bcd] check-in: [85d38e604c] user: ab branch: trunk, size: 2297291
16:04
{4735} refactored TDynArray known types recognition from RTTI file: [d885d9cdab] check-in: [e0b5b22b14] user: ab branch: trunk, size: 2295555
16:02
{4734} tuned/refactored SSE4.2 assembly file: [ef55a965a3] check-in: [c5dfcedc79] user: ab branch: trunk, size: 2295723
16:01
{4733} published DeduplicateInt64Sorted/DeduplicateIntegerSorted functions file: [d4fba67f53] check-in: [a1bd613a91] user: ab branch: trunk, size: 2295520
16:00
{4732} added FormatString() overloaded function file: [f611bcb251] check-in: [60924a8c05] user: ab branch: trunk, size: 2295308
2018-08-16
20:45
{4731} includes missing chars of the latest commit file: [0b0ccbd3b5] check-in: [d491216417] user: ab branch: trunk, size: 2294753
18:26
{4730} introducing FormatString() new function file: [f0d13a5e91] check-in: [d751bed68c] user: ab branch: trunk, size: 2294732
14:44
{4728} small refactoring of xxHash32() and aesencryptx64() asm functions file: [ed8e7256b5] check-in: [632a111071] user: ab branch: trunk, size: 2294070
14:42
{4727} new FastSetString() signature for UTF-8 content file: [a4a0562cfc] check-in: [04be6929ee] user: ab branch: trunk, size: 2294127
2018-08-13
18:16
{4722} optimized FPC support file: [545840625a] check-in: [0965f561a2] user: ab branch: trunk, size: 2294215
2018-08-09
16:23
{4721} fixed Lizard partial decompression file: [99b6d91f8b] check-in: [1cff7146c7] user: ab branch: trunk, size: 2292858
2018-08-08
21:22
{4720} new TDocVariantData.FillZero and FillZero(variant) functions file: [0c862d827e] check-in: [7fe6458750] user: ab branch: trunk, size: 2292302
10:26
{4719} fixed Delphi 32-bit compilation file: [8fdb42602b] check-in: [7d25acba9a] user: ab branch: trunk, size: 2291446
2018-08-07
17:31
{4718} circumvent Delphi 64-bit compiler issue file: [682fee4104] check-in: [49d3db2ad4] user: ab branch: trunk, size: 2290903
17:03
{4717} small optimizations and fixes - no functional change file: [b1214775f0] check-in: [9a15aebd51] user: ab branch: trunk, size: 2290911
14:40
{4716} moved TRawByteStringGroup to SynTable unit file: [9f7ce265ff] check-in: [d501fda845] user: ab branch: trunk, size: 2290340
13:57
{4713} new TSynSystemTime.Clear method file: [0d574ddd4f] check-in: [5a21334d1f] user: ab branch: trunk, size: 2302983
2018-08-06
08:54
{4709} fixed FPC Darwin and ARM compilation file: [d1e0016e83] check-in: [377813c3b0] user: ab branch: trunk, size: 2302767
2018-08-05
21:27
{4706} fixed FPC x86 compilation file: [0a7832f39c] check-in: [f10688dde5] user: ab branch: trunk, size: 2302672
2018-08-01
20:41
{4705} moved some classes to SynTable to reduce the SynCommons size - also circumvent some Delphi IDE unexpected hangups file: [9cad373d27] check-in: [4990422963] user: ab branch: trunk, size: 2302609
15:54
{4704} new SetMatchs() function file: [64c9265116] check-in: [fad921302f] user: ab branch: trunk, size: 2388763
2018-07-31
23:11
{4703} introducing overloaded FileSize(THandle) cross-platform function file: [34ae64ea1a] check-in: [220e7c48a2] user: ab branch: trunk, size: 2388465
16:44
{4700} enhanced CamelCase() and TRawUTF8ListLocked file: [917f2d96db] check-in: [31a3acb392] user: ab branch: trunk, size: 2388119
2018-07-30
12:26
{4698} optimized TDynArray and TSynDictionary item copy file: [d8ed60c909] check-in: [614c370d18] user: ab branch: trunk, size: 2387021
2018-07-26
21:55
{4695} ensure tkInterface consume 64 bits on binary serialization even on CPU32 - it will ensure binary compatibility when stored between CPUs - of course, expect the interface variables to be nil for out-of-process serialization file: [4c105ce73b] check-in: [5f76f9fd23] user: ab branch: trunk, size: 2386372
18:49
{4693} protected a SOA stats lock file: [b56db360d9] check-in: [d9c2eb9672] user: ab branch: trunk, size: 2386279
10:38
{4691} try to circumvent Delphi 2009 compilation issues file: [b7fa1cc9a7] check-in: [a9332bde73] user: ab branch: trunk, size: 2386051
2018-07-25
19:31
{4690} fixed ObjArrayAppend() - thanks PBa for the patch! file: [a58a4255ac] check-in: [4e9f35e952] user: ab branch: trunk, size: 2386219
15:39
{4689} optimized UpperCopy255Buf() for 64-bit using registers on pure pascal code, and introducing a SSE4.2 x86-64 asm version file: [dcbb25c028] check-in: [47312576ac] user: ab branch: trunk, size: 2386209
15:36
{4688} enhanced asm alignment with FPC file: [b1cc07d8c1] check-in: [b42addb7ae] user: ab branch: trunk, size: 2384341
08:08
{4687} introducing TDynArray.SortRange method file: [38ed78a973] check-in: [1a224a41da] user: ab branch: trunk, size: 2384107
2018-07-24
20:41
{4686} new ObjArrayAppend() function file: [ce24f338ef] check-in: [98dc1af6e5] user: ab branch: trunk, size: 2383523
2018-07-21
22:38
{4683} optimized Intel asm code for better micro-ops fusion file: [884dd77d86] check-in: [bb0af92d37] user: ab branch: trunk, size: 2382675
22:32
{4682} ensure hash is not performed before TSynAlgo decompression when asked file: [05d1bcff11] check-in: [8b162ec32a] user: ab branch: trunk, size: 2383093
22:30
{4681} optimized varint encoding file: [ba2242c367] check-in: [c6aa0e1c53] user: ab branch: trunk, size: 2383083
22:29
{4680} new BinToHexDisplayLowerShort16() function file: [e487278efc] check-in: [29a5bb8fa3] user: ab branch: trunk, size: 2383026
2018-07-20
23:12
{4678} let KB() and MicroSecToString() return a TShort16 file: [46507db5c2] check-in: [4797cbf279] user: ab branch: trunk, size: 2382017
20:24
{4677} new overloaded KB(RawByteString) function file: [872a5481b5] check-in: [2ffa74e702] user: ab branch: trunk, size: 2381521
19:31
{4676} refactored varint reading for best performance especially with FPC / x86-64 file: [7d0b44160e] check-in: [a697ff1797] user: ab branch: trunk, size: 2381162
19:29
{4675} optimized date/time text serialization file: [dd5ed34eaa] check-in: [6e2b0158ea] user: ab branch: trunk, size: 2378704
2018-07-19
08:19
{4672} ensure TMemoryMap allows more than 2GB of mapped buffer in 64-bit OS file: [b5aaf206bf] check-in: [f6ac16add7] user: ab branch: trunk, size: 2378167
2018-07-18
20:44
{4670} new AddWord() function file: [d01e274c4c] check-in: [dcc0284139] user: ab branch: trunk, size: 2378216
2018-07-17
13:20
{4666} several FPC-focused optimizations file: [6a13e3a4f2] check-in: [74a3ff27d2] user: ab branch: trunk, size: 2377745
09:46
{4665} UTF-8 content comparison optimization file: [294917d974] check-in: [4bc4b1e3f7] user: ab branch: trunk, size: 2377850
09:43
{4663} wide string process optimization file: [1da3ae864d] check-in: [d6917e0a13] user: ab branch: trunk, size: 2377703
2018-07-14
12:37
{4660} published IP4Text() function file: [9d91b351e6] check-in: [a7c9f079aa] user: ab branch: trunk, size: 2380184
2018-07-11
12:42
{4657} fixed ARM compilation (FPC) file: [39379940a9] check-in: [7bff57de88] user: ab branch: trunk, size: 2380203
2018-07-10
21:16
{4656} published raw MD5-SHA1/256/512 transform functions file: [fb2b4094e9] check-in: [c9ce1a44f1] user: ab branch: trunk, size: 2380183
09:20
{4655} optimized FindIniNameValue() function file: [e2fa186166] check-in: [66fd7f15ba] user: ab branch: trunk, size: 2380159
2018-07-09
18:00
{4654} optimized time computation under Linux and FPC file: [511f91e0bd] check-in: [101e414bf0] user: ab branch: trunk, size: 2379817
17:58
{4653} new UnixTimeToFileShort() function file: [8014cdccc7] check-in: [1a7978d593] user: ab branch: trunk, size: 2379406
2018-07-06
20:18
{4651} some optimizations to TDynArray/TDynArrayHashed file: [539496368c] check-in: [2e7b6b6a4e] user: ab branch: trunk, size: 2378549
2018-07-03
17:36
{4650} added MD5 and SHA256 hashes to the /version command line switch for services to identify incorrect or tempered executables file: [7ecad2483d] check-in: [7dc8ae6fe3] user: ab branch: trunk, size: 2378340
08:09
{4649} fixed compilation on some Delphi revisions file: [35685805db] check-in: [c646977e71] user: ab branch: trunk, size: 2378349
2018-06-29
17:54
{4648} new TTextWriter.RegisterCustomJSONSerializerFromTextBinaryType overloaded class method file: [a502c89287] check-in: [c174d75e35] user: ab branch: trunk, size: 2378077
07:40
{4647} new overloaded paramter-less TSynTempBuffer.Init function to be used e.g. when calling APIs file: [6731722060] check-in: [abdb267dfe] user: ab branch: trunk, size: 2376743
2018-06-28
15:47
{4644} get rid of inefficient TBitScan record -> use GetBit() function instead file: [479d233839] check-in: [47367ec279] user: ab branch: trunk, size: 2376323
2018-06-26
17:42
{4643} circumvent Android FPC compilation issue (another try) file: [93f970f56c] check-in: [1c8350e285] user: ab branch: trunk, size: 2377504
2018-06-25
18:55
{4642} try to fix IdemPropNameUSameLen/IdemPropNameU on Android file: [82109ae84d] check-in: [5068ddbe77] user: ab branch: trunk, size: 2377700
08:27
{4641} small optimizations for FPC file: [800879062e] check-in: [4611c72299] user: ab branch: trunk, size: 2377708
2018-06-22
16:22
{4636} Ecc/TDecimal128 performance optimizations (mainly x86-64) file: [82ab18dd25] check-in: [520bd7f2a3] user: ab branch: trunk, size: 2377969
16:19
{4635} date/time process enhancements using RCU and 64-bit platforms optimization file: [1d539c055a] check-in: [25ae4f4342] user: ab branch: trunk, size: 2378046
11:32
{4634} globallly cached current date/time information with 8-16ms resolution file: [ac01610116] check-in: [5db4db365c] user: ab branch: trunk, size: 2376094
10:17
{4631} fixed ORM Delete() with a where clause on external database file: [eede1c057d] check-in: [ad37d9d785] user: ab branch: trunk, size: 2376792
2018-06-21
22:50
{4630} fix issue in latest commit file: [e333529640] check-in: [7708fda03c] user: ab branch: trunk, size: 2376954
22:11
{4629} optimized number to text conversion file: [4a729be3b6] check-in: [788f2afac4] user: ab branch: trunk, size: 2377600
10:24
{4628} refactoring of the record RTTI process - especially to allow proper handling of any latest FPC trunk changes file: [70dd9d608e] check-in: [0c9ce7c76c] user: ab branch: trunk, size: 2377749
07:30
{4626} small tuning for oldest Delphi file: [e0e88364d6] check-in: [386f82f798] user: ab branch: trunk, size: 2380273
2018-06-20
16:54
{4625} introducing TBitScan wrapper object file: [2d5a45c278] check-in: [fd1ac53ed8] user: ab branch: trunk, size: 2380321
14:41
{4624} refactored some bit manipulation functions file: [8604028c45] check-in: [d08a1be577] user: ab branch: trunk, size: 2379314
2018-06-19
16:47
{4623} several micro-optimization of very used low-level code - targetting best performance on FPC and modern Delphi on X86-64 file: [6332983281] check-in: [5dc3ab75c8] user: ab branch: trunk, size: 2378525
2018-06-18
08:30
{4622} new TFastReader.OnErrorOverflow/OnErrorData event handlers file: [8a33ad7b86] check-in: [dd4af67fed] user: ab branch: trunk, size: 2376800
2018-06-15
10:00
{4620} introducing BiosInfoText global variable file: [7095d5f064] check-in: [49cc925340] user: ab branch: trunk, size: 2376258
2018-06-14
11:59
{4618} tuned code for better FPC generated asm optimization file: [c632e2ca52] check-in: [204393d2a4] user: ab branch: trunk, size: 2375031
2018-06-13
21:00
{4617} fixed TRawUTF8List.LoadFromFile file: [26452288be] check-in: [641362ff27] user: ab branch: trunk, size: 2374014
12:44
{4616} new EnumAllProcesses/EnumProcessName functions and TProcessInfo object - for low-level CPU/Process monitoring on Windows file: [999264b62c] check-in: [ebe1bc65d8] user: ab branch: trunk, size: 2373702
2018-06-12
12:33
{4615} new overloaded StringBufferToUtf8/StringToUTF8 functions file: [2d5d3bb41e] check-in: [553c3872b2] user: ab branch: trunk, size: 2368848
2018-06-09
00:18
{4610} fixed Delphi 5 compilation file: [994a053002] check-in: [0d5dc10dc5] user: ab branch: trunk, size: 2368122
2018-06-08
23:37
{4608} new TServiceMethodArgument.FromJSON method - suppress duplicated code for JSON deserialization of in-memory interface call parameters file: [b652667021] check-in: [a0d63be2b1] user: ab branch: trunk, size: 2368042
2018-06-07
15:50
{4605} new TSynPersistentStoreJson class file: [30d41ed575] check-in: [41385f052a] user: ab branch: trunk, size: 2367962
09:59
{4603} fixed a very nasty bug in ToVarUInt32() x86 asm code - please upgrade to this version! file: [5ad5aab4d9] check-in: [13e2c19176] user: ab branch: trunk, size: 2367062
09:54
{4600} enhanced double to text serialization precision on 64-bit CPU as expected by some tests file: [ff55c24a93] check-in: [a3e3e4b1e0] user: ab branch: trunk, size: 2367054
2018-06-05
20:55
{4598} fixed dvoAllowDoubleValue process of some numbers file: [826216611e] check-in: [ee60f02c55] user: ab branch: trunk, size: 2366331
20:54
{4597} new BinToBase64uriShort() function file: [df87cf468f] check-in: [62efc01b29] user: ab branch: trunk, size: 2366311
2018-05-30
20:49
{4592} tuned TFastReader inlining file: [856a771b05] check-in: [bec648b394] user: ab branch: trunk, size: 2365606
20:47
{4591} introducing TSynPersistentStore.fLoadFromLastAlgo protected field file: [365d059ba3] check-in: [76bc61797e] user: ab branch: trunk, size: 2365698
2018-05-24
21:43
{4589} ensure TFileBufferWriter.WriteShort will properly encode length>127 file: [7df1a2dfcf] check-in: [15f50a25e8] user: ab branch: trunk, size: 2365633
2018-05-23
20:48
{4588} detect duplicated forked daemon file: [f79741decf] check-in: [e0524ce47c] user: ab branch: trunk, size: 2365452
12:46
{4585} small optimization of StrCompSSE42() file: [a00b5d9b9b] check-in: [38d8780ec2] user: ab branch: trunk, size: 2365414
2018-05-22
17:03
{4584} new TSynPersistentStore.LoadFromLastUncompressed/SaveToLastUncompressed properties file: [695cba38cb] check-in: [8b5bafc98d] user: ab branch: trunk, size: 2365470
2018-05-13
21:19
{4578} small refactoring of KB() implementation - no functional change file: [32b8fc4047] check-in: [8eb853ddbc] user: ab branch: trunk, size: 2365120
2018-05-11
18:55
{4576} added optional aContractExpected parameter to TSQLRestClientURI.ServiceDefineSharedAPI file: [eb4aff6f98] check-in: [a0eb145199] user: ab branch: trunk, size: 2365006
09:43
{4575} introducing FormatShort() used e.g. by KB() and MicroSecToString() file: [790d36dda5] check-in: [668bcc532d] user: ab branch: trunk, size: 2365006
2018-05-10
18:45
{4574} new Random32gsl() overloaded functions file: [dee5637ebf] check-in: [c3bf3d55c4] user: ab branch: trunk, size: 2362100
2018-05-08
17:35
{4572} Record binary serialization will handle interface fields - with proper reference counting but as local pointers only, not as value able to be remotely transmitted file: [22f9cc572f] check-in: [42f70a895f] user: ab branch: trunk, size: 2361177
2018-05-02
10:25
{4561} new optional InlinedValue parameter to IntegerDynArrayToCSV/Int64DynArrayToCSV file: [5679e2b942] check-in: [6e32db312b] user: ab branch: trunk, size: 2360754
2018-04-30
13:55
{4558} fixed Delphi compilation file: [1ca0768a99] check-in: [9f55c727ba] user: ab branch: trunk, size: 2359924
13:44
{4557} introducing _JsonFastExt() and overloaded DeduplicateInteger/DeduplicateInt64() functions file: [c2cf4510ed] check-in: [c65ee92a5f] user: ab branch: trunk, size: 2359874
2018-04-27
17:12
{4556} let TSystemUse.HistoryText return at least /proc/loadavg file: [1a163622f3] check-in: [5e6d80a5af] user: ab branch: trunk, size: 2358467
16:28
{4555} fixed NowUTC computation on Win64 + FPC file: [63247169b9] check-in: [bb2e164423] user: ab branch: trunk, size: 2358340
09:49
{4554} new AddInt64Once() function - also refactored integer/int64 low-level search functions file: [a737efba1d] check-in: [d7cf94fc01] user: ab branch: trunk, size: 2358250
2018-04-26
15:54
{4550} optimized VariantToSQLVar() file: [9a7b0d0b62] check-in: [adf532ec23] user: ab branch: trunk, size: 2358942
09:43
{4548} introducing TAlgoCompressLoad parameter - also includes some fixes to TSynPersistentStore uncompression file: [cbead0b456] check-in: [93b41a65ee] user: ab branch: trunk, size: 2358713
2018-04-25
09:02
{4546} avoid (very unlikely) GPF in caller's TSynTempBuffer.Done file: [43d0f1169d] check-in: [f04b6d2188] user: ab branch: trunk, size: 2358883
2018-04-20
12:19
{4540} ensure we won't change the main process name under Linux file: [3897a93edf] check-in: [39b681d194] user: ab branch: trunk, size: 2358755
2018-04-19
18:06
{4539} fixed Delphi compilation on some versions file: [19519cb274] check-in: [02c26fd4e0] user: ab branch: trunk, size: 2358681
17:59
{4538} some minor refactoring of TOperatingSystemVersion file: [f17deec846] check-in: [76e3edbf23] user: ab branch: trunk, size: 2358621
17:16
{4537} introducing TOperatingSystemVersion record, mapped as a 32-bit integer file: [4b2495169d] check-in: [a7bd134a44] user: ab branch: trunk, size: 2358535
14:28
{4536} new TSynDictionary.OnCanDeleteDeprecated callback and some associated class functions file: [edf933e8b3] check-in: [61587f17f1] user: ab branch: trunk, size: 2357602
14:27
{4535} new TSynLocker.IsLocked property file: [4eac6632a2] check-in: [534633f905] user: ab branch: trunk, size: 2356190
09:43
{4534} circumvent Delphi XE4 Win64 compiler bug file: [dc202a8c38] check-in: [734a9f02d0] user: ab branch: trunk, size: 2355424
09:42
{4533} added optional aUpdateTimeOut parameter to TSynDictionary.Find/FindValue file: [e10e5538d8] check-in: [dbaa9e785b] user: ab branch: trunk, size: 2355429
2018-04-17
14:30
{4530} fixed Delphi compilation - reported as [4b337a615db2] file: [2ed131b19f] check-in: [a49f44d5ae] user: ab branch: trunk, size: 2354959
13:35
{4528} new overloaded TSynPersistentStore.SaveTo method file: [54782c84c0] check-in: [46665f6c37] user: ab branch: trunk, size: 2354958
2018-04-14
13:54
{4526} new TRawByteStringGroup.RemoveLastAdd file: [909fe65957] check-in: [5105c6d863] user: ab branch: trunk, size: 2354374
13:51
{4525} introducing ConnectRetrySeconds property in both TSQLHttpClientGeneric and TDDDRestClientDefinition classes file: [23575c1fe3] check-in: [e3812446aa] user: ab branch: trunk, size: 2353894
2018-04-12
19:48
{4523} fixed and optimized TRawByteStringGroup file: [0b98481385] check-in: [41dec38dd1] user: ab branch: trunk, size: 2353814
11:45
{4519} optimized TMatch for '*something*' patterns file: [651000b685] check-in: [2706bbf66d] user: ab branch: trunk, size: 2353804
2018-04-11
11:50
{4518} circumvent Delphi compiler inlining limitation file: [70502a0406] check-in: [f6fa9e09ff] user: ab branch: trunk, size: 2353799
07:55
{4516} try to circumvent a FPC trunk regression - as reported in https://synopse.info/forum/viewtopic.php?pid=27035#p27035 file: [56b6d7e147] check-in: [2c5ef2333a] user: ab branch: trunk, size: 2353800
2018-04-10
12:51
{4515} speed up of TAlgoCompress.Algo in most cases (stored or SynLZ) file: [a18d700d0c] check-in: [1258005b26] user: ab branch: trunk, size: 2353690
11:47
{4514} refactoring of internal Div100() function file: [1a08da659e] check-in: [3e80a708ce] user: ab branch: trunk, size: 2353571
11:13
{4513} several fixes to TAlgoCompress file: [a7643c0d38] check-in: [0f9dc58291] user: ab branch: trunk, size: 2353487
2018-04-09
22:23
{4511} fixed TSynDictionary.DeleteDeprecated file: [cfe5361cd2] check-in: [c6b024a2b7] user: ab branch: trunk, size: 2353417
11:21
{4508} fixed Kylix compilation file: [6a4ed7c44f] check-in: [f0b60f4d15] user: ab branch: trunk, size: 2353339
2018-04-06
19:48
{4507} introducing TAlgoCompress.DecompressFast file: [9881f87989] check-in: [6cc854d643] user: ab branch: trunk, size: 2353230
18:54
{4505} fixed: TSynAnsiUTF8.UnicodeBufferToAnsi resulted in truncated string - from mpv+ssoftpro in githhub file: [f370e1e6cd] check-in: [db14c4dc63] user: ab branch: trunk, size: 2352084
15:43
{4504} added CamelCase() function file: [15d86a246c] check-in: [f9e8a992da] user: ab branch: trunk, size: 2351066
2018-04-05
07:37
{4501} introducing TDocVariantData.GetDocVariantByPath file: [cb6abea00b] check-in: [9d7830bb1d] user: ab branch: trunk, size: 2349926
2018-04-04
19:18
{4499} fixed ObjectToJSONFile() if both woHumanReadableEnumSetAsComment and woHumanReadable are set file: [a688820423] check-in: [43e1b3bd80] user: ab branch: trunk, size: 2349273
13:21
{4498} removed some unexpected hints file: [2803aab48d] check-in: [d9c6d3ec0a] user: ab branch: trunk, size: 2349168
13:20
{4497} optimized VarRecToTempUTF8() for variant values file: [89abf41562] check-in: [a50caaaebc] user: ab branch: trunk, size: 2349204
13:19
{4496} new overloaded TRawByteStringGroup.FindAsText() method file: [3ebd18542e] check-in: [2b88fa8fb3] user: ab branch: trunk, size: 2348968
2018-04-03
13:08
{4495} new TSystemInfo.dwPageSize field for Linux and BSD (FPC) file: [c18a3012b3] check-in: [537f9706c5] user: ab branch: trunk, size: 2348720
12:51
{4494} added some new build modes to TestSQL3.lpi for FPC/Lazarus file: [17844fb974] check-in: [e223577b3d] user: ab branch: trunk, size: 2348370
12:19
{4493} some enhancements to TSynMonitorMemory on FPC file: [e26a1e2e8a] check-in: [f4a41a69bd] user: ab branch: trunk, size: 2348180
2018-03-30
16:56
{4491} optimized TRawByteStringGroup.FindAsText file: [10ec7245e4] check-in: [6803517bb0] user: ab branch: trunk, size: 2347392
15:49
{4488} small refactoring of IP6Text() and TDynArrayHashed - no functional change file: [ff96726e20] check-in: [161382ea12] user: ab branch: trunk, size: 2347111
2018-03-29
12:00
{4487} new IP6Text() function file: [67e1aedf0a] check-in: [19d5ab978b] user: ab branch: trunk, size: 2346888
2018-03-28
21:41
{4486} moved HashFound() into SynCommons and added maxsize parameter to THash128History.Init() file: [0ed8c550e3] check-in: [dfe3681f88] user: ab branch: trunk, size: 2345837
14:50
{4484} slight optimization to FormatUTF8() file: [f00ce9a659] check-in: [3defb6230a] user: ab branch: trunk, size: 2344921
2018-03-27
17:38
{4482} new TFastReader.PeekVarInt32/PeekVarUInt32/VarShortString methods file: [96c5e6150d] check-in: [dc4e0e1a71] user: ab branch: trunk, size: 2344791
09:21
{4481} another set of small optimizations file: [59db55adf9] check-in: [bc1c66e66a] user: ab branch: trunk, size: 2343534
08:42
{4480} small optimizations for better code generation on x86 and x86_64 file: [95f60d9202] check-in: [6c0de9fd2a] user: ab branch: trunk, size: 2343498
07:37
{4477} try to circumvent Delphi error insight compiler limitations file: [44149f1956] check-in: [6e24974510] user: ab branch: trunk, size: 2342170
2018-03-23
23:40
{4476} fixed MicroSecToString() hours and minutes display file: [413537cf6d] check-in: [218b7af50a] user: ab branch: trunk, size: 2341858
14:50
{4475} new NotifySortedIntegerChanges() function file: [74ae61b235] check-in: [f295ec26b0] user: ab branch: trunk, size: 2341436
14:07
{4474} circumvent TSystemTime FPC bug - FPC's TSystemTime fields in datih.inc does NOT match Windows TSystemTime definition! file: [82d0a6cab9] check-in: [6bb8a92474] user: ab branch: trunk, size: 2340185
13:28
{4472} fixed TSynSystemTime definition and UTC related values :( file: [15e0b73b0a] check-in: [c97a77cf9c] user: ab branch: trunk, size: 2339753
09:40
{4471} introducing crc32cby4() function file: [1d1038a4a7] check-in: [ab73559ca0] user: ab branch: trunk, size: 2339753
09:32
{4470} slight optimization of QuickSort() functions file: [61693fada7] check-in: [6414a23ad2] user: ab branch: trunk, size: 2338294
2018-03-22
20:38
{4469} new overloaded RawUTF8DynArrayEquals() file: [bacb441f29] check-in: [ca09e8be5c] user: ab branch: trunk, size: 2338018
13:42
{4467} enable more optimized asm for FPC file: [a406a24bca] check-in: [6ba3ba0e9e] user: ab branch: trunk, size: 2337836
13:40
{4465} fixed crcblocks on 32-bit CPU without SSE4.2 file: [4e0f5af219] check-in: [a28ae5b590] user: ab branch: trunk, size: 2337339
00:11
{4464} circumvent Delphi 2007 compiler bug file: [4274cbe8f0] check-in: [afc0e5ab62] user: ab branch: trunk, size: 2337358
2018-03-21
19:27
{4463} refactored TSQLRestServer.Stat generation file: [38fb457334] check-in: [ab25e530dc] user: ab branch: trunk, size: 2338558
16:51
{4462} optimized ToVarUInt64/ToVarInt64 functions file: [4f249ae645] check-in: [41ed76d8fc] user: ab branch: trunk, size: 2338681
15:17
{4461} optimized ToVarUInt32() function file: [97d3fdcaa0] check-in: [d90af94e0b] user: ab branch: trunk, size: 2338672
2018-03-20
23:19
{4456} some fixes to ScanUTF8() file: [22c848d5d2] check-in: [1bbb5a34a1] user: ab branch: trunk, size: 2338139
23:18
{4455} added optional reformat parameter to TDynArray.SaveToJSON and TTextWriter.SetText file: [054a76cf71] check-in: [b2208032e4] user: ab branch: trunk, size: 2337954
13:46
{4454} minor code refactoring in SynCommons file: [1d7b9242ca] check-in: [4c0ce67584] user: ab branch: trunk, size: 2337217
12:55
{4452} introducing ScanUTF8() function file: [b04c3b0085] check-in: [55059a6a77] user: ab branch: trunk, size: 2337696
2018-03-19
11:20
{4448} some FPC optimizations file: [f19fdc0f36] check-in: [e456621986] user: ab branch: trunk, size: 2332297
2018-03-16
14:49
{4447} FormatUTF8 and MicroSecToString optimizations - no functional change file: [c37719d7a1] check-in: [fd50effafc] user: ab branch: trunk, size: 2331889
11:55
{4446} some refactoring of KB() - no functional change file: [7ad082b9b1] check-in: [03e3979d40] user: ab branch: trunk, size: 2331136
08:46
{4445} introducing TSynSystemTime as a cross-platform and cross-compiler TSystemTime/TTimeZoneValue replacement file: [360dba80a5] check-in: [dc83825019] user: ab branch: trunk, size: 2330672
2018-03-15
18:16
{4441} new twoIgnoreDefaultInRecord in TTextWriterOption file: [0c901402e3] check-in: [b633f0512a] user: ab branch: trunk, size: 2330982
16:44
{4439} fixed TDWordRec definition file: [f76aaf5535] check-in: [a8f390da4a] user: ab branch: trunk, size: 2330577
13:14
{4437} circumvent Delphi compiler issue for ToVarInt64 file: [2b359ca83d] check-in: [fced38aad0] user: ab branch: trunk, size: 2330577
11:24
{4435} introduced overloaded FillZero() function file: [ff48fe3f2d] check-in: [9f38a5b066] user: ab branch: trunk, size: 2330531
2018-03-14
18:08
{4433} new TSQLRecordNoCaseExtended root class file: [6f3f2f557f] check-in: [eca1f47978] user: ab branch: trunk, size: 2329265
15:36
{4430} fix system code page support on FPC / Linux file: [5969e875b2] check-in: [67711926bf] user: ab branch: trunk, size: 2329246
13:50
{4428} introducing aesencryptx64 hand-optimized asm for Win64 and Linux x86-64 (aes128ofb: aesencryptpas=140MB/s aesencryptx64=200MB/s aesniencrypt=500MB/s) file: [b9cac13b96] check-in: [6cf6d5c2a9] user: ab branch: trunk, size: 2329079
2018-03-13
18:45
{4425} new TDocVariantData.Rename method file: [6c0380fce7] check-in: [bdb3b2ba15] user: ab branch: trunk, size: 2329085
2018-03-12
15:11
{4417} new AES encryption for SynSQlite3Static - this is a BREAKING change in respect of previous encryption - but it is much safer, and compliant with SQLite3 source code file: [e062df1873] check-in: [e948323a1f] user: ab branch: trunk, size: 2328519
14:29
{4413} new overloaded FillZero() for RawUTF8 file: [61212d9509] check-in: [ccccd04084] user: ab branch: trunk, size: 2328531
2018-03-09
13:49
{4410} fixed some hints when compiling with FPC file: [b09b5a32c4] check-in: [caf4417bff] user: ab branch: trunk, size: 2327849
13:08
{4409} one refactoring pass to ensure code is PIC-safe file: [d142a87a63] check-in: [f6378ee0e5] user: ab branch: trunk, size: 2327895
00:55
{4405} refactoring of the AES process in SynCrypto - to ease cross-platform and cross-cpu maintainability and performance file: [426da5c88c] check-in: [d072ce9116] user: ab branch: trunk, size: 2327833
2018-03-08
14:12
{4401} introducing TimeLogFromUnixTime/TimeLogToUnixTime file: [88db18d1e0] check-in: [3cb1133554] user: ab branch: trunk, size: 2327815
2018-03-07
16:33
{4400} new TSynTestCase.RandomURI() method file: [a0345a9168] check-in: [fc35c2eba8] user: ab branch: trunk, size: 2326965
11:04
{4399} fixed unexpected GPF on invalid JSON input for a custom record field file: [8adb87fc2c] check-in: [17bab95cea] user: ab branch: trunk, size: 2326975
2018-03-06
17:36
{4395} fixed an awfull buffer overflow bug in TTextWriter - discoverd using FPC in heaptrc mode file: [6ee5b569a3] check-in: [823190af3e] user: ab branch: trunk, size: 2326962
2018-03-05
22:23
{4389} enabled StrLenSSE42 and StrCompSSE42 on x86_64 (Windows Delphi+FPC and Linux FPC) file: [4c7c792357] check-in: [d9da07bb6b] user: ab branch: trunk, size: 2326917
15:34
{4387} let's call directly VariantClear() on FPC - for better stability on all platforms, with minor performance issue file: [cb9786d93f] check-in: [1a262df8a6] user: ab branch: trunk, size: 2326459
2018-03-04
21:14
{4384} fixed small regression in FormatUTF8() for FPC file: [1075c34a0a] check-in: [d573e7358a] user: ab branch: trunk, size: 2326092
15:05
{4383} SyNode for fpc311 all targets - merged from github branch - thanks mpv and ssoftpro for this very valuable input! file: [13ca2c7fc2] check-in: [056f6e17ba] user: ab branch: trunk, size: 2326089
11:31
{4381} enhanced TSynLogFile cross-platform support file: [8be8ae49c9] check-in: [d560daaa0a] user: ab branch: trunk, size: 2325922
11:30
{4380} another fix pass for FPC cross-compilation (avoid weird FPC internal error on Darwin32) file: [a20df85d82] check-in: [0196e7f7c4] user: ab branch: trunk, size: 2325730
2018-03-03
08:29
{4372} fixed GetVariantFromJSON() to handle JSON string starting with a { (e.g. a GUID) file: [bdc6345176] check-in: [9ab8135838] user: ab branch: trunk, size: 2325625
2018-03-02
11:25
{4364} new TFastReader.NextSafe and RemainingLength methods file: [905714ba36] check-in: [52f1e15c91] user: ab branch: trunk, size: 2325605
2018-03-01
10:23
{4358} new woDontStore0 TTextWriterWriteObjectOption file: [945ea72c69] check-in: [08cd570dfa] user: ab branch: trunk, size: 2324970
09:17
{4356} fix surrogates in RawUnicodeToUtf8 for FPC file: [b19b4f0a04] check-in: [3ba93aa37a] user: ab branch: trunk, size: 2324620
2018-02-27
17:25
{4351} removed unused FindWinAnsiIniNameValue() function file: [da3b5ade91] check-in: [b818daa688] user: ab branch: trunk, size: 2324614
08:18
{4349} ensure Base64ToBin() has the expected behavior - to avoid breaking SSPI authentiction file: [f0f04e9c6e] check-in: [876de04f72] user: ab branch: trunk, size: 2324783
2018-02-26
18:43
{4346} new CopyInteger/CopyInt64 functions file: [f24c58469a] check-in: [08efc68dbf] user: ab branch: trunk, size: 2324752
2018-02-23
21:20
{4339} small fixes and refactoring to TSQLRest.SetCustomEncryption and UpdateIniNameValue() file: [91066051ae] check-in: [4f513e1704] user: ab branch: trunk, size: 2324010
16:33
{4338} new UpdateIniNameValue() function file: [23dc285fe6] check-in: [c53b372077] user: ab branch: trunk, size: 2323647
14:41
{4336} fixed StringFromFile() function file: [0cbf62746e] check-in: [86d76c5ca6] user: ab branch: trunk, size: 2322738
11:25
{4335} doc update - no functional change file: [d333023fd2] check-in: [4f270f41ea] user: ab branch: trunk, size: 2322749
09:36
{4333} much faster DeduplicateInteger/DeduplicateInt64 file: [035cc6f88d] check-in: [94887cb8a9] user: ab branch: trunk, size: 2322668
2018-02-21
22:59
{4328} optimized crc32c code generation for x86_64 file: [57abc8bef7] check-in: [69a68b5e4f] user: ab branch: trunk, size: 2322042
18:25
{4326} new DeduplicateInteger/DeduplicateInt64 functions - and also slighly optimized various overloaded QuickSort() file: [b7eea4ed44] check-in: [e690a40036] user: ab branch: trunk, size: 2321960
11:25
{4325} fixed GPF in ExistsIniName() when P=nil file: [5802e3bf8f] check-in: [4e5384f8f7] user: ab branch: trunk, size: 2320453
11:23
{4324} moved TSynBloomFilter logic to SynTable.pas - with the files, this time! :) file: [6ae41cfb7e] check-in: [d583e7ae0f] user: ab branch: trunk, size: 2320438
2018-02-20
22:51
{4321} consistent TSQLRestServerDB.InternalBatchStop with a single Add() file: [4f24328dfc] check-in: [4e42b0c81b] user: ab branch: trunk, size: 2342941
17:31
{4317} fixed TJSONSerializer.RegisterCustomJSONSerializerFromText when the TypeInfo() supplied is of a dynamic array type file: [e0816700f0] check-in: [47d87a1e20] user: ab branch: trunk, size: 2342953
16:12
{4315} huge speedup of IsMatch() function file: [494e75a2eb] check-in: [e0652885fb] user: ab branch: trunk, size: 2342944
2018-02-19
17:28
{4313} small refactoring for better FPC support file: [9d41072733] check-in: [e60df6af26] user: ab branch: trunk, size: 2342731
15:59
{4310} optimized TSynPersistent instantiation under FPC file: [aceb9df67b] check-in: [c3246fcd4c] user: ab branch: trunk, size: 2353591
15:58
{4308} another step of optimizations of GetExtended() file: [6a44ecb2a3] check-in: [09151d72fe] user: ab branch: trunk, size: 2353242
10:36
{4307} small optimization of pascal GetExtended() fuction file: [3481ea66d3] check-in: [1055073d2d] user: ab branch: trunk, size: 2352607
09:44
{4306} added aOwnObjects optional parameter to TObjectDynArrayWrapper.Create file: [4efcbf1cee] check-in: [8b3827a511] user: ab branch: trunk, size: 2352603
2018-02-12
20:52
{4295} enhancement to base-64 encoding functions in "pure pascal" version file: [706b4a92e9] check-in: [70e0381d11] user: ab branch: trunk, size: 2352090
2018-02-11
17:12
{4289} fixed TSQLTable.ToDocVariant to ensure that fFieldNames is safe when a doc field is deleted later on file: [dc1a574687] check-in: [3df34f09d2] user: ab branch: trunk, size: 2351618
2018-02-10
14:56
{4288} several fixes and refactoring to TSQLTable.GetJsonValues() file: [9a09da6365] check-in: [e6744742ea] user: ab branch: trunk, size: 2351051
2018-02-09
23:08
{4281} initialize TSynBackgroundThreadProcess.Stat only if a class is supplied at Create - reduce the processing cost for nothing file: [56a2b21d7e] check-in: [9e969d8426] user: ab branch: trunk, size: 2350954
23:06
{4280} handle CP_RAWBYTESTRING via TSynAnsiFixedWidth - to avoid pointless slow use of OS API file: [7c3641a1cb] check-in: [b2496155f7] user: ab branch: trunk, size: 2350845
15:35
{4275} implemented SetThreadName under FPC/Linux file: [9c3d894ff5] check-in: [ccebce0e78] user: ab branch: trunk, size: 2350775
2018-02-08
23:33
{4272} include Intel CPU features to SystemInfoJson under Win64 or Linux x86-64 file: [20530fd550] check-in: [5b96033c47] user: ab branch: trunk, size: 2350615
14:43
{4269} fixed TThreadID process on all FPC architectures - especially TSynLog thread identification on Linux/BSD - note that TThreadID = pointer under BSD! file: [0f8fda64b5] check-in: [98e03b34b5] user: ab branch: trunk, size: 2350659
14:36
{4267} TAlgoCompress.AlgoName returns lowercase text file: [a3307e9cf0] check-in: [4962fa2a16] user: ab branch: trunk, size: 2350745
2018-02-07
23:09
{4266} fixed ExcludeInt64/ExcludeInteger functions file: [a5465250ef] check-in: [17448cb0b9] user: ab branch: trunk, size: 2350503
20:45
{4260} fixed TTextWriter.RegisterCustomJSONSerializerFromTextBinaryType deserialization file: [cee780bc71] check-in: [9fae9eb96d] user: ab branch: trunk, size: 2349601
18:59
{4256} published GetCaptionFromTrimmed() file: [5634edc57f] check-in: [d93bcc883d] user: ab branch: trunk, size: 2349415
2018-02-06
22:58
{4251} implemented Exceptions interception and logging for FPC - with call stack trace (if available) - includes source code lines if compiled using -g or -gl switches - tested on Win32, Win64, Linux i386 et x86_64 but should work on other OS :) file: [4303f1711f] check-in: [53b1ea13f3] user: ab branch: trunk, size: 2349206
18:00
{4248} optimized FindIniNameValue/ExistsIniName/IdemPChar/IdemPCharArray/GetNextLine functions file: [5c69bc51c0] check-in: [808de7251d] user: ab branch: trunk, size: 2349110
17:58
{4247} changed GetNextLineBegin() as GotoNextLine() file: [95e7647f95] check-in: [f97fb3352a] user: ab branch: trunk, size: 2347349
08:38
{4246} slight optimization of TDocVariantData for x86_64 compilation file: [a1e297436f] check-in: [8291a6d39d] user: ab branch: trunk, size: 2347252
08:37
{4245} fixed regression in TDocVariantData.SortByValue file: [f6037c6bff] check-in: [30c73a18ff] user: ab branch: trunk, size: 2347296
2018-02-05
16:17
{4244} optimize TDynArray JSON serialization to cache the custom parsers information file: [a7a61f2ff8] check-in: [c991c5cf05] user: ab branch: trunk, size: 2347312
16:14
{4242} circumvent Delphi compiler bug when inlining _Safe() file: [4821c14e24] check-in: [14617cdbfa] user: ab branch: trunk, size: 2347891
12:47
{4239} several enhancements to TDocVariantData file: [401d3eb406] check-in: [8c828eced2] user: ab branch: trunk, size: 2347880
12:46
{4238} several enhancements to TDynArray file: [d494cb3716] check-in: [6bb7f18dec] user: ab branch: trunk, size: 2347843
12:01
{4236} introducing CompareMemFixed() file: [400f92a947] check-in: [512e4daf96] user: ab branch: trunk, size: 2347572
2018-02-04
20:27
{4235} new very optimized CompareMem() pascal code file: [7f97518c97] check-in: [e4014ae45f] user: ab branch: trunk, size: 2346542
20:25
{4234} enhanced endian swap functions for FPC file: [be6486abf5] check-in: [23618eb426] user: ab branch: trunk, size: 2345287
13:11
{4230} fixed and optimized TJSONCustomParsers.DynArraySearch file: [d78276c965] check-in: [6d312da29b] user: ab branch: trunk, size: 2345239
13:10
{4229} new TTextWriter.AddPropJSONInt64 method file: [d8a6807e5a] check-in: [67a151048a] user: ab branch: trunk, size: 2344793
13:09
{4228} made TotalSize parameter of DirectoryDeleteOlderFiles explicit file: [33aaf25ec6] check-in: [073299a191] user: ab branch: trunk, size: 2344484
13:07
{4227} added COMP_TEXT,OS_TEXT,CPU_ARCH_TEXT constants file: [47c8904b3f] check-in: [2486abd5ca] user: ab branch: trunk, size: 2344292
09:34
{4226} declared strcspnpas/strspnpas as inline functions file: [477ecf467f] check-in: [7ad9430053] user: ab branch: trunk, size: 2343657
2018-02-03
16:17
{4222} introduce strspn() function with SSE4.2 version (on capable CPU) file: [0a95ccd536] check-in: [1ff31d1051] user: ab branch: trunk, size: 2343508
15:17
{4221} introduce strcspn() function with SSE4.2 version (on capable CPU) file: [7fe6032c98] check-in: [a6ad932d83] user: ab branch: trunk, size: 2338989
2018-02-02
15:22
{4215} added aOpaque parameter to TSynDictionaryEvent file: [71553bef39] check-in: [cc0936d7a9] user: ab branch: trunk, size: 2333623
2018-02-01
21:46
{4212} ensured FPC low-level RTL is called when possible file: [6132120946] check-in: [78d0c52e05] user: ab branch: trunk, size: 2333433
21:20
{4211} trim trailing line spaces in most source code files (no functional change) file: [b3ae643dc0] check-in: [2ed9b8a89f] user: ab branch: trunk, size: 2333360
18:19
{4209} new TDynArray.Peek/Pop methods - Add + Pop/Peek will implement a LIFO (Last-In-First-Out) stack file: [b3fb96769a] check-in: [155c15dcff] user: ab branch: trunk, size: 2333543
17:27
{4208} new TSynQueue.Pending method file: [c5c0822209] check-in: [b42adac4c2] user: ab branch: trunk, size: 2332591
17:09
{4207} new TSynQueue class - more efficient than Delphi or FPC TQueue file: [759d84b78e] check-in: [8163b264c3] user: ab branch: trunk, size: 2332155
16:53
{4206} introducing TDynArray.ElemMoveTo file: [23aa52c35d] check-in: [5d1fe02620] user: ab branch: trunk, size: 2326127
12:34
{4203} low-level refactoring, mainly for 64-bit FPC performance file: [4158c19c98] check-in: [f8388f62b0] user: ab branch: trunk, size: 2325580
09:23
{4202} moved back ObjectToVariant() functions to SynCommons file: [8dcd8e3113] check-in: [f48e2271cf] user: ab branch: trunk, size: 2324963
09:22
{4201} introducing TSynMonitor.ProcessErrorRaised file: [c374837ab4] check-in: [15dba77a54] user: ab branch: trunk, size: 2323190
2018-01-31
16:18
{4199} introducing TObjectVariant custom variant type - inspired by https://github.com/synopse/mORMot/pull/79/ file: [64c6db8b39] check-in: [d5d49cdd32] user: ab branch: trunk, size: 2322785
10:54
{4197} ensure micro-opcode fusion for x86 or x64 asm with the cmp + jmp pattern file: [a9e5b16c53] check-in: [9f3777d421] user: ab branch: trunk, size: 2324008
09:27
{4196} published IPToCardinal() function file: [90b86c09d2] check-in: [df5c7b55da] user: ab branch: trunk, size: 2324193
2018-01-30
15:21
{4194} TSQLRest session_signature parameter in lowercase - mainly for esthetical reasons ;) file: [d29fe4ad67] check-in: [8097fed64d] user: ab branch: trunk, size: 2323607
2018-01-29
22:46
{4188} fixed PointerToHex() file: [bcfa995de4] check-in: [76c57f72d1] user: ab branch: trunk, size: 2323177
2018-01-28
19:24
{4181} enhanced THash256Rec file: [fb4652c905] check-in: [19f5e88c3f] user: ab branch: trunk, size: 2323175
11:00
{4178} updated TRawByteStringStream class description file: [8041c1a64c] check-in: [866bd60201] user: ab branch: trunk, size: 2323106
2018-01-27
16:15
{4177} fixed TDocVariantData.InitJSONInPlace when dvoJSONObjectParseWithinString option is defined - also fixed GetJSONField() incorrect documentation file: [daafe51149] check-in: [7200dbe52a] user: ab branch: trunk, size: 2322436
2018-01-24
23:35
{4166} fixed TWebSocketProtocolJSON.FrameDecompress bug discovered under FPC file: [fae13c755f] check-in: [043cf77276] user: ab branch: trunk, size: 2321987
2018-01-23
20:43
{4162} new TSQLTableWritable class allowing ORM results modification and merge/join file: [d8af26b21e] check-in: [fb1085ab56] user: ab branch: trunk, size: 2321850
2018-01-22
17:43
{4161} introducing ExcludeInteger/ExcludeInt64 functions file: [8ca26509a2] check-in: [c15ea4f058] user: ab branch: trunk, size: 2321806
2018-01-21
17:05
{4157} Base64ToBin() now alias to Base64ToBinSafe() file: [f4a242a7ff] check-in: [d56fbbd7fb] user: ab branch: trunk, size: 2320420
2018-01-19
22:12
{4153} renamed SizeOf() with proper casing - no functional change file: [02f273a113] check-in: [1dbaf33451] user: ab branch: trunk, size: 2322041
22:11
{4152} small enhancements for TDynArray and FPC file: [203adc8833] check-in: [b1b3919204] user: ab branch: trunk, size: 2322041
00:00
{4150} new overloaded DeleteInt64() function file: [729d46cb17] check-in: [a6f755bb1d] user: ab branch: trunk, size: 2321913
2018-01-18
15:50
{4149} refactoring of SortDynArrayVariantComp() to enhance performance and maintainability file: [5f59e80f0b] check-in: [7ef24b7eb3] user: ab branch: trunk, size: 2321439
2018-01-16
19:27
{4144} introducing WrapperForPublicAPI() function - and several associated fixes and improvements file: [81b5345286] check-in: [b4f81c6362] user: ab branch: trunk, size: 2319535
10:29
{4142} small TSynDictionary refactoring - no functional change file: [997de2bda0] check-in: [13f2e73095] user: ab branch: trunk, size: 2319167
2018-01-10
10:13
{4140} some formating fixes - no functional change file: [c9ea63a1c5] check-in: [76709fede0] user: ab branch: trunk, size: 2319136
2018-01-05
22:20
{4137} try to return physical memory for BSD/Darwin file: [94e60b3439] check-in: [c11b828db2] user: ab branch: trunk, size: 2319138
22:19
{4136} fixed RenameInCSV() - thanks PBa for the report! file: [f2a54873cf] check-in: [3cb88e1ba2] user: ab branch: trunk, size: 2318776
12:07
{4135} introducing TSynMonitorMemory.PhysicalAsText file: [8c6a97a0a4] check-in: [f176975ae2] user: ab branch: trunk, size: 2318493
2018-01-04
22:08
{4133} new PShortStringArray type definition file: [3368ec7749] check-in: [ba7ec55c57] user: ab branch: trunk, size: 2318008
20:41
{4132} introducing cross-platform/cross-compiler CpuInfoText variable file: [f3c9fcafa6] check-in: [d384b793f7] user: ab branch: trunk, size: 2317885
11:13
{4130} new RenameInCSV() function file: [b04f4c9601] check-in: [6d983a9c8b] user: ab branch: trunk, size: 2315857
10:32
{4129} new class function TJSONCustomParserRTTI.TypeNameToSimpleBinary file: [f25177ba29] check-in: [151c0b2b2f] user: ab branch: trunk, size: 2315176
2018-01-03
20:11
{4127} handle "" as zero serialized ktBinary simple type file: [0fe86c642f] check-in: [8d51047839] user: ab branch: trunk, size: 2314425
11:22
{4126} optimized TDocVariantData.DeleteByValue(null) file: [e95702ec31] check-in: [17c671e987] user: ab branch: trunk, size: 2314259
09:44
{4124} new BinToHexDisplayLowerVariant() function file: [cec66e1342] check-in: [7c34e3c5fd] user: ab branch: trunk, size: 2313921
2018-01-02
11:58
{4120} reduce TDynArrayHashed/TSynDictionary memory consumption for huge arrays file: [537f25d8f8] check-in: [383259abc0] user: ab branch: trunk, size: 2313588
2018-01-01
16:49
{4118} happy new year with mORMot ! :) file: [28d250ed3e] check-in: [2b81f265c3] user: ab branch: trunk, size: 2313038
2017-12-30
09:45
{4116} fixed compilation with some versions of Delphi file: [fb982d6b26] check-in: [730976aa15] user: ab branch: trunk, size: 2313038
2017-12-29
18:02
{4115} ensure TSynDictionary accepts keys with no obvious content type file: [53e3d5ce04] check-in: [2edda8e3fb] user: ab branch: trunk, size: 2312988
2017-12-28
11:42
{4112} introducing experimental SHA-3 algorithms for JWT via TJWTS3224, TJWTS3256, TJWTS3384, TJWTS3512, TJWTS3S128 and TJWTS3S256 classes file: [811ba0c8ec] check-in: [9e72dd74db] user: ab branch: trunk, size: 2311996
2017-12-27
17:24
{4109} added new HashFile() wrapper function file: [3ab67c7a35] check-in: [906b6f74c4] user: ab branch: trunk, size: 2311974
2017-12-26
21:30
{4108} small fix to TQWordRec type definition file: [3a3a3c5532] check-in: [7388c7c290] user: ab branch: trunk, size: 2311960
10:11
{4107} new TDocVariantData.AddOrUpdateFrom file: [d55ca19448] check-in: [2bf3d13293] user: ab branch: trunk, size: 2311960
09:29
{4106} ensure TDocVariantData.InitCopy will handle dvoInternNames/dvoInternValues file: [f6d085dcaf] check-in: [deceee7f09] user: ab branch: trunk, size: 2311487
08:46
{4105} new VariantHexDisplayToBin() function file: [077508f104] check-in: [45d6d330d5] user: ab branch: trunk, size: 2311147
2017-12-22
21:30
{4104} much faster pure pascal StrIComp() e.g. for x86-64 file: [72cc4935b2] check-in: [197c69066e] user: ab branch: trunk, size: 2310655
21:29
{4103} new TFileBufferWriter.WriteDocVariantData / TFastReader.NextDocVariantData file: [4b82131f4b] check-in: [8ea2466409] user: ab branch: trunk, size: 2310136
21:27
{4102} new TDynArray.CreateOrderedIndexAfterAdd method file: [623df7a422] check-in: [439c512afb] user: ab branch: trunk, size: 2308257
2017-12-21
20:52
{4101} introducing TFastReader.NextVariant file: [27f3cfa1da] check-in: [0ee6db3a7c] user: ab branch: trunk, size: 2307557
20:51
{4100} fixed VariantSave/VariantSaveLength for empty/null values file: [49d1659c44] check-in: [9ae3fc05b1] user: ab branch: trunk, size: 2307498
00:07
{4099} new QuickSortWord/FastFindWordSorted/FastLocateWordSorted/DeleteWord functions file: [11cc0da34a] check-in: [f3eaedd115] user: ab branch: trunk, size: 2307003
2017-12-20
13:41
{4098} introducing TSQLRestServerURIContext.JWTContent field file: [b75ad37509] check-in: [a6906fe707] user: ab branch: trunk, size: 2305366
2017-12-19
21:06
{4096} fix small regression introduced by last commit file: [9249e875b7] check-in: [2e9fbbe432] user: ab branch: trunk, size: 2305358
20:57
{4095} new TTextWriter.RegisterCustomJSONSerializerFromTextBinaryType method - includes several fixes and optimizations to the JSON serialization process file: [881e6681ea] check-in: [9d5f5e51ef] user: ab branch: trunk, size: 2305416
2017-12-18
23:58
{4093} added word transtyping to THash128/256/512 wrappers file: [6b0be7d344] check-in: [c23de53307] user: ab branch: trunk, size: 2301492
13:53
{4092} enhanced TWebSocketServer.WebSocketBroadcast to use non-blocking asynchronous sending, with optional frame gathering file: [489e817786] check-in: [d3258e54d9] user: ab branch: trunk, size: 2301394
2017-12-15
16:45
{4087} overloaded IdemPCharArray() function file: [1eb70ea526] check-in: [af2d461033] user: ab branch: trunk, size: 2301225
11:28
{4086} enhanced TRawByteStringGroup.Find to cache the latest inserted value file: [12a0933db3] check-in: [01431d6ffb] user: ab branch: trunk, size: 2300477
11:16
{4085} new AddVoidItems optional parameter to CSVToRawUTF8DynArray file: [9657063210] check-in: [2757734c95] user: ab branch: trunk, size: 2300477
2017-12-14
13:52
{4084} optional trimlowercase parameter to GetSetNameShort() file: [5ebc7a3b34] check-in: [81063f3c14] user: ab branch: trunk, size: 2300416
13:51
{4083} TAlgoCompress.Algo(AlgoID) will identify "stored" content as AlgoSynLZ file: [110b0f26e8] check-in: [1d56380a29] user: ab branch: trunk, size: 2300162
13:50
{4082} fixed void shortstring support as "array of const" parameter file: [c381d5abbc] check-in: [f73b39161a] user: ab branch: trunk, size: 2300022
11:31
{4081} optimized TFastReader process especially when methods are inlined file: [24a31b6fc0] check-in: [89e266a86e] user: ab branch: trunk, size: 2299983
2017-12-13
19:43
{4080} fixed tests compilation and small regressions file: [83af98fde8] check-in: [451208f89f] user: ab branch: trunk, size: 2300002
19:02
{4079} new TRawByteStringGroup.AddFromReader method file: [dd257d0181] check-in: [772a90a736] user: ab branch: trunk, size: 2300006
19:01
{4078} new TFastReader.ReadVarUInt32Array method file: [3ef957b990] check-in: [38b05d3624] user: ab branch: trunk, size: 2299590
19:00
{4077} new DynArraySortIndexed() function and TDynArray.CreateOrderedIndex() method file: [d1ae53f12a] check-in: [65c7532692] user: ab branch: trunk, size: 2298816
2017-12-12
16:08
{4074} optimized TDynArray/TDynArrayHashed Find/Scan file: [915b786ae0] check-in: [89adfc6192] user: ab branch: trunk, size: 2296973
00:21
{4071} new GetNextItemHexDisplayToBin() and GetNextItemToVariant() functions file: [97520ee3e5] check-in: [b5cb5dae8f] user: ab branch: trunk, size: 2296852
2017-12-11
00:44
{4065} introducing Iso8601ToSQL() function file: [519e66a8be] check-in: [abb01ac430] user: ab branch: trunk, size: 2294575
00:25
{4064} refactoring of TWebSocketProcess to prepare http.sys, TAsynchServer and libwebsockets support file: [c430c7dc5a] check-in: [624f62aff7] user: ab branch: trunk, size: 2293723
2017-12-10
21:29
{4063} several refactoring and optimization fixes - no functional change file: [32dc2f655a] check-in: [892a914a2c] user: ab branch: trunk, size: 2293544
15:31
{4062} moved TSynFilter/TSynValidate to SynTable.pas to keep SynCommons.pas below 65535 lines file: [5a9c303ee9] check-in: [8e4d8497ae] user: ab branch: trunk, size: 2303974
2017-12-09
08:20
{4061} some small fixes - no functional change file: [5710f549a4] check-in: [0977b985d8] user: ab branch: trunk, size: 2341123
2017-12-08
18:16
{4059} slight optimization of RecordSave/RecordLoad low-level binary serialization functions file: [703f381bff] check-in: [504f95955b] user: ab branch: trunk, size: 2341156
18:15
{4058} new TAlgoCompress.AlgoName method file: [7dbaeb5ac6] check-in: [24f4254267] user: ab branch: trunk, size: 2340739
2017-12-07
18:17
{4057} new TTextWriter.AddBinToHexDisplayQuoted method file: [8b96f5eddc] check-in: [5ada6176a2] user: ab branch: trunk, size: 2340005
10:19
{4056} new TFastReader.EOF method file: [3bac068039] check-in: [ae65769829] user: ab branch: trunk, size: 2339469
10:09
{4055} new TDynArray.CopyTo and TSynDictionary.CopyValues methods file: [432936b6bb] check-in: [ffcc38cb38] user: ab branch: trunk, size: 2339250
10:07
{4054} new BinToHex(Display)Lower functions file: [4e4068db3d] check-in: [387bd7cd6a] user: ab branch: trunk, size: 2337680
10:04
{4053} new UpperCaseSelf/LowerCaseSelf functions file: [9f33825219] check-in: [33fcce0f5c] user: ab branch: trunk, size: 2334064
08:29
{4052} enhanced TSynDictionaryEvent to allow modification of the value file: [25a4cd0dea] check-in: [0e47fd8e6e] user: ab branch: trunk, size: 2333094
2017-12-06
18:18
{4051} new optional TotalSize parameter to DirectoryDeleteOlderFiles() file: [9a1f8df64d] check-in: [5d4ca6ab84] user: ab branch: trunk, size: 2333090
17:36
{4049} implemented FileFromString(FlushOnDisk) on Linux/BSD file: [88c8ed9fdc] check-in: [5cb9803f67] user: ab branch: trunk, size: 2332943
2017-12-05
20:53
{4048} TSynPersistentStore.SaveToFile returns the file size file: [8ce5296e8a] check-in: [5d8a350e28] user: ab branch: trunk, size: 2332953
16:15
{4047} implement QWord support in TJSONCustomParser file: [8799ea4b16] check-in: [df03d5510f] user: ab branch: trunk, size: 2332819
2017-12-04
17:13
{4040} added pure pascal version of SynECC.pas - thanks Jerome for sharing the code of your XMLRad ECC.pas file: [43b2577dc7] check-in: [4fced16a3d] user: ab branch: trunk, size: 2330030
08:30
{4039} some FPC enhancements/fixed by ssoftpro file: [9222b0bb86] check-in: [d7099b933c] user: ab branch: trunk, size: 2327710
2017-12-03
15:34
{4036} introducing RawJSON published property JSON serialization file: [afba9f39a1] check-in: [a50bc663ac] user: ab branch: trunk, size: 2327711
15:32
{4035} slight refactoring of TRawByteStringGroup.Find(aPosition,aLength) file: [1e83cbea41] check-in: [9927a4dc67] user: ab branch: trunk, size: 2327147
2017-12-02
13:33
{4033} new TSynPersistentWithPassword.ComputePassword method file: [48f8848914] check-in: [3d65ea6f2e] user: ab branch: trunk, size: 2326615
13:32
{4032} refactoring of the Base64 (URI) encoding/decoding including performance optimization on all platforms file: [2a20d27e43] check-in: [1122626dec] user: ab branch: trunk, size: 2326229
2017-12-01
18:07
{4030} fixed vtQWord proper support for FPC - this doesn't exist in Delphi, but it should! file: [8003721010] check-in: [0c81b40054] user: ab branch: trunk, size: 2318274
18:06
{4029} introducing TFileBufferWriter.Write2 method file: [b4284e0679] check-in: [429bde3997] user: ab branch: trunk, size: 2317425
18:05
{4028} circumvent Delphi 5 compiler bug file: [48eb41b126] check-in: [3b7c65c9f0] user: ab branch: trunk, size: 2317046
11:26
{4027} optimized TRawByteStringGroup file: [8650fd86e4] check-in: [0b6a951f1f] user: ab branch: trunk, size: 2316838
2017-11-30
23:55
{4026} introducing TRawByteStringGroup object file: [7993740597] check-in: [c50beeb04c] user: ab branch: trunk, size: 2315335
18:46
{4025} fixed TFastReader on 64-bit CPUs file: [2cd3b2ecaf] check-in: [51e640fd95] user: ab branch: trunk, size: 2306594
2017-11-29
22:00
{4019} new SumInteger() function file: [930fa49a48] check-in: [ff4594e914] user: ab branch: trunk, size: 2306721
13:48
{4018} new AlgoLizardHuffman class with awesome compression speed and ratio on big text log content file: [30c5dd5b9d] check-in: [4c6a22232a] user: ab branch: trunk, size: 2306390
11:56
{4017} enhance TAlgoCompress support in TSynPersistentStore file: [b6aef0485b] check-in: [e741cea7ed] user: ab branch: trunk, size: 2306378
08:24
{4016} enhanced TSynPersistentStore to incorporate its TFastReader and optionally the associated temporary buffer file: [53d276c6ec] check-in: [7fbe8f4ff8] user: ab branch: trunk, size: 2306146
2017-11-28
22:44
{4015} introducing TFastReader.VarUInt16 and optimized TFastReader.VarUInt32 method file: [1bb4a8e0cd] check-in: [e60ca8c3a7] user: ab branch: trunk, size: 2306062
10:18
{4014} fixed "Timestamp" identifier casing file: [a1f63af0a4] check-in: [a5359a351e] user: ab branch: trunk, size: 2305017
2017-11-27
18:26
{4013} new PIntegerArrayDynArray type definition file: [ed0a1ddc23] check-in: [1a780b24c9] user: ab branch: trunk, size: 2305017
2017-11-26
21:01
{4008} introducing TAlgoCompressWithNoDestLen file: [411311d97b] check-in: [656820bf42] user: ab branch: trunk, size: 2304966
2017-11-25
21:18
{4007} fixed TIPBan compilation on Delphi 10.2 - as reported by [b1f60e92a] file: [4bd3fac5c1] check-in: [b5aac8380b] user: ab branch: trunk, size: 2302210
21:00
{4003} introducing TAlgoCompress and TAlgoSynLz classes to replace all SynLZCompress/SynLZDecompress functions - used e.g. by TSynPersistentStore file: [60059f1e82] check-in: [6f2a9c8bfd] user: ab branch: trunk, size: 2302173
2017-11-24
08:35
{4001} fixed regression when using TRTSPOverHTTPServer file: [12c761e9be] check-in: [4a6c5f108d] user: ab branch: trunk, size: 2287995
2017-11-23
21:56
{4000} renamed TSynPersistentPLocked as TSynPersistentLock file: [ced18f3db3] check-in: [22c9057ff8] user: ab branch: trunk, size: 2287899
21:14
{3996} introducing TSynPersistentPLocked and TObjectListSorted classes file: [89e1975ed1] check-in: [4cab4c0b17] user: ab branch: trunk, size: 2287974
09:25
{3994} more efficient RemoteIP server-side process file: [f73634de8c] check-in: [38999dd0a9] user: ab branch: trunk, size: 2281880
2017-11-22
14:17
{3992} introducing TObjectDynArrayWrapper.Slice file: [641e8fe9e3] check-in: [168cab3528] user: ab branch: trunk, size: 2281466
2017-11-20
17:51
{3979} new overloaded Base64ToBin() function file: [5fca1d5988] check-in: [07aeba4419] user: ab branch: trunk, size: 2280785
17:50
{3978} fixed FastFindInt64Sorted and FastFindQWordSorted under x86 file: [3dd5d4bd53] check-in: [f9bee556f8] user: ab branch: trunk, size: 2280219
2017-11-19
22:26
{3974} new TFastReader.CopySafe/VarUInt32Safe/VarUTF8Safe methods file: [ed28035997] check-in: [7d84448c49] user: ab branch: trunk, size: 2280131
08:35
{3972} fixes some minor typos from latest WebSockets API merge - thanks again to the whole mpv team for this great commit! file: [496bf4a08c] check-in: [2076074219] user: ab branch: trunk, size: 2278420
2017-11-13
20:41
fixed FPC->Win compilation file: [a684721eb2] check-in: [2559508009] user: mpv branch: trunk, size: 2278516
12:52
{3971} add recursive update for TDocVariantData.AddOrUpdateObject (thanks maciej for the idea and patch!) file: [9e4de6c659] check-in: [0cf0b2437e] user: ab branch: trunk, size: 2278512
12:51
{3970} fixed FPC compilation file: [023c450f7b] check-in: [f882790feb] user: ab branch: trunk, size: 2278248
2017-11-12
10:32
{3967} fixed potential memory leak in BaudotToAscii() file: [4a74dacbc1] check-in: [238506e03c] user: ab branch: trunk, size: 2278248
09:49
{3965} introducing FPCUSEVERSIONINFO conditional - not defined by default, to reduce executable size file: [a8617d1805] check-in: [488f583bb7] user: ab branch: trunk, size: 2278164
2017-11-10
17:15
{3959} small reformat of TFileVersionInfo under FPC file: [3b537ff319] check-in: [a3ef0fd949] user: ab branch: trunk, size: 2278069
11:35
TFileVersion: File version info is loaded in OS independed way (FPS >= 3.0) file: [f9753a629f] check-in: [59268ec27f] user: mpv branch: trunk, size: 2278201
2017-11-09
16:55
{3958} introducing TSynJsonFileSettings file: [8c1afeab5d] check-in: [f0fe9a4514] user: ab branch: trunk, size: 2275780
2017-11-07
19:34
{3955} fixed FPC trunk compilation file: [f77935c116] check-in: [9776b8e711] user: ab branch: trunk, size: 2275618
16:12
{3954} Fix AV error for TSynLocker.Done (including file this time!) - pull request https://github.com/synopse/mORMot/pull/49 from maciej file: [28505f0bbf] check-in: [494502fa52] user: ab branch: trunk, size: 2275620
2017-11-06
16:25
{3949} new overloaded BinToBase64() function file: [158d58a0d7] check-in: [87ef891058] user: ab branch: trunk, size: 2275574
2017-11-03
15:26
TDynArray.ToKnownType noe recognize a tkUString for Unicode FPC file: [c6ffca790d] check-in: [2e04c11454] user: mpv branch: trunk, size: 2274398
2017-10-28
09:50
{3941} circumvent FPC/x86 compiler issue - thanks Alfred for the patch! file: [32cca654e3] check-in: [e75afc75e9] user: ab branch: trunk, size: 2274068
08:16
{3940} introducing HasNoSize optional parameter to StringFromFile() to be used e.g. with character files under Linux (/proc/meminfo) file: [cb873abd4d] check-in: [1fdfc1e04c] user: ab branch: trunk, size: 2273982
2017-10-26
13:43
{3934} fixed Delphi 5 compilation file: [f4182cfc0b] check-in: [b9d7992cc2] user: ab branch: trunk, size: 2273365
13:10
{3933} new DynArrayEquals() function and TDynArray.LoadFromVariant method file: [88e10052ce] check-in: [948877a580] user: ab branch: trunk, size: 2273253
2017-10-19
10:22
{3922} fixed FileIsSynLZ() function file: [f6f3ad29fd] check-in: [42cad81a4b] user: ab branch: trunk, size: 2271471
2017-10-18
18:52
{3918} new Base64URIToBin() function file: [09b4eb5366] check-in: [dcd9e85c00] user: ab branch: trunk, size: 2271477
2017-10-17
19:04
{3912} new woInt64AsHex and j2oAllowInt64Hex options for JSON serialization of Int64/QWord as hexadecimal strings (for better human readabiliy, or when working with JavaScript and its 53-bit limitation) file: [34d80cc75a] check-in: [c46dc6f891] user: ab branch: trunk, size: 2271160
19:02
{3911} added GetQWord() overloaded function file: [5fc98aafc3] check-in: [c3883a1b55] user: ab branch: trunk, size: 2271005
15:07
{3910} enhanced TSynBackgroundThreadAbstract.Terminate file: [365a0237bd] check-in: [47b3df9439] user: ab branch: trunk, size: 2269494
10:30
{3903} overloaded Int64ToHexShort() function file: [fc71235f55] check-in: [fb9b1ebfeb] user: ab branch: trunk, size: 2268375
07:48
{3901} new GetNextTChar64 and GetNextIdemQWord functions file: [7066192734] check-in: [20750e265d] user: ab branch: trunk, size: 2267957
2017-10-16
18:52
{3899} new TSynBackgroundThreadAbstract.Start and optional CreateSuspended parameter file: [3be34c536b] check-in: [e49cc620d3] user: ab branch: trunk, size: 2267214
18:51
{3898} fixed TTextWriter.AddVariant for varWord64 file: [a8233cb9a7] check-in: [7af21804fb] user: ab branch: trunk, size: 2266589
18:50
{3897} added gcd() function file: [24adbcc22d] check-in: [5ebc136a1a] user: ab branch: trunk, size: 2266588
10:30
{3896} TSynDaemon fork/run support on Linux/Posix file: [929311b7da] check-in: [068d4e66b8] user: ab branch: trunk, size: 2266319
2017-10-13
16:01
{3894} circumvent several compilation issues with some Delphi compilers - see https://synopse.info/forum/viewtopic.php?id=4187 file: [249e30e599] check-in: [9031e98cc0] user: ab branch: trunk, size: 2266307
15:36
{3893} optional noexp parameter to TTextWriter.AddDouble/AddSingle/AddExtended methods using the new ExtendedToStringNoExp() function - and fixing huge decimal storage file: [71e1f896c5] check-in: [7d49b25313] user: ab branch: trunk, size: 2266353
15:34
{3892} new KahanSum() function file: [d8d335c5ba] check-in: [5426ebbcf2] user: ab branch: trunk, size: 2264863
2017-10-12
18:09
{3890} fixed compiler hint under Kylix file: [86231c2598] check-in: [9c8164e05d] user: ab branch: trunk, size: 2264167
12:33
{3889} fixed GPF in TSQLRestServer.InternalInfo when TSystemUse is not initialized file: [8dbb4e423d] check-in: [832118f583] user: ab branch: trunk, size: 2264317
11:41
{3887} added a lock to TSynPersistentStore file: [f6e5fafbb7] check-in: [a01343b7cd] user: ab branch: trunk, size: 2264025
2017-10-11
14:58
{3883} new TAESPRNG.Random32/Random64/RandomExt methods file: [40a2eaa003] check-in: [f403ae69de] user: ab branch: trunk, size: 2263451
08:24
{3882} introducing DaysToIso8601() - as used by UnixTimePeriodToString and UnixMSTimePeriodToString functions file: [33d0c6e872] check-in: [72ab22b940] user: ab branch: trunk, size: 2263436
2017-10-10
17:54
{3881} new UnixTimePeriodToString and UnixMSTimePeriodToString functions file: [1edb697a13] check-in: [a664a4402e] user: ab branch: trunk, size: 2261951
09:28
{3880} fixed GetSetNameShort() file: [8fe416cb2f] check-in: [875285f797] user: ab branch: trunk, size: 2260582
09:21
{3879} move TSynTableStatement/TSynTable to a new SynTable.pas unit for better code clarity, and also to circumvent limitation to 65535 code lines in Delphi 5/6/7 (internal error PRO-3006) file: [67f7118ab2] check-in: [c2fdc683e7] user: ab branch: trunk, size: 2260597
2017-10-09
16:03
{3877} overloaded SynLZCompress() for compression into an already allocated buffer file: [f67884e6f2] check-in: [512cb7dc7f] user: ab branch: trunk, size: 2383956
12:56
{3876} allow stack-allocated external work buffer for TTextWriter and TFileBufferWriter to reduce the need of heap allocation for most simple cases file: [348cd4fbaa] check-in: [bfa8dc84aa] user: ab branch: trunk, size: 2382577
2017-10-06
21:39
{3875} new QuickSortCompare() function and TSynTempBuffer.InitIncreasing method file: [cb60e41d5e] check-in: [1dc0c5e8ba] user: ab branch: trunk, size: 2377156
21:37
{3874} new MedianQuickSelect/MedianQuickSelectInteger functions file: [710763782d] check-in: [ba022eeda9] user: ab branch: trunk, size: 2375950
2017-10-05
23:11
{3873} new TTextWriter.AddJSONString/AddPropJSONString methods file: [c9fd9ff4a3] check-in: [414a43dca7] user: ab branch: trunk, size: 2370988
15:30
{3872} defined SortDynArrayQWord() as inlined when it makes sense to file: [04b010d991] check-in: [a10b3df641] user: ab branch: trunk, size: 2370366
13:58
{3871} circumvent weird internal error C3517 on Delphi 5 file: [9a2ed87caa] check-in: [2719a1d652] user: ab branch: trunk, size: 2370202
13:21
{3870} new TFileBufferWriter.WriteDynArray method file: [7cbaf2a646] check-in: [e39c89e66d] user: ab branch: trunk, size: 2370259
13:17
{3869} circumvent QWord comparison slowness under x86 (and bug on oldest versions of Delphi) file: [d1fd7cccd3] check-in: [25707a4fcd] user: ab branch: trunk, size: 2369163
2017-10-04
19:49
{3868} increased SynLZCompress stack buffer to 16KB file: [3ffbc7968d] check-in: [2c37649a5a] user: ab branch: trunk, size: 2367871
19:48
{3867} new TFileBufferWriter.FlushAndCompress method file: [7c158fde59] check-in: [840526488e] user: ab branch: trunk, size: 2367882
19:47
{3866} enhanced and fixed TFastReader file: [b3d75e6531] check-in: [4ab3da50a9] user: ab branch: trunk, size: 2367178
19:46
{3865} enhanced TSynPersistentStore file: [dd4be1d22e] check-in: [b25dca6b3f] user: ab branch: trunk, size: 2367037
19:45
{3864} enhanced and fixed QWord process - especially on older Delphi compilers which don't handle properly 64bit unsigned values file: [4387714ea8] check-in: [074dec5e55] user: ab branch: trunk, size: 2365577
19:43
{3863} added ignorecompare optional parameter to TDynArray.Equals file: [da2f6093b5] check-in: [57804396c2] user: ab branch: trunk, size: 2365228
2017-10-03
21:50
{3862} introducing EFastReader exception file: [b8e439f901] check-in: [4c7a90db43] user: ab branch: trunk, size: 2365139
15:50
{3861} enhanced QWord support via new SetQWord() function, djQWord in TDynArrayKind, TTextWriter.AddQ method file: [39f1a9d8fb] check-in: [abc12310cf] user: ab branch: trunk, size: 2359026
15:34
{3860} introduced SynLZDecompressPartial() function and enhanced TSynPersistentStore file: [3b56461fd9] check-in: [1f81ef8552] user: ab branch: trunk, size: 2356761
12:40
{3859} new TSynPersistentStore class file: [6eee6b369a] check-in: [2f0aa90b03] user: ab branch: trunk, size: 2353994
10:54
{3858} new Int64ScanIndex/QWordScanIndex/QuickSortQWord/FastFindQWordSorted functions file: [3f3154bc71] check-in: [de11aa443c] user: ab branch: trunk, size: 2351493
2017-09-30
08:22
{3853} added SafeDecompression optional parameter to SynLZDecompressBody() file: [cfdc385218] check-in: [89bb3cb113] user: ab branch: trunk, size: 2347519
08:20
{3852} few minor things for the mORMot under FPC (thanks alf) file: [78e640f0cd] check-in: [e0d6c4aca8] user: ab branch: trunk, size: 2347145
2017-09-28
18:24
{3851} new SynLZDecompressHeader and SynLZDecompressBody functions file: [833d9f8c61] check-in: [77cdfc0f58] user: ab branch: trunk, size: 2347030
18:23
{3850} fixed TDynArray.Copy file: [88e3d7c88d] check-in: [162e72da70] user: ab branch: trunk, size: 2346302
14:30
{3849} speedup of SortDynArrayInt64() with dedicated x86 asm file: [8b0bf52b71] check-in: [97271e7f15] user: ab branch: trunk, size: 2346286
08:36
{3847} let IsContentCompressed() recognize SynLZCompress() header file: [8db3ce0a81] check-in: [208d4ceaed] user: ab branch: trunk, size: 2345423
08:34
{3846} new TObjectListLocked.SafeAdd/SafeRemove/SafeExists/SafeCount wrapper methods file: [e2b479c4dc] check-in: [a6d8fd47bd] user: ab branch: trunk, size: 2345278
2017-09-27
18:23
{3845} enhanced CpuFeatures to support latest Intel CPUID file: [5fab010861] check-in: [4d609835de] user: ab branch: trunk, size: 2344058
15:33
{3841} new UnixMSTimeUTC() function file: [4545a46f83] check-in: [ff4c429b3c] user: ab branch: trunk, size: 2343627
2017-09-26
11:08
{3838} added aSocketForceCheck optional parameter to TCrtSocket.SockInPending file: [617fa8b3a0] check-in: [40ad77ad8a] user: ab branch: trunk, size: 2342772
2017-09-06
10:52
{3826} fixed [853d43ecd06c8d] compilation error file: [08bc0dc199] check-in: [c69712ac13] user: ab branch: trunk, size: 2342764
08:33
{3824} new IsHex() and Sha256Digest() functions file: [3a34acb3a9] check-in: [edf354c139] user: ab branch: trunk, size: 2342753
2017-09-01
16:19
{3821} minor refactoring of TSQLRestServerAuthenticationSignedURIAlgo - no functional change file: [c0a0f368dc] check-in: [60bed0ff51] user: ab branch: trunk, size: 2342387
2017-08-31
13:13
{3819} introducing TSQLRestServerAuthenticationSignedURIAlgo for stronger URI digital signature on REST authentication file: [08a2b247f7] check-in: [9130cc6ace] user: ab branch: trunk, size: 2342383
2017-08-30
10:03
{3818} ensure HexDisplayToCardinal/HexDisplayToInt64 will return aValue=0 on decoding error file: [bd7522505b] check-in: [ef71b2c8b6] user: ab branch: trunk, size: 2342279
2017-08-24
12:39
{3809} small refactoring of crc32c on x64/sse42 file: [e9a9b3b780] check-in: [3f98108c86] user: ab branch: trunk, size: 2341893
2017-08-23
18:19
{3807} small refactoring of crcblock() file: [25c412b680] check-in: [ad1d49c0b2] user: ab branch: trunk, size: 2341936
2017-08-22
12:07
{3803} 64-bit x2 speed up of SHA-512 via optimized asm using SSE4 instructions on supported CPU file: [57c1804231] check-in: [2c6546af95] user: ab branch: trunk, size: 2341815
2017-08-19
15:09
{3798} fixed [f07e0a6a1c4b2] for SelectInClause() to ensure SQL strings use single quotes file: [1010233f88] check-in: [37f82adf3a] user: ab branch: trunk, size: 2341725
2017-08-18
13:12
{3797} documentation update (mainly the FAQ) file: [39907abc67] check-in: [9fc51ba1dc] user: ab branch: trunk, size: 2341709
09:54
{3796} fixed TDocVariantData.InitCopy and _Unique / _Copy as reported by EgonHugeist file: [1f59a49f9d] check-in: [a38e20758c] user: ab branch: trunk, size: 2341725
07:44
{3795} new crc32cinlined() function file: [e62a6db91b] check-in: [0c707cd8c5] user: ab branch: trunk, size: 2341603
2017-08-17
15:55
{3794} fixed Delphi 5 regression tests compilation file: [c1e46f7466] check-in: [8b9e3232ce] user: ab branch: trunk, size: 2340742
10:54
{3790} enhanced SoundEx process to support any custom language and also CompareOperator() to be thread-safe file: [90b5b971cf] check-in: [55726cc4d2] user: ab branch: trunk, size: 2340745
08:55
{3789} ensure boolean variant values are normalized from WordBool ordinals to plain boolean or 0/1 integer values file: [5df0832c59] check-in: [610ae91ad0] user: ab branch: trunk, size: 2340091
07:38
{3787} introducing TSHA384/THMAC_SHA384/PBKDF2_HMAC_SHA384 and TJWTHS384 file: [2e5603943d] check-in: [301295b62a] user: ab branch: trunk, size: 2339773
2017-08-06
20:40
{3775} optimize FillCharFast/MoveFast for Ivy Bridge by detecting Enhanced REP MOVSB and STOSB operation (ERMSB) if WITH_ERMS conditional is enabled (not by default) - also reintroduced original x64 asm revision file: [1d9f0866ed] check-in: [94a1006955] user: ab branch: trunk, size: 2337755
2017-08-04
15:02
{3773} new GetPublishedMethods() function file: [a553cefff8] check-in: [f360182936] user: ab branch: trunk, size: 2325757
07:06
{3771} allow to specify a library (dll) resource instance handle when loading a resource file: [0de29be3d6] check-in: [ff2b858c03] user: ab branch: trunk, size: 2323888
2017-08-03
13:00
{3766} small performance enhancements - especially to allow aggressive optimizations for the FPC compiler file: [4a2486d424] check-in: [7ee13481c5] user: ab branch: trunk, size: 2323439
2017-08-02
16:18
{3765} SHA512 fix for Delphi/Win64 file: [6d61a625e8] check-in: [fd4f253e6b] user: ab branch: trunk, size: 2323344
14:10
{3764} small refactoring - no functional change file: [3a4a7004b8] check-in: [f9e7bdf719] user: ab branch: trunk, size: 2323240
12:16
{3760} new bswap64 and bswap64 array functions file: [bd5ce90f68] check-in: [f56f009d21] user: ab branch: trunk, size: 2323194
2017-08-01
09:56
{3758} explicit context to TDynArrayHashed ESynException message on fatal collision file: [de263b642e] check-in: [948c3f5ba3] user: ab branch: trunk, size: 2321458
07:39
{3757} enhanced Decimal128 implementation and documentation file: [6a2fd7293e] check-in: [630add79fc] user: ab branch: trunk, size: 2320956
2017-07-31
18:58
{3755} finished Decimal128 support for MongoDB/BSON 3.4 file: [1242cbc8bc] check-in: [a78877855c] user: ab branch: trunk, size: 2320861
18:56
{3754} new overloaded GetInteger(P,PEnd: PUTF8Char) function file: [efe457382d] check-in: [3882c9f3b9] user: ab branch: trunk, size: 2320487
2017-07-28
16:40
{3751} new AppendUInt32ToBuffer function file: [fef9013016] check-in: [7b2708954c] user: ab branch: trunk, size: 2319428
2017-07-27
15:04
{3746} renamed crcblockpas as crcblockNoSSE42 for accuracy file: [82e6df5891] check-in: [88f8359117] user: ab branch: trunk, size: 2318708
2017-07-26
17:03
{3744} code refactoring for FPC over BSD/Darwin compilation to get rid of unneeded {$ifdef BSD}Cardinal{$endif} conditionals file: [99d4d029d2] check-in: [c94a71a3fe] user: ab branch: trunk, size: 2318683
2017-07-25
18:23
{3738} introducing InterningHasher as used by TRawUTF8Interning file: [b594005a1c] check-in: [8902532a5d] user: ab branch: trunk, size: 2318671
18:21
{3737} DefaultHasher is set to xxHash32 if no SSE4.2 instructions are available on this CPU - as we found out that xxHash32 is faster than crc32cfast for small content file: [a9f5ce61a1] check-in: [91b25113b2] user: ab branch: trunk, size: 2318308
13:14
{3734} slightly faster FormatUTF8 file: [7794e13c51] check-in: [b011fc4437] user: ab branch: trunk, size: 2318145
2017-07-24
07:35
{3733} enhanced TSynNameValue.InitFromCSV and TDocVariantData.InitCSV to handle ItemSep=#10 in a cross-platform way, recognizing either LF or CRLF line feeds via the new GetNextItemTrimedCRLF() function file: [b3a271af08] check-in: [316e6aafbf] user: ab branch: trunk, size: 2318120
07:27
{3732} new overloaded GetNextItem() function file: [74f5e17221] check-in: [e7c774fb33] user: ab branch: trunk, size: 2317002
2017-07-21
10:39
{3729} TAESPRNG.GetEntropy will XOR additional entropy using SHA-3 in XOF mode of SHAKE-256 cryptographic-level algorithm (and made it optional) file: [414f7419fd] check-in: [565c749960] user: ab branch: trunk, size: 2316608
2017-07-19
08:16
{3727} fixed UniqueRawUTF8ZeroToTilde() buffer overflow triggered e.g. when an exception occurred during Batch process file: [6eb2e03c8b] check-in: [1d39554271] user: ab branch: trunk, size: 2316543
2017-07-12
16:38
{3722} added TSynTestCase.AddConsole method file: [372b67559d] check-in: [eefd6b2476] user: ab branch: trunk, size: 2316547
2017-07-11
08:41
{3719} optimization of IdemPChar() x86 asm file: [944cc97070] check-in: [4ea28bfa93] user: ab branch: trunk, size: 2316551
08:20
{3718} new EndWith() function file: [354a3f5427] check-in: [8fd483bc23] user: ab branch: trunk, size: 2316370
2017-07-07
15:27
{3715} introducing SHA-3 / Keccak hashing functions with associated regression tests - based on Wolfgang Ehrhardt's and Eric Grange's code file: [d8717321f5] check-in: [7faafc0a47] user: ab branch: trunk, size: 2315866
08:30
{3713} introducing THash512 digest and associated mapping/array types file: [e285045489] check-in: [c8fcbbac98] user: ab branch: trunk, size: 2315769
2017-07-05
17:39
{3710} code refactoring to reduce FPC compiler hints and warning file: [782b005b97] check-in: [db3a3b9168] user: ab branch: trunk, size: 2311474
2017-06-30
13:49
{3703} new GetEnumCaptions() function file: [e98f415102] check-in: [6f5fb47d06] user: ab branch: trunk, size: 2311023
11:12
{3702} new GetEnumTrimmedNames() function file: [2f32de6f54] check-in: [ac7028824d] user: ab branch: trunk, size: 2310383
2017-06-29
07:45
{3699} small refactoring of TemporaryFileName() function - no feature change file: [9ca4ae3316] check-in: [bff2d22c35] user: ab branch: trunk, size: 2309664
2017-06-26
14:35
{3696} introducing PtrArrayAddOnce and PtrArrayFind functions file: [3cb873dd75] check-in: [939e6c1655] user: ab branch: trunk, size: 2309704
2017-06-23
15:38
{3695} try to circumvent Delphi 2009 compiler issue file: [d43fb59a74] check-in: [1d9bb74980] user: ab branch: trunk, size: 2308870
2017-06-21
11:07
{3691} new overloaded TDocVariantData.SearchItemByProp method file: [7cdfbddbc9] check-in: [693ed9b295] user: ab branch: trunk, size: 2308866
2017-06-19
13:10
{3689} fixed GetSetNameValue() function to match GetJsonField() process, especially about EndOfObject handling file: [b5847db859] check-in: [eafc416fc2] user: ab branch: trunk, size: 2308000
2017-06-15
18:35
{3687} fix TDynArray.Reverse for even arrays file: [4b4dcbb3e2] check-in: [a5818c20c0] user: ab branch: trunk, size: 2307573
18:31
{3686} introducing EndWithArray() function file: [841d0ab701] check-in: [89d1638748] user: ab branch: trunk, size: 2307626
12:03
{3685} fixed potential buffer overflow in TLecuyer.Seed file: [af1cded19d] check-in: [7d94b9f100] user: ab branch: trunk, size: 2306911
2017-06-09
08:11
{3684} another fix for DeleteWhere on SQlite3 and external DB file: [5d5b3107d6] check-in: [17520b8f88] user: ab branch: trunk, size: 2306844
2017-06-01
09:46
{3680} fix broken url to "Better Bloom Filter" paper - thanks Andre Laszlo for the input! file: [29ceaaa960] check-in: [90038e3242] user: ab branch: trunk, size: 2306847
2017-05-31
09:31
{3679} added optional "Sep" parameter to CSVToIntegerDynArray/CSVToInt64DynArray file: [5eab14933d] check-in: [73d20b8c38] user: ab branch: trunk, size: 2306955
2017-05-16
09:00
{3667} new overloaded ObjArrayClear() function file: [b4f734cd50] check-in: [31f610d326] user: ab branch: trunk, size: 2306871
2017-05-15
13:14
{3665} ensure TDDDSocketThread.Shutdown(andTerminate=true) properly waits for the terminated thread file: [5f1daeaf38] check-in: [ca8a202525] user: ab branch: trunk, size: 2306161
07:04
{3664} fixed Delphi 5 compilation file: [bbd2617b8a] check-in: [8a16c3d538] user: ab branch: trunk, size: 2306162
2017-05-14
14:11
{3663} new TDocVariantData.AddItemText method file: [d1d48f4a84] check-in: [5f616e9ce2] user: ab branch: trunk, size: 2305858
2017-05-13
07:46
{3661} sanitize output cookie content file: [c4f9725943] check-in: [ad01bc2aaa] user: ab branch: trunk, size: 2305271
07:19
{3658} new ObjArrayAddCount() function file: [10d7374842] check-in: [416dc0f89a] user: ab branch: trunk, size: 2304336
2017-05-11
19:42
{3657} allow up to 32 parameters to FormatUTF8() function file: [0c71d1a4c6] check-in: [6cd419aba4] user: ab branch: trunk, size: 2303573
07:45
{3656} new TSynBackgroundTimer.DeQueue method file: [bdcc26d82b] check-in: [1e0ca421aa] user: ab branch: trunk, size: 2303496
07:43
{3655} introducing TSynBackgroundThreadAbstract.Pause property file: [3920155b03] check-in: [50167ac9f0] user: ab branch: trunk, size: 2302382
07:36
{3654} added overloaded DeleteRawUTF8() function file: [a1c7874b96] check-in: [ed52f0028b] user: ab branch: trunk, size: 2301795
2017-05-09
13:43
{3653} introducing TOnAsynchRedirectResult optional parameter to TSQLRestBackgroundTimer.AsynchRedirect and TSQLRest.AsynchRedirect file: [13bf4b3d82] check-in: [f1880bfda7] user: ab branch: trunk, size: 2301184
2017-05-04
08:14
{3648} fixed [e6353439b07] Mac OSX / FPC compilation - thanks for the report file: [6ca62cb3a0] check-in: [3f9f9a92c2] user: ab branch: trunk, size: 2301188
2017-05-01
09:05
{3644} fixed TSynBackgroundTimer.WaitUntilNotProcessing file: [afb2669987] check-in: [6424e0d8bc] user: ab branch: trunk, size: 2301174
2017-04-28
21:43
{3639} new UTF8ToInt64 function file: [b4f412f736] check-in: [69a190c306] user: ab branch: trunk, size: 2301174
13:10
{3638} new TSynBackgroundTimer.Processing and WaitUntilNotProcessing methods file: [82aaea2cfa] check-in: [02c3d2713d] user: ab branch: trunk, size: 2300582
13:09
{3637} new TSynLock.LockedBool property file: [f604be63e7] check-in: [d682d4102b] user: ab branch: trunk, size: 2299829
2017-04-26
09:17
{3630} new Plural() function file: [dc524de194] check-in: [eb02165384] user: ab branch: trunk, size: 2299025
2017-04-24
12:22
{3629} fixed TSynBloomFilter.Insert/MayExist file: [b1d7f4ee23] check-in: [c16efb1797] user: ab branch: trunk, size: 2298195
2017-04-22
14:25
{3626} enhanced Hash*() functions used e.g. by TDynArrayHashed for a better distribution file: [b9d97505f4] check-in: [816e7fb689] user: ab branch: trunk, size: 2298197
14:15
{3625} introducing VariantHash() crc32c-based function file: [fb2b051409] check-in: [f4c1648ff3] user: ab branch: trunk, size: 2298423
2017-04-21
16:40
{3620} TObjectHash will start hashing from 16 items file: [7deeaae94e] check-in: [7dda164e9b] user: ab branch: trunk, size: 2296755
2017-04-20
18:13
{3619} new property TSQLRecord.FillReachedEnd file: [7b2380e121] check-in: [bfaf2e2b26] user: ab branch: trunk, size: 2296765
2017-04-19
13:17
{3617} new AreUrlValid() function file: [e25de1a212] check-in: [868fdddf7e] user: ab branch: trunk, size: 2296759
09:19
{3616} new TRawUTF8ListHashedLocked.ReHash overriden method file: [93ad6490cf] check-in: [9d2ffc2f41] user: ab branch: trunk, size: 2296262
08:13
{3615} introducing TRawUTF8ListHashed.ReHash method file: [8c4dd6f75a] check-in: [10f29366b5] user: ab branch: trunk, size: 2295867
2017-04-18
19:32
{3613} new TSynDictionary.Capacity property file: [1a345ea2fd] check-in: [27d442f86a] user: ab branch: trunk, size: 2295109
09:20
{3610} new TAESAbstract.SimpleEncryptFile overloaded methods file: [5a7c28df01] check-in: [4d65b9a861] user: ab branch: trunk, size: 2294488
08:16
{3609} enhanced TypeInfoToHash() algorithm to include unmanaged tkArray fields size file: [b0519eccb1] check-in: [e57635ac14] user: ab branch: trunk, size: 2294614
07:22
{3608} changed TypeInfoToHash() algorithm to include unmanaged record fields size file: [d209c7ac55] check-in: [9d04e19dd9] user: ab branch: trunk, size: 2294496
2017-04-14
08:44
{3607} small documentation changes - no functional code modification file: [2121c5af4b] check-in: [aaaa93a331] user: ab branch: trunk, size: 2293967
07:37
{3605} fixed PropNamesValid() to handle first char just as others file: [b1fa1ae795] check-in: [f5849816e7] user: ab branch: trunk, size: 2293415
2017-04-13
19:45
{3602} new PropNamesValid() function file: [418acb22f5] check-in: [08d80b7c18] user: ab branch: trunk, size: 2293415
2017-04-12
13:54
{3601} new TDynArrayLoadFrom.FirstField method file: [431ad0d4f5] check-in: [c753c6f706] user: ab branch: trunk, size: 2292424
09:10
{3600} introducing TDynArrayLoadFrom wrapper object file: [690568d013] check-in: [06153860f6] user: ab branch: trunk, size: 2289380
2017-04-07
12:02
{3595} fixed Delphi Seattle (and up) compilation file: [ed9f5f3e22] check-in: [ce51b7c307] user: ab branch: trunk, size: 2286331
11:23
{3594} new IncludeTrailingURIDelimiter() function file: [e3f2eae48c] check-in: [5ba73c7e1c] user: ab branch: trunk, size: 2286399
07:29
{3592} speedup of FastLocatePUTF8CharSorted() and SortDynArrayPUTF8Char/SortDynArrayAnsiStringI functions file: [a9c22a5c5d] check-in: [9b3163bc69] user: ab branch: trunk, size: 2286063
2017-04-06
12:40
{3588} ensure SameValue() algorithm matches System.Math version file: [f04077679e] check-in: [5e5b7d9e7c] user: ab branch: trunk, size: 2286086
10:47
{3587} TDocVariantData.SearchItemByProp/DeleteByProp will work on dvObject and not only dvArray file: [a8c5a51e6b] check-in: [bf920333a3] user: ab branch: trunk, size: 2285744
2017-04-05
18:45
{3586} new GetEnumNames() function file: [39833ec12a] check-in: [3b7fc988c8] user: ab branch: trunk, size: 2285243
10:39
{3583} fixed Range: bytes=... support for http.sys server file: [9ef1197f73] check-in: [c576b7fc8a] user: ab branch: trunk, size: 2284703
08:37
{3582} new soWriteIgnoreDefault option for record/array JSON serialization file: [144e8f5ad3] check-in: [c948cb4d47] user: ab branch: trunk, size: 2286484
2017-04-04
18:48
{3580} speedup of TDynArray.FastLocateSorted/FastLocateOrAddSorted methods file: [d958053b56] check-in: [305c9c483b] user: ab branch: trunk, size: 2284118
2017-04-03
13:13
{3577} enhanced TDynArray.LoadFrom with a new optional AfterEach event parameter and several performance optimizations file: [3766877bc5] check-in: [b335a048bc] user: ab branch: trunk, size: 2283868
2017-04-02
21:27
{3576} updated SQLite3 engine to latest version 3.18.0 file: [fbdef4a658] check-in: [804cddfbad] user: ab branch: trunk, size: 2282292
15:09
{3575} introducing TypeInfoToHash() function and TDynArray.SaveToTypeInfoHash method file: [3bc9294b41] check-in: [86572191a1] user: ab branch: trunk, size: 2282125
2017-04-01
08:56
{3573} let TRawUTF8Interning.Unique/UniqueText accept self=nil file: [a9b7309d55] check-in: [1380d70008] user: ab branch: trunk, size: 2275787
2017-03-31
20:20
{3571} new TSQLTable.FieldAsRawUTF8 methods file: [0e9d2a9d61] check-in: [a7995149ea] user: ab branch: trunk, size: 2275480
2017-03-30
15:05
{3566} fixed DateTimeMSToString/UnixMSTimeToString file: [a743ef0f6e] check-in: [e4334bd5b5] user: ab branch: trunk, size: 2275446
12:38
{3565} defined JSON_OPTIONS_NAMEVALUEINTERN and JSON_OPTIONS_FAST_EXTENDEDINTERN constants file: [cea6857d45] check-in: [2e15ac6abe] user: ab branch: trunk, size: 2275427
12:11
{3564} new TSQLRest.AsynchInterning() method file: [991955d501] check-in: [54f2a3f897] user: ab branch: trunk, size: 2274212
06:24
{3563} added aMaxRefCount parameter to TRawUTF8Interning.Clean file: [050bbe53c6] check-in: [736ee95601] user: ab branch: trunk, size: 2274214
2017-03-29
17:06
{3562} introducing dvoInternNames and dvoInternValues options for TDocVariant automated string interning for documents names and/or values file: [4339f04a49] check-in: [b3f5cb1ed3] user: ab branch: trunk, size: 2273789
15:36
{3560} introducing TRawUTF8Interning class file: [22bd200d9b] check-in: [e8cddccfb5] user: ab branch: trunk, size: 2268227
10:25
{3559} circumvent Delphi 10.2 Tokyo Win64 compiler bug - by disabling compiler inlining for this target - of course, we expect a true fix from Embarcadero! file: [3072db9c73] check-in: [dc91e85d39] user: ab branch: trunk, size: 2258811
09:16
{3557} TDocVariantData.Kind is now stored as dvoIsObject or dvoIsArray option - will allow 6 more future TDocVariantDataOption items per document file: [7cb45e2ec3] check-in: [89090f8fe8] user: ab branch: trunk, size: 2258745
08:49
{3556} new TextToVariant() function file: [e3166646e1] check-in: [234b6ca919] user: ab branch: trunk, size: 2255846
2017-03-28
09:18
{3551} new Random32(max) overloaded function file: [91ec556f32] check-in: [00770eb5a3] user: ab branch: trunk, size: 2255340
07:22
{3550} fixed Delphi 2010+ enhanced RTTI for sets JSON serialization file: [1cb578acd5] check-in: [d55a66ff4a] user: ab branch: trunk, size: 2254478
2017-03-27
15:52
{3546} performance enhancement of TDynArrayHashed.Scan when the key is a TObject/TClass/pointer array file: [69f684270d] check-in: [dcb54e7bbd] user: ab branch: trunk, size: 2254440
10:09
{3544} introducing TJSONSerializer.RegisterCustomSerializerFieldNames method file: [0f2d1cbe1d] check-in: [b47582774f] user: ab branch: trunk, size: 2253804
2017-03-22
17:31
{3539} fixed Delphi 10.2 Tokyo compilation file: [e583358c5e] check-in: [175623672d] user: ab branch: trunk, size: 2253696
2017-03-21
16:08
{3535} introducing TSystemUse.Subscribe/Unsubscribe methods file: [0c519ceef5] check-in: [672abbd60a] user: ab branch: trunk, size: 2253566
2017-03-20
16:09
{3526} introducing TrimControlChars() function file: [742be41645] check-in: [6718089501] user: ab branch: trunk, size: 2251545
2017-03-17
19:46
{3516} fixed Delphi 2007 compilation issue file: [670a26ed46] check-in: [f3184031b3] user: ab branch: trunk, size: 2250553
18:00
{3514} introducing LogEscape and EscapeBuffer functions file: [1fd006407f] check-in: [2ca16a3d62] user: ab branch: trunk, size: 2250517
09:27
{3505} refactoring of cross-platform and cross-CPU conditionals file: [98db6cf895] check-in: [f44fc659d4] user: ab branch: trunk, size: 2248400
07:40
{3503} new TExeVersion.Hash field file: [ef57d1aa86] check-in: [830dc06268] user: ab branch: trunk, size: 2248124
07:39
{3502} introducing Random32 and Random32Seed functions will use RDRAND Intel x86/x64 opcode if available, or fast gsl_rng_taus2 generator by Pierre L'Ecuyer (period is 2^88, i.e. about 10^26) - not to be used for cryptographic level randomness, but much better than Random(maxInt) RTL function file: [e3e289c9d2] check-in: [c883b0a70a] user: ab branch: trunk, size: 2247441
07:35
{3501} new TSynTempBuffer.InitRandom method file: [0126af302c] check-in: [162c2aa624] user: ab branch: trunk, size: 2244687
2017-03-15
16:45
{3494} new TFileVersion.DetailedOrVoid method file: [09726bdbd4] check-in: [148c781ead] user: ab branch: trunk, size: 2244292
16:45
{3493} new TSynDictionary.FindValue/FindValueOrAdd methods file: [4d782b0529] check-in: [f8eee03cc2] user: ab branch: trunk, size: 2243915
16:43
{3492} now TSQLLog is defined as TSynLog alias - since TTextWriter class will use Object serialization if mORMot.pas is linked file: [063eb64b8f] check-in: [b5e476ccd5] user: ab branch: trunk, size: 2242472
16:41
{3491} fixed memory leak with TDynArray.Clear applied on T*ObjArray instances file: [41a0e1e989] check-in: [d56af7cc8a] user: ab branch: trunk, size: 2241985
16:40
{3490} overloaded faster ObjArrayClear() function file: [751306551f] check-in: [ca1489fbee] user: ab branch: trunk, size: 2241884
2017-03-13
12:34
{3488} new overloaded PBKDF2_HMAC_SHA256() function returning as many bits of output as needed file: [e3a2a495a6] check-in: [7c2adc4cb9] user: ab branch: trunk, size: 2241073
2017-03-09
09:07
{3471} new GetSetName and ByteToHex functions file: [3f7428205f] check-in: [6274a7c837] user: ab branch: trunk, size: 2240434
2017-03-06
10:16
{3467} fixed ExeVersion.ProgramName when executable name is double-dotted file: [1acb0c7963] check-in: [221c74bfd5] user: ab branch: trunk, size: 2239490
09:57
{3465} ORM/ODM now supports TUnixMSTime kind of properties file: [9f7c0def3d] check-in: [19d1a8c122] user: ab branch: trunk, size: 2239478
2017-03-04
10:02
{3459} avoid enless lock in TSynBackgroundThreadProcess.Destroy file: [dc634204bd] check-in: [2a1459f31a] user: ab branch: trunk, size: 2237095
2017-03-03
11:39
{3454} fixed unexpected GPF in TSynTableStatement when parsing "IN()" incorrect where clause - thanks ASiwon for the feedback file: [6416c05790] check-in: [f84ac8a5d7] user: ab branch: trunk, size: 2236958
11:11
{3453} fPendingProcessLock is now defined in TSynBackgroundThreadMethodAbstract file: [a81a558487] check-in: [0ef9bdadfa] user: ab branch: trunk, size: 2236944
08:21
{3451} new MAX_SQLFIELDS_128, MAX_SQLFIELDS_192 or MAX_SQLFIELDS_256 conditionals to change MAX_SQLFIELDS constant when default 64 is not enough file: [1b019505f4] check-in: [427e2ed4ea] user: ab branch: trunk, size: 2236965
2017-03-01
13:49
{3447} ECC encrypted file now stores .sign metadata - warning: ECC tool will be backward compatible, but medata changed the .synecc file header magic to reflect the new stored information file: [a796d5e4ce] check-in: [4fd863f190] user: ab branch: trunk, size: 2236567
07:44
{3445} Added Latin-1 ISO/IEC 8859-1 Code Page support to TSynAnsiConvert file: [14abfe5d3d] check-in: [39a7424410] user: pavel.mash branch: trunk, size: 2236624
2017-02-28
15:32
{3442} ensure ExeVersion.User is filled on all Linux/POSIX systems file: [edf4f5b2bb] check-in: [bd0dade280] user: ab branch: trunk, size: 2236308
10:11
{3440} introducing ClassNameShort/ToText(TClass) overloaded functions file: [f5c39001cc] check-in: [3370c10e8c] user: ab branch: trunk, size: 2236127
07:43
{3437} let TSynPersistentWithPassword properly use CryptDataForCurrentUser file: [5bd4b1bfa4] check-in: [dd99c4465f] user: ab branch: trunk, size: 2233915
07:40
{3436} fixed TSynPersistentWithPassword.ComputePassword to work as expected file: [62910e7fc1] check-in: [ce74f57b4c] user: ab branch: trunk, size: 2233496
07:40
{3435} added RemoveComments optional parameter to TDocVariantData.InitJSONFromFile file: [47bdf96047] check-in: [1135dcf0d1] user: ab branch: trunk, size: 2233467
2017-02-27
16:57
{3434} fixed TTextWriter.AddAnyAnsiBuffer when start with char >#127 - thanks Dmitry for the report! file: [aa3fc613cc] check-in: [afa2a689d5] user: ab branch: trunk, size: 2233135
11:33
{3431} new TAESAbstract.MACEquals/Create methods file: [de97f6ace6] check-in: [9db4fa7f94] user: ab branch: trunk, size: 2233106
2017-02-26
20:04
{3430} enhanced CryptDataForCurrentUser() function to be used as safe cross-platform process and introduced CryptDataForCurrentUserDPAPI file: [97ad017d3d] check-in: [e47b81911c] user: ab branch: trunk, size: 2233000
2017-02-25
20:14
{3427} TSynPersistentWithPassword will recognize 'user:cryptedpassword' passwords with custom TSynPersistentWithPasswordUserCrypt function file: [fa6e53990b] check-in: [7a01d99334] user: ab branch: trunk, size: 2232988
2017-02-23
09:15
{3425} enhanced TMVCSessionWithCookies security - stronger cookie content encryption - avoid potential buffer overflow - LoadContext/SaveContext format changed file: [22844fcb16] check-in: [847cfedb85] user: ab branch: trunk, size: 2231431
2017-02-22
16:02
{3421} new ObjArrayCount method file: [b803215b8a] check-in: [26dc0d9e24] user: ab branch: trunk, size: 2231426
2017-02-17
12:03
{3416} minor documentation fixes file: [c6d8cf926d] check-in: [f74c007abb] user: ab branch: trunk, size: 2231014
10:33
{3415} - extend TFileVersion by version resources stored in strings in the first locale section. Windows only. Added resources: CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, OriginalFilename, ProductName, ProductVersion, Comments file: [368f9e1f67] check-in: [7fc99f8f94] user: pavel.mash branch: trunk, size: 2230075
2017-02-14
20:06
{3411} new Utf8TruncatedLength() overloaded functions file: [7e763fa666] check-in: [fed92b62ce] user: ab branch: trunk, size: 2228473
14:09
{3407} included latest FPC RTTI and static SQlite3 linking for Darwin and ARM - you will need a very recent FPC/Lazarus compilation - preferably latest NewPascal - thanks Alfred (alf) for this great patch! file: [28913cad3a] check-in: [a1fc4dcff1] user: ab branch: trunk, size: 2226595
09:11
{3406} new overloaded THMAC_CRC32C.Update method file: [973ed7af21] check-in: [b4d81e03bf] user: ab branch: trunk, size: 2222799
2017-02-07
11:18
{3395} ensure IsEqual() overloaded functions are not sensitive to any timing attack file: [9712867a1a] check-in: [a27f1fafda] user: ab branch: trunk, size: 2222659
2017-02-04
09:27
{3389} new PointerToHexShort/CardinalToHexShort/Int64ToHexShort functions file: [f1befb37ee] check-in: [9c1b76e68e] user: ab branch: trunk, size: 2222011
2017-02-03
17:24
{3386} enhanced tests about double values in variants file: [f00c04c934] check-in: [0e06277c02] user: ab branch: trunk, size: 2220563
17:09
{3383} new IommandLine.AsEnum method file: [7ad71169db] check-in: [a2735df1e4] user: ab branch: trunk, size: 2220255
08:33
{3378} new overloaded procedure GUIDToShort() file: [b70ca83b3c] check-in: [b3647b5762] user: ab branch: trunk, size: 2219236
2017-02-02
10:33
{3377} some fixes about dvoAllowDoubleValue proper use file: [7b3bc5b642] check-in: [68271abc82] user: ab branch: trunk, size: 2218743
2017-02-01
17:23
{3374} new SplitRight() function file: [98baeffc2b] check-in: [59e3d1e1ed] user: ab branch: trunk, size: 2218698
2017-01-30
14:15
{3368} always a better commit with the actual code ;) file: [df6530a15e] check-in: [8d10461316] user: ab branch: trunk, size: 2218178
10:35
{3366} new TTextWriter.AddUnixMSTime method file: [4f52e8bdb0] check-in: [c83c5c1fb9] user: ab branch: trunk, size: 2217240
10:20
{3362} introducing TSQLVar.Options field file: [93837859a0] check-in: [9312098581] user: ab branch: trunk, size: 2216929
08:14
{3361} fixed milliseconds writing in TTextWriter.AddDateTime file: [d420559eb3] check-in: [769eb7da7f] user: ab branch: trunk, size: 2216461
2017-01-26
15:58
{3358} documentation enhancements - no functional change file: [44e88c8c11] check-in: [c340acca4a] user: ab branch: trunk, size: 2216410
15:56
{3357} fixed [5ff16c841f22] ticket about Utf8TruncateToLength/TSynLogFile.EventString problem file: [8cec7cbe55] check-in: [e969bc4696] user: ab branch: trunk, size: 2216184
08:29
{3356} circumvent FPC rtti specificity about enums and boolean file: [1dd095eb65] check-in: [7722efdbf9] user: ab branch: trunk, size: 2216111
07:52
{3353} new SetAppUserModelID() function file: [9d353d76af] check-in: [88f9e4e2d0] user: ab branch: trunk, size: 2216026
2017-01-22
20:04
{3347} new THttpClientSocket.GetAuth method file: [345beee5b0] check-in: [b04014e53e] user: ab branch: trunk, size: 2214066
13:25
{3346} fixed Delphi XE+ compilation file: [c3c137367e] check-in: [79f3fdb95e] user: ab branch: trunk, size: 2213783
2017-01-21
18:52
{3344} new function TemporaryFileName file: [970b811c75] check-in: [4999fc5445] user: ab branch: trunk, size: 2213772
2017-01-20
10:25
{3340} added "timeout" field at client REST connection file: [6addea1aec] check-in: [1385ed5233] user: ab branch: trunk, size: 2212042
2017-01-19
20:07
{3339} TSQLModel will ensure Root will contain only expected chars file: [ea22b7b924] check-in: [e30de8cb21] user: ab branch: trunk, size: 2211937
19:42
{3337} new TTextWriter.AddRawJSON method file: [04854eb4a1] check-in: [0fcd221ebe] user: ab branch: trunk, size: 2211637
09:33
{3336} modified all links to https://synopse.info - since our web site is now HTTPS + HTTP/2 and rated A+ on https://www.ssllabs.com/ssltest/analyze.html?d=synopse.info file: [0d85cc0634] check-in: [b32f6a4110] user: ab branch: trunk, size: 2211465
08:56
{3333} fixed RawJSON record serialization (content was wrongly quoted) file: [5728eb1d0b] check-in: [a43c1620e1] user: ab branch: trunk, size: 2211462
2017-01-17
19:18
{3330} new BitmapToRawByteString() function for SynGdiPlus file: [9e3f60f522] check-in: [cbbd7a2517] user: ab branch: trunk, size: 2211367
12:25
{3329} ensure [3cce80e8df] regression test contains one of the EndOfJSONField chars file: [a69f08355b] check-in: [9419bd195d] user: ab branch: trunk, size: 2211357
09:01
{3328} fixed GetJSONField() buffer overflow as reported by Chaa in [3cce80e8df] file: [5464a6d67e] check-in: [2bab9ff814] user: ab branch: trunk, size: 2211357
08:36
{3326} small enhancement for FPC file: [4c33b319ff] check-in: [e4a60f6fb3] user: ab branch: trunk, size: 2211374
2017-01-15
18:33
{3322} updated documentation mainly about TDateTimeMS file: [8344fb2224] check-in: [1fc6109dbc] user: ab branch: trunk, size: 2211273
18:01
{3321} ORM and ODM should now handle TDateTimeMS as expected file: [0b77d50c3c] check-in: [708f43b6e7] user: ab branch: trunk, size: 2211273
15:38
{3320} handle .sss suffix for TDateTimeMS record/array JSON serialization file: [f74d43f228] check-in: [e8ce812bd7] user: ab branch: trunk, size: 2211186
14:32
{3319} added WithMS: boolean parameter for ISO-8601 time conversion to allow optional appending of .sss milliseconds - also implemented .sss parsing into ms value file: [47626357a9] check-in: [fc7fc84d70] user: ab branch: trunk, size: 2210439
2017-01-14
14:35
{3318} TUnixTime published property ORM/ODM support and associated documentation file: [1aab27fdbe] check-in: [fcde2db5ac] user: ab branch: trunk, size: 2206125
13:04
{3317} fixed URW699 internal error with Delphi 6 / Kylix 3 file: [17be237419] check-in: [795ccc02e4] user: ab branch: trunk, size: 2205631
10:42
{3315} introducing TUnixTime / TUnixMSTime types file: [0c4793981b] check-in: [cbb365fc09] user: ab branch: trunk, size: 2205410
2017-01-13
15:58
{3312} fixed MultiPartFormDataDecode function for base-64 decoding - thanks EMartin for the feedback! file: [c912786843] check-in: [3f0abd16f0] user: ab branch: trunk, size: 2204903
2017-01-03
10:52
{3309} speed increase of NowUTC function by using GetSystemTimeAsFileTime very fast API call file: [b60017e04a] check-in: [749ab88758] user: ab branch: trunk, size: 2204907
2017-01-01
15:05
{3305} we reached 2017 ! HAPPY MORMOT YEAR FOR EVERYONE! file: [916f9b4b1f] check-in: [8f71b8aaf0] user: ab branch: trunk, size: 2204859
2016-12-29
08:21
{3304} SynDB's ColumnScale contains -1 if the SQL metadata request returns NULL - is the case e.g. for plain NUMBER for Oracle, which should be handled as ftDouble, not ftInt64 - see http://synopse.info/forum/viewtopic.php?id=3723 file: [c144875169] check-in: [9a04825171] user: ab branch: trunk, size: 2204859
2016-12-28
18:31
{3303} new OPT4AMD conditional - to use "set of byte" to generate BT[mem] opcode which is actually slower under Intel than cascaded SUB, and may be faster under file: [64a02a24ba] check-in: [ded4e331e7] user: ab branch: trunk, size: 2204765
15:30
{3302} FPC ARM cross-compilation fixes file: [0e09a4388c] check-in: [76e07da835] user: ab branch: trunk, size: 2203925
12:23
{3301} remove some warnings about 64-bit integers as complained by Delphi 10.2 compiler file: [61f12c669c] check-in: [464ed4ac8d] user: ab branch: trunk, size: 2203985
12:20
{3300} enhanced FPC compatibility file: [b0ab8c40ff] check-in: [8511f071a6] user: ab branch: trunk, size: 2203908
12:18
{3299} new TDynArray.ElemLoadClear method and also ElemLoadFind speedup file: [054645e5d7] check-in: [0e2a41340b] user: ab branch: trunk, size: 2204675
09:07
{3298} tkArray support refactoring file: [e520a53826] check-in: [29d19bcc75] user: ab branch: trunk, size: 2203964
2016-12-27
19:52
{3297} internal rewrite of GetTypeInfo() - no functional change file: [39cbab7468] check-in: [2a35282a38] user: ab branch: trunk, size: 2203700
16:37
{3296} new TDynArray.ElemCopyAt/ElemCopyFrom methods - also includes some fixes and refactoring of TDynArray internal process file: [51f94d8325] check-in: [8257816a79] user: ab branch: trunk, size: 2203074
16:30
{3295} fixed SetCodePage() from RTTI if FPC_REQUIRES_PROPER_ALIGNMENT file: [a136473768] check-in: [c0e3841ff4] user: ab branch: trunk, size: 2203434
14:36
{3294} changed TDynArray.ElemSave/ElemLoad format to use the same binary layout as TDynArray.SaveTo for consistency and support of all kind of content file: [fee6b2f549] check-in: [10b73d3ac6] user: ab branch: trunk, size: 2203325
10:29
{3293} ensure FPC binary serialized flow matches Delphi's file: [f233d14e91] check-in: [354d36be1c] user: ab branch: trunk, size: 2206694
09:34
{3292} finalized binary serialization refactoring with FPC support enhanced file: [6186ca90cf] check-in: [92667d06d4] user: ab branch: trunk, size: 2206459
2016-12-26
20:04
{3290} added tkArray support for binary serialization - includes a huge refactoring to share most code between records and dynamic arrays - warning: broken under FPC... to fixed fixed ASAP... file: [b64f5d22a0] check-in: [9724708fd4] user: ab branch: trunk, size: 2206444
2016-12-23
15:49
{3288} new ESynException.CreateLastOSError constructor file: [2cdf850227] check-in: [31519a006f] user: ab branch: trunk, size: 2208238
10:47
{3286} refactored GetBit64/SetBit64/UnSetBit64 to avoid asm file: [531d54b0cf] check-in: [0b3587640f] user: ab branch: trunk, size: 2207416
09:59
{3285} code refactoring for consistent THash128Rec/THash256Rec use file: [6a1a3183af] check-in: [e0b918eb29] user: ab branch: trunk, size: 2208676
2016-12-22
21:21
{3283} introducing THash128Rec and THash256Rec mapping structures file: [08101585a8] check-in: [c0649ed04c] user: ab branch: trunk, size: 2208302
12:34
{3280} new GetVariantFromNotStringJSON() function as called e.g. by function GetVariantFromJSON() file: [9443f8e581] check-in: [aed40f2e71] user: ab branch: trunk, size: 2207896
08:09
{3279} updated the documentation and added the corresponding regression test about proper use of _() pseudo-method file: [3d32b9a040] check-in: [bac1983bed] user: ab branch: trunk, size: 2206821
2016-12-21
14:43
{3273} new ESynException.RaisedAt property and corresponding TSynMapFile.FindLocation overloaded method file: [8dbfa16208] check-in: [75f648ae8e] user: ab branch: trunk, size: 2206517
2016-12-20
18:28
{3263} introducing TDocVariantData.S[] property using plain string values file: [9db5e8e15f] check-in: [e3781784a4] user: ab branch: trunk, size: 2205823
2016-12-19
09:57
{3254} enhanced JWT to return jwtNoToken result - also fixed optional caching of invalid signatures file: [f8c23de230] check-in: [31989787bd] user: ab branch: trunk, size: 2204264
09:42
{3253} added "minimal" optional parameter to GetCardinal() file: [04b802e803] check-in: [bbcddceaa0] user: ab branch: trunk, size: 2204027
2016-12-14
20:05
{3252} added JPEG_CONTENT_TYPE constant file: [6e7ce9c07b] check-in: [e66c362830] user: ab branch: trunk, size: 2203826
2016-12-13
15:17
{3248} new GetLastException/GetLastExceptions functions to retrieve an history of latest intercepted exceptions file: [803f80ec89] check-in: [3bf0114fb7] user: ab branch: trunk, size: 2203649
11:52
{3247} circument Delphi 2006/2007 false positive warnings file: [79015571ff] check-in: [57b2569f08] user: ab branch: trunk, size: 2203407
11:20
{3244} fixed FindFiles() sorting by using new SortDynArrayFileName() also enhanced GetFileNameWithoutExt to optionally return the extension file: [2adb7c5328] check-in: [6f10365017] user: ab branch: trunk, size: 2203196
2016-12-12
13:08
{3242} small fix of JSONArrayItem and JsonObjectItem functions file: [26734063c2] check-in: [56ad5da047] user: ab branch: trunk, size: 2202187
10:42
{3241} new TSQLRestCache.FillFromQuery method - also includes minor refactoring without functional change file: [d15eb7558c] check-in: [8a4e3b1dbf] user: ab branch: trunk, size: 2202154
2016-12-10
19:13
{3239} TSynTempBuffer enhancements for better use within the framework file: [a50ecbfb91] check-in: [9eff05c9eb] user: ab branch: trunk, size: 2202203
10:56
{3233} added twoEnumSetsAsBooleanInRecord and twoFullSetsAsStar JSON serialization options file: [82884cd740] check-in: [9703ec93c5] user: ab branch: trunk, size: 2202243
2016-12-09
21:18
{3228} introducing UnixTimeUTC function with very fast time retrieval under Windows and POSIX systems file: [a48dc76984] check-in: [0aa6f4c60d] user: ab branch: trunk, size: 2201744
21:15
{3227} new GetNextItemTrimed() function file: [d92bab9753] check-in: [9be842cbc8] user: ab branch: trunk, size: 2200828
12:47
{3226} improved JSON parsing performance by letting internal functions optionally return the length of the parsed buffer to avoid a StrLen function call file: [ec2206354b] check-in: [fab039c41f] user: ab branch: trunk, size: 2200166
2016-12-08
11:38
{3220} enhanced TJWTAbstract process and documentation file: [bb047c74da] check-in: [9164ad1bfb] user: ab branch: trunk, size: 2199264
2016-12-07
21:17
{3219} fixed Delphi 5 and FPC compilation - also updated documentation file: [05e5433418] check-in: [3967db239d] user: ab branch: trunk, size: 2199266
20:37
{3216} new TSynNameValue.InitFromJSON/AsJSON methods file: [d6f573af9b] check-in: [e78f41b9bc] user: ab branch: trunk, size: 2199253
20:34
{3215} TSynDictionary.DeleteDeprecated will actually search only once a second file: [16ad2432dd] check-in: [45dc5bb96d] user: ab branch: trunk, size: 2196794
20:32
{3214} fixed VariantToBoolean() to identify 1 as true - as returned by GetJsonField file: [1af00ba4d0] check-in: [afd2c1b654] user: ab branch: trunk, size: 2196506
20:30
{3213} new ToInteger/ToCardinal/ToInt64 functions file: [5133d28b5f] check-in: [2bfa8b907f] user: ab branch: trunk, size: 2196401
2016-12-02
14:49
{3210} enhanced TSQLTable.GetRowValues method for better performance and optional header/trailer file: [255a4eebb7] check-in: [cbf055cda7] user: ab branch: trunk, size: 2195131
2016-12-01
21:50
{3209} let SynCommons compile with PUREPASCAL on Delphi 7 file: [17e7c16e82] check-in: [e6f603369f] user: ab branch: trunk, size: 2195126
21:21
{3208} defined public TSynUniqueIdentifierGenerator.Safe property file: [907f3e31eb] check-in: [f98c4b9309] user: ab branch: trunk, size: 2195028
2016-11-30
09:35
{3200} made StreamUnSynLZ() more resistant to fuzzing file: [0a78ba4c0c] check-in: [ed3f30ea78] user: ab branch: trunk, size: 2194935
2016-11-23
18:45
{3185} new MainAESPRNG global class instance file: [a94bf52178] check-in: [7a2266e193] user: ab branch: trunk, size: 2194863
18:44
{3184} PosChar() optimization file: [2132ba4310] check-in: [996d58fccf] user: ab branch: trunk, size: 2193787
2016-11-21
10:46
{3183} added ERTTI/EMOP flags to GetDelphiCompilerVersion for FPC feature branches file: [164ffe33ab] check-in: [5361a0daee] user: ab branch: trunk, size: 2193522
2016-11-14
18:09
{3180} FreeBSD preliminary support via FPC - thanks a lot ALF for the patches! file: [5766466712] check-in: [c4af554637] user: ab branch: trunk, size: 2193392
2016-11-03
10:29
{3170} new MaxThreadPoolCount optional parameter to TSynParallelProcess.Create file: [00f83f1534] check-in: [1bf603720a] user: ab branch: trunk, size: 2191371
2016-10-31
14:18
{3162} added aMethodsNames optional parameter to IMultiCallbackRedirect.Redirect() methods file: [dc954bdf98] check-in: [61a60ea96d] user: ab branch: trunk, size: 2190859
13:25
{3159} new TTextWriter.RegisterCustomJSONSerializerForVariant and TTextWriter.RegisterCustomJSONSerializerForVariantByType methods file: [c91e5a6670] check-in: [2b741e9d32] user: ab branch: trunk, size: 2190815
2016-10-27
14:35
{3149} new PtrArrayDelete() wrapper function file: [e238d3b419] check-in: [9269da679c] user: ab branch: trunk, size: 2187326
2016-10-26
19:25
{3147} fixed timeout process in TSynDictionary file: [42d6caa185] check-in: [a0be647545] user: ab branch: trunk, size: 2186815
19:25
{3146} new ExtendedToStrNan() function file: [d69962c173] check-in: [218304c3ba] user: ab branch: trunk, size: 2186803
2016-10-25
13:51
{3145} isSelect() will allow CRLF separator to identify SELECT statements file: [39e896f59e] check-in: [c5165a6b8e] user: ab branch: trunk, size: 2185893
13:05
{3144} small performance enhancements file: [3ccee97531] check-in: [8c4bfb7b05] user: ab branch: trunk, size: 2185878
13:03
{3143} new JSONArrayDecode() function file: [7600aaf916] check-in: [3f9e641ad7] user: ab branch: trunk, size: 2185465
13:03
{3142} new GetJSONItemAsRawUTF8() function file: [d23dc22e79] check-in: [c3234f08ba] user: ab branch: trunk, size: 2184094
08:34
{3141} minor doc update and code formating - no functional change file: [ad82c931a2] check-in: [8cf1b2dd30] user: ab branch: trunk, size: 2183054
07:36
{3139} added optional AllowDouble parameter to VariantLoadJSON() overloaded functions file: [087fde524c] check-in: [e555a73d2c] user: ab branch: trunk, size: 2182626
07:34
{3138} FPC crc-assembler for 64bit fix (rip) - patch by Alf file: [dfaac12f5c] check-in: [69d00ecdbe] user: ab branch: trunk, size: 2182230
2016-10-22
17:38
{3132} enhanced logged information in case of exception during Batch process file: [81e4cfddbd] check-in: [13dbb7f632] user: ab branch: trunk, size: 2182226
2016-10-21
15:43
{3129} BREAKING CHANGE: double values won't be supported by default in variant/TDocVariant process - to ensure no precision is lost during JSON conversion - unless dvoAllowDoubleValue is set as serialization option, or AllowDouble is true for GetVariantFromJSON() file: [c3962eb719] check-in: [aa35ac110a] user: ab branch: trunk, size: 2181442
15:10
{3128} enhanced TTextWriter.AddDouble/AddSimple/Add(Value: extended) to write "Infinity", "-Infinity", and "NaN" for corresponding IEEE values file: [ae0eaf84f7] check-in: [a956b190c0] user: ab branch: trunk, size: 2175667
15:01
{3127} new TSynExtendedNan and ExtendedToStringNan() function file: [7c299f049b] check-in: [1188e8115a] user: ab branch: trunk, size: 2175339
2016-10-20
09:41
{3123} enhanced TWebSocketProcess.NotifyCallback to ignore and wait for previous NotifyCallback TIMEOUT answer frames and return 501 to recreate connection after 30 seconds -> will avoid returning deprecated answers on the client side file: [1ad372673b] check-in: [ae0872c88f] user: ab branch: trunk, size: 2173639
2016-10-17
18:57
{3112} new ECC cheatinit/cheat commands to use cheat.private/.public files so that new/rekey commands will create a local .cheat file using cheat.public key for safe password recovery, locked by the master password of the cheat.private key file: [d659246119] check-in: [307369df42] user: ab branch: trunk, size: 2173295
15:33
{3107} fixed TSynNameValue.ValueEnum file: [778d1a4d16] check-in: [eed726695b] user: ab branch: trunk, size: 2173304
12:48
{3105} fixed buffer overflow issue in TDynArrayHashed file: [136539584d] check-in: [05f616d381] user: ab branch: trunk, size: 2173286
10:42
{3103} introducing IProtocol.ProcessHandshake method file: [d1d8c3a31d] check-in: [5a41ee44ac] user: ab branch: trunk, size: 2172632
2016-10-16
18:29
{3095} new cross-platform GetSystemPath() function file: [2dab906b64] check-in: [bf88a696b1] user: ab branch: trunk, size: 2172608
18:28
{3094} new overloaded Base64ToBinSafe() functions file: [b75c36999f] check-in: [17060d75a5] user: ab branch: trunk, size: 2169820
18:27
{3093} new TSynNameValue.ValueEnum method file: [80da7f9294] check-in: [0b32cf5a5c] user: ab branch: trunk, size: 2167758
2016-10-13
19:59
{3090} changed function xxHash32() parameters order to match other hashing functions file: [646cc87240] check-in: [4cfe8b72b4] user: ab branch: trunk, size: 2166916
14:40
{3086} optimized xxHash32() x86 asm on AMD CPUs to avoid imul reg, reg, mem opcode as reported by Eric Grange file: [c21efe2c83] check-in: [b18ec620ba] user: ab branch: trunk, size: 2166661
12:34
{3082} including crcblocks() for 128-bit SSE4.2 CRC of 128-bit data blocks file: [9cd989da04] check-in: [051e1be7f0] user: ab branch: trunk, size: 2166563
2016-10-12
20:53
{3082} fixed [63aa36f485] memory corruption in TSynAnsiConvert.AnsiToUnicodeString file: [a73392de4f] check-in: [d66449a2c4] user: pavel.mash branch: trunk, size: 2159751
07:23
{3081} added regression tests and Linux x64 asm compatibility for xxHash32() file: [250ac99b82] check-in: [fcf42a62fd] user: ab branch: trunk, size: 2159632
2016-10-11
17:57
{3080} introducing xxHash32() function - with optimized asm version of x86 and x64 file: [b61b80a070] check-in: [436b454377] user: ab branch: trunk, size: 2159402
13:57
{3078} introducing TECDHEProtocol regression tests file: [95a2af30e0] check-in: [8e4998856c] user: ab branch: trunk, size: 2151678
2016-10-09
13:34
{3067} refactored overloaded IsZero() and IsEqual() functions file: [adc5d3ca68] check-in: [b7234874e2] user: ab branch: trunk, size: 2151677
2016-10-08
14:57
{3059} added .map .synlz .dbsynlz .data files magic header recognition in IsContentCompressed() file: [ac52f352ac] check-in: [820eb053d7] user: ab branch: trunk, size: 2152740
2016-10-07
19:32
{3056} added new CheckMagicForCompressed: boolean property to SynLZCompress() - set e.g. for our binary WebSockets protocol file: [97301dd0ab] check-in: [81edf8fd01] user: ab branch: trunk, size: 2152515
2016-10-06
17:13
{3052} fixed compilation issue introduced by latest patch file: [a9524bc3ae] check-in: [d8580246ef] user: ab branch: trunk, size: 2152263
16:57
{3051} added TDynArrayHashed.EventHash to fix [954f1acf79c66c] file: [eb9baa75ff] check-in: [5e9bb92e87] user: ab branch: trunk, size: 2152202
12:47
{3049} small performance enhancement of TTextWriter.Add/AddU for small 0..9999 numbers file: [a117bd92fd] check-in: [2c71580a63] user: ab branch: trunk, size: 2151556
12:46
{3048} introducing procedure TSystemUse.OnTimerExecute - to be used with TTimer.OnTimer VCL event file: [d24a1115ca] check-in: [08e7937e63] user: ab branch: trunk, size: 2150721
12:44
{3046} new _ByRef() overloaded functions for fast TDocVariant variables copy, with options override file: [1200666e69] check-in: [c7e51df9b8] user: ab branch: trunk, size: 2150314
2016-10-05
19:11
{3045} new StringToConsole() function file: [6c63736ba3] check-in: [cb5746ed74] user: ab branch: trunk, size: 2149083
14:54
{3044} _Safe() on a non TDocVariant will return a fake document with dvoReturnNullForUnknownProperty defined so that U[]/I[]... methods won't raise any exception about unexpected field name file: [6eb5bdde9b] check-in: [ccecc2bc14] user: ab branch: trunk, size: 2148649
14:52
{3042} ensure TDynArray.Copy will handle T*ObjArray content will fix also CopyObject() and ObjArrayCopy() functions file: [bc2a735c81] check-in: [8820ccffdf] user: ab branch: trunk, size: 2148460
10:44
{3040} fixed TSystemUse.HistoryData when aDepth is specified file: [4e11d968cb] check-in: [11846c23e1] user: ab branch: trunk, size: 2148374
08:15
{3039} fixed Delphi 6 compilation file: [5c8a0b49bd] check-in: [5bf15469a3] user: ab branch: trunk, size: 2147920
2016-10-04
15:27
{3038} added x64 support for TSynFPUException class file: [4045abc692] check-in: [d6c42b85f3] user: pavel.mash branch: trunk, size: 2147617
2016-10-03
20:00
{3034} new TSystemUse.HistoryData/HistoryText and Current methods file: [ec8d10ea7d] check-in: [605b60a647] user: ab branch: trunk, size: 2146712
16:29
{3033} another TSystemUse fix - note that this class is not yet tested at all! ;) file: [d194c74d77] check-in: [b56b7c7458] user: ab branch: trunk, size: 2143592
08:47
{3028} TSystemUse CPU percent fix - percent values were not computed against the full CPU time file: [5623b0ac51] check-in: [dfd4348eb3] user: ab branch: trunk, size: 2143592
2016-10-01
15:39
{3027} TCPUUsage renamed as TSystemUse and enhanced to include RAM information file: [60a76a28ac] check-in: [13036934d9] user: ab branch: trunk, size: 2143640
15:38
{3026} fixed Delphi 2010+ regression introduced by [31c0f0b0845fcf] file: [573a940077] check-in: [48fca4fc4f] user: ab branch: trunk, size: 2141744
2016-09-29
14:25
{3025} enhanced TCPUUsage file: [a34ac29251] check-in: [f9bdee0ba6] user: ab branch: trunk, size: 2141920
12:29
{3023} refactoring of "not" operator syntax to avoid unneeded parenthesis file: [4013dd2f19] check-in: [8fe39411b5] user: ab branch: trunk, size: 2140690
12:28
{3022} preliminary version of TCPUUsage class - not yet tested file: [7f3ba1204c] check-in: [2596a119dc] user: ab branch: trunk, size: 2140740
2016-09-28
09:46
{3019} fixed proper execution of TSynBackgroundTimer.Enable(aOnProcessSecs=1) file: [4f1cf4d800] check-in: [7c5649fa13] user: ab branch: trunk, size: 2130717
08:15
{3017} new TSQLRestBackgroundTimer class to create as many background thread per TSQLRest instance as needed file: [d4f5a0b61f] check-in: [a97d59e85a] user: ab branch: trunk, size: 2130573
2016-09-27
13:21
{3012} fixed issue in TObjectListPropertyHashed which impacted e.g. T*ObjArray support - thanks oz for the feedback, and detailed report! file: [3f1182bdf2] check-in: [1423af75e9] user: ab branch: trunk, size: 2130473
07:58
{3011} enhanced LogView tool "Stats" window content file: [c83a5b106b] check-in: [dae9cad1a7] user: ab branch: trunk, size: 2131829
2016-09-26
15:37
{3010} fixed buffer overflow read introduced by [31c0f0b0845fcf] file: [043eb38407] check-in: [7a388f71be] user: ab branch: trunk, size: 2131831
15:08
{3009} fixed records with custom JSON serialization (e.g. TGUID) for SOA calls file: [b3664c55df] check-in: [31c0f0b084] user: ab branch: trunk, size: 2131734
12:51
{3008} fixed Delphi 2005 compilation file: [5ce9911cac] check-in: [e678d24315] user: ab branch: trunk, size: 2131474
2016-09-25
18:22
{3006} updated the documentation about reasons why we implemented SynEcc from scratch file: [9d77a58ce8] check-in: [b8db8dc55a] user: ab branch: trunk, size: 2131506
2016-09-24
14:11
{2999} optimization of TDocVariantData.GetValueIndex method and other internal TDocVariantData checks file: [41d5dfd82e] check-in: [d899dd4366] user: ab branch: trunk, size: 2130546
14:09
{2998} added optional FileDate parameter to FileFromString() function file: [a40e3556f6] check-in: [f338dc9fe6] user: ab branch: trunk, size: 2130694
14:07
{2997} small code refactoring - no functional change file: [85027c74b3] check-in: [c751033f3c] user: ab branch: trunk, size: 2130471
2016-09-22
19:38
{2990} enhanced TCommandLine and other minor improvements file: [e806696a93] check-in: [bf30b0199d] user: ab branch: trunk, size: 2130552
14:30
{2985} TCommandLine will no support process without any console interaction - to be used e.g. with a GUI or from regression unit tests file: [df0cfed8e3] check-in: [851a0d794b] user: ab branch: trunk, size: 2127894
14:28
{2984} enhanced IsContentCompressed() function to recognize more patterns file: [03f71f4c8b] check-in: [531863e10a] user: ab branch: trunk, size: 2123536
2016-09-21
11:23
{2983} source reformat of all x86/x64 asm code file: [cb6ffe7fdc] check-in: [17f792791a] user: ab branch: trunk, size: 2122727
07:58
{2982} try to avoid memory allocation in IntegerDynArrayToCSV/Int64DynArrayToCSV file: [75390ab6f4] check-in: [03c04d265e] user: ab branch: trunk, size: 2105601
07:56
{2981} avoid overflow in YearToPChar() file: [9e302ed17c] check-in: [55376f1af5] user: ab branch: trunk, size: 2105565
06:51
{2976} fixed Delphi 2007 compatibility file: [d5807c1e71] check-in: [870bb55ee4] user: ab branch: trunk, size: 2105394
2016-09-19
18:48
{2967} small optimization of Int64ToUTF8() function file: [47813f8a33] check-in: [0f91f39416] user: ab branch: trunk, size: 2105392
2016-09-18
17:23
{2965} new TSynNameValue.InitFromNamesValues method file: [8167ca0f4d] check-in: [43f7a9bcf8] user: ab branch: trunk, size: 2104778
17:22
{2964} new TDynArray.ClearSafe method file: [2b2388b333] check-in: [baf791095b] user: ab branch: trunk, size: 2104292
2016-09-17
14:40
{2962} reduce lock contention in TSynBackgroundTimer file: [698d5af2eb] check-in: [ca6ed3748b] user: ab branch: trunk, size: 2103685
2016-09-16
19:49
{2958} refactored TSynBackgroundTimer to work also as a queue for background process of UTF-8 messages as a FIFO using Enqueue() and ExecuteNow() new methods file: [25b7e90f39] check-in: [733114696e] user: ab branch: trunk, size: 2103360
19:46
{2957} new TRawUTF8ListLocked.SafePush/SafePop methods file: [ed78c012aa] check-in: [053c95c438] user: ab branch: trunk, size: 2099662
19:45
{2956} new GetJpegSize() overloaded functions file: [5fb05226d3] check-in: [1a01300c6f] user: ab branch: trunk, size: 2098636
2016-09-15
12:50
{2954} new optional aContinueOnException parameter to ObjArrayClear and ObjArrayDelete functions file: [8a4a1a8770] check-in: [be00d49dc5] user: ab branch: trunk, size: 2096379
2016-09-13
19:47
{2953} added Options: TTextWriterWriteObjectOptions optional parameter to ObjectToJSONDebug() file: [45234262bd] check-in: [08038b6f05] user: ab branch: trunk, size: 2096002
11:46
{2951} fif prev. commit (lost a changes from [e5d8b046bd]) file: [7ee19e9513] check-in: [81ebdcdf6d] user: pavel.mash branch: trunk, size: 2096046
11:39
{2950} add optional Flags to RawUnicodeToUtf8 for optional Unmatched Surrogate Replacement file: [47e04ecfa6] check-in: [7043499123] user: pavel.mash branch: trunk, size: 2096052
10:09
{2948} small refactoring with no functional change file: [007cd63e5c] check-in: [e5d8b046bd] user: ab branch: trunk, size: 2095843
08:47
{2946} fixed [33568686fd] - certainly due to a cafeine low level file: [d140f397f6] check-in: [60826e6664] user: ab branch: trunk, size: 2095849
07:38
{2944} added Flags parameter to RawUnicodeToUtf8 with ccfReplacementCharacterForUnmatchedSurrogate new option file: [729104a632] check-in: [33568686fd] user: ab branch: trunk, size: 2095764
2016-09-12
15:16
{2943} - use a REPLACEMENT CHARACTER (0xEF 0xBF 0xBD for UFT8) for unmathced surrogate pairs during RawUnicodeToUtf8 convertation (REQUIRED REVIEW) file: [48dcf3f54f] check-in: [86ecc83b65] user: pavel.mash branch: trunk, size: 2095331
14:21
{2942} fixed compilation issue with Delphi 2009+ file: [64871a05f6] check-in: [a757670784] user: ab branch: trunk, size: 2094514
12:23
{2940} introducing new NoTrailingZero parameter to TSynAnsiConvert AnsiBufferToUnicode and AnsiBufferToUTF8 methods and UTF8ToWideChar/RawUnicodeToUtf8 unctions file: [4821f5a07d] check-in: [e7239c9081] user: ab branch: trunk, size: 2094496
2016-09-11
16:50
{2939} added crc16() function, implementing CRC16-CCITT checkum file: [721d5ccd60] check-in: [df79a92b19] user: ab branch: trunk, size: 2092521
13:38
{2938} optimization of small integer numbers writing in VarRecToTempUTF8() as used e.g. by FormatUTF8() file: [495dfda1af] check-in: [56c8e6fcae] user: ab branch: trunk, size: 2091861
2016-09-10
15:48
{2936} new TSynUniqueIdentifierGenerator.CryptoCRC public property file: [adf1e4175d] check-in: [a66b307f9a] user: ab branch: trunk, size: 2091276
15:48
{2935} some refactoring of hashes combination file: [106bee7110] check-in: [681783fd33] user: ab branch: trunk, size: 2091062
2016-09-09
12:19
{2934} new IntegerDynArrayToCSV() and Int64DynArrayToCSV() overloaded functions file: [875dae603f] check-in: [ade36f7964] user: ab branch: trunk, size: 2090822
12:18
{2933} fixed TSynAnsiUTF8.UTF8BufferToAnsi returned code page file: [761b6a9596] check-in: [5dd6d151cb] user: ab branch: trunk, size: 2089765
2016-09-06
14:17
{2928} new TSynTempBuffer.Done() overloaded method to directly return a RawUTF8 string from the temporary buffer characters file: [367ca8c628] check-in: [02fc8cfb02] user: ab branch: trunk, size: 2089691
2016-09-05
10:03
{2925} optimization of YearToPChar() x86 asm version - replace a division by a faster multiplication with the power of two reciprocal file: [66edd7f5d8] check-in: [5d805fb493] user: ab branch: trunk, size: 2089333
2016-09-02
12:06
{2919} introducing TSynBackgroundTimer class file: [792b3aa5d4] check-in: [e401ca343c] user: ab branch: trunk, size: 2088738
2016-09-01
16:26
{2915} fixed TDynArrayHashed.ReHash unexpected GPF - thanks mingda for the feedback! file: [bb2e15c889] check-in: [ddc1dc391a] user: ab branch: trunk, size: 2084178
08:27
{2913} fixed Delphi 2007+ compilation file: [a8ee46927c] check-in: [13b5c41064] user: ab branch: trunk, size: 2084120
08:19
{2912} new TSQLTable.SearchFieldIdemPChar method and enhanced TSQLTable.SearchFieldEquals implementation file: [78d5ab8de5] check-in: [0288f810ec] user: ab branch: trunk, size: 2083874
2016-08-31
12:08
{2908} fixed buffer overflow issue in TSynMonitorUsage file: [bdbee57bc8] check-in: [ef4a70c832] user: ab branch: trunk, size: 2083872
09:58
{2907} multi-thread speed enhacement for Int32ToUTF8/UInt32ToUTF8 small numbers - by avoiding RawUTF8 string memory allocation for most used 0..999 numbers file: [318c2899b3] check-in: [9aaf621e00] user: ab branch: trunk, size: 2083872
2016-08-30
10:52
{2904} new AddToCSV() function file: [28396709b2] check-in: [13ededb84c] user: ab branch: trunk, size: 2083127
09:01
{2901} speed optimization of TSynFPUException.ForLibraryCode/ForDelphiCode methods file: [d132b90326] check-in: [931a34be3d] user: ab branch: trunk, size: 2082827
2016-08-29
08:21
{2896} ensure TSynFPUException is defined for all Intel CPUs file: [0cd0b13d74] check-in: [0d5232bf9c] user: ab branch: trunk, size: 2082809
2016-08-19
12:53
{2886} introducing TSynCache.AddOrUpdate method file: [e1649a64b0] check-in: [782994ba37] user: ab branch: trunk, size: 2082815
2016-08-18
16:42
{2882} renamed TECCCertificateValidity as TECCValidity and updated the documentation file: [8c93e403cf] check-in: [ccc89c3891] user: ab branch: trunk, size: 2081606
10:31
{2876} ensure TDocVariantData.GetValueIndex will check its VType - will enhance all related methods, e.g. U[] I[] B[] file: [19e456654c] check-in: [b4fca244d9] user: ab branch: trunk, size: 2081493
2016-08-17
19:03
{2875} new TDocVariantData.GetValueEnumerate method file: [139358a26f] check-in: [8864e6c892] user: ab branch: trunk, size: 2081380
12:36
{2871} introducing ICommandLine/TCommandLine console application command line wrapper file: [992d43ba07] check-in: [8ece45357b] user: ab branch: trunk, size: 2080368
12:27
{2869} ensure TSynCache.Count is thread-safe also fixed unexpected package compilation issue with Delphi XE2 file: [146e0b0c53] check-in: [c3412aca34] user: ab branch: trunk, size: 2075158
11:05
{2867} enhanced TSynCache class to be thread-safe if needed, and with a new TimeOutSeconds feature file: [ca099e9e2e] check-in: [b95262e661] user: ab branch: trunk, size: 2075108
2016-08-16
12:08
{2863} introducing TECCCertificateSecret.SignFile method file: [206d0e31a3] check-in: [5589293aa3] user: ab branch: trunk, size: 2072819
2016-08-15
22:05
{2858} new FindFilesDynArrayToFileNames() function file: [666f1d3c0e] check-in: [d487361984] user: ab branch: trunk, size: 2072691
17:55
{2854} new function GetInt64Def file: [4a3bf2da5c] check-in: [5c45db4eb3] user: ab branch: trunk, size: 2072169
2016-08-12
16:13
{2845} renamed previously introduced Equals() overloaded functions as IsEqual() to avoid a name colision with TObject.Equals method - also introducing FillZero() overloaded functions for THash128 and THash256 file: [41594400f1] check-in: [f0e2cf992e] user: ab branch: trunk, size: 2071717
16:10
{2844} new BinToSource() overloaded functions - to generate some pascal source code holding some data binary as constant file: [4d02fbd177] check-in: [c73e3bdbe3] user: ab branch: trunk, size: 2070926
2016-08-11
10:42
{2842} new overloaded Base64ToBin() function file: [f51315bfd0] check-in: [04030242bc] user: ab branch: trunk, size: 2068626
10:40
{2841} new crc64c/crc63c/crc128c/crc256c functions and associated THash128/THash256 types with their Equals/IsZero functions file: [4f25e3ca51] check-in: [e71ed2df0f] user: ab branch: trunk, size: 2067783
10:39
{2840} redefined WriteStringToStream() as a function returning a boolen file: [e71cb0b946] check-in: [63de698df6] user: ab branch: trunk, size: 2061957
10:38
{2839} fixed long-standing issue in Int64Scan() and Int64ScanExists() file: [5547b64f28] check-in: [d628546b9b] user: ab branch: trunk, size: 2061915
10:35
{2837} new AsciiToBaudot/BaudotToAscii functions convert some ASCII-7 text to/from binary, using 5-bit Emile Baudot code as used in telegraphs, covering a-z 0-9 - ' , ! : ( + ) $ ? @ . / ; charset file: [c1b4876dae] check-in: [8a6eee5e38] user: ab branch: trunk, size: 2061852
2016-08-08
11:37
{2835} introducing TRawUTF8ListLocked class file: [b29d317efb] check-in: [376d4990b3] user: ab branch: trunk, size: 2057151
2016-08-02
07:13
{2820} SynCommons.FillRandom() will use hardware RDRAND Intel x86/x64 opcode if available - of course, cryptographic secure TAESPRNG.Main.FillRandom() from the SynCrypto unit is to be preferred file: [079008f2de] check-in: [2875be6bec] user: ab branch: trunk, size: 2055218
2016-08-01
13:42
{2818} SynPdf bitmaps would use crc32c hashing with several seeds, instead of several weaker and slower algorithms file: [cac4e121dd] check-in: [61c1e3d7fb] user: ab branch: trunk, size: 2054640
11:28
{2817} fixed long-standing issue in TFileBufferWriter.Write(variant) file: [57b9438851] check-in: [24072ec60f] user: ab branch: trunk, size: 2054625
07:19