mORMot2 DailyDaily read of upstream commits

26 commits landed upstream

This edition has not been reviewed yet: the entries below are classified automatically from commit messages and diffs, without an editorial pass. Treat the categories as hints and follow the commit links for the truth.

Build2.4.16579 → 2.4.16604
Commits26
Lines+839 -830
Read1 min

Categories

Fixes7
New features7
Performance2
Compiler & platform1
Under the hood5
Housekeeping4

Fixes

7

core: fixed TRWLightLock.WriteLock - as reported by #557 - this was an awful race condition, which would corrupt the logic and maybe the memory when updating data

crypt: moved RandomIdentifier/RandomUtf8 from mormot.core.text - it is safer to use ThreadRandom e.g. durint the regression tests

soa: fixed awful missing ReadOnlyUnLock call - during TServiceFactoryServer.RetrieveInstance - would appear on FPC Linux but not on FPC Windows because of HASFASTTRYFINALLY

orm: fixed ValueVarToVariant NULL replacement leak

lib: fixed SSPI exception message

core: removed all buggy/misleading/invalid RCU*() functions

New features

7

crypt: Non Cryptographic Random Generators for Testing or IV Filling - via a new ThreadRandom function in mormot.crypt.core - initialized not from XorEntropy() but from stronger Random128/RandomLecuyer

tests: rewritten all TLecuyer usage - use the new RandomThread instances - no need to propagate local transient instances any more

Arnaud Bouchez · 16:39 UTC · +50-45 3f2450f6

crypt: moved RandomByteString() from mormot.core.os to mormot.crypt.core - to use the new ThreadRandom function

core: new RawGlobalTime() OS call with no cache

crypt: new IsIdentifierGuid() function

Performance

2

core: rewritten FromGlobalTime() function - to use the new RawGlobalTime() OS wrapper - less contention using a RW lock - CAS clocktix acquisition to avoid syscalls

net: optimized TWebSocketFrameList.Pop

Compiler & platform

1

core: on Linux, get the env string with the aux vectors - no need to browse the env several times

Under the hood

5

core: moved TSynTestCase.RandomTextParagraph - into mormot.crypt.core unit

Housekeeping

4

lib: enhanced SSPI exception error message content

crypt: allow {{ passwordgenerate }} without length