Units
115 units tracked.
mormot.app
mormot.core
mormot.core.base56
- AArch64 receives native big-integer arithmetic for RSA
- Delphi 2010 avoids unsafe inline expansion in core paths
- String-header access is simplified without changing behavior
- Record alignment cleanup briefly leaves mormot.core.base uncompilable
- New ARM assembly selectors also repair the broken core declaration
- Delphi POSIX builds regain the wide multiply helper
mormot.core.base.asmarm5
mormot.core.base.asmx649
- Numeric bounds use direct 53-bit tests
- Numeric parsers move behind selectable Pascal and SSSE3 entry points
- A build switch can force SSSE3 JSON-number parsing
- Short scientific numbers bypass the general SSSE3 reduction path
- Numeric benchmarks cover more token shapes and both parser APIs
- MIN_INT64 with a fractional suffix parses correctly
mormot.core.base.asmx861
mormot.core.buffers2
mormot.core.data1
mormot.core.datetime24
- Unix timestamps gain a fixed-size ISO date-time formatter
- GlobalTime locks are aligned on Delphi AArch64
- AArch64 alignment and Tunnel cleanup receive follow-up fixes
- TSynSystemTime gains a parser for textual TimeSpan values
- Microsoft TimeSpan text can be converted back to ticks
- TimeSpan parsing stops cleanly at common data delimiters
mormot.core.fmt9
- HTML escaping can fill a caller-owned short string
- Shared byte-indexed cardinal table replaces local aliases
- XML Save and Restore preserve whether a DOCTYPE is still legal
- TXmlParser accepts simple DOCTYPE declarations by default
- DOCTYPE scanning is simplified without widening accepted markup
- Absolute XML lookups intentionally move the parser
mormot.core.fpcx64mm15
- Win64 allocator assembly moves stack preservation into FPC-managed locals
- The remaining Win64 allocator calls stop preserving registers with push and pop
- core: new FPCMM_MEDIUMTOLARGE conditional
- core: add opt-in full small-block sharding
- core: read Win64 thread ID directly from the TEB
- core: #563 code cleanup
mormot.core.interfaces5
- SOA methods can return JSON without binary magic prefixes
- Delphi Android ARMv7 gains working interface calls and packed JSON
- Delphi Android and iOS gain static AArch64 interface stubs
- AArch64 follow-up only adjusts style and inlining
- FPC POSIX interface calls return Currency from the correct register
mormot.core.json8
- JSON magic removal is rewritten as a faster copy-on-write scan
- JSON BLOB magic prefixes can now be stripped from serialized text
- JSON tests and HTTP line parsing receive a non-functional cleanup
- A JSON length guard is rewritten without changing its result
- JSON escaping stops reading past the supplied buffer
- Delphi Android ARMv7 gains working interface calls and packed JSON
mormot.core.log57
- Record alignment cleanup briefly leaves mormot.core.base uncompilable
- Test failures gain an exception-aware reporting helper
- Exception logs tolerate an unknown instruction address
- Delphi exception interception is guarded by actual RTL availability
- mTLS test workers catch and classify network exceptions reliably
- Logging serialization and SChannel acceptance compile after the new flags
mormot.core.mustache1
mormot.core.mvc3
mormot.core.os76
- Environment variables preserve empty values and restore absence
- Unknown command-line arguments name the correct token
- Delphi 2010 avoids unsafe inline expansion in core paths
- POSIX RunRedirect returns as soon as the child closes its pipe
- WinHTTP enables TLS 1.3 on supported Windows releases
- Record alignment cleanup briefly leaves mormot.core.base uncompilable
mormot.core.os.delphi2
mormot.core.os.posix22
- Environment variables preserve empty values and restore absence
- POSIX RunRedirect returns as soon as the child closes its pipe
- System-information caching stops sharing the global OS lock
- Delphi Darwin links Mach process APIs from clib
- AppendSysInfo reuses one-second binary and text snapshots
- BSD, FPC and Android compile paths converge after the platform merge
mormot.core.os.security13
- Low-level HTTP.sys helpers change their output contracts
- Shared byte-indexed cardinal table replaces local aliases
- A Windows wrapper decodes PEM and Base64 certificate text
- Windows certificate stores expose CNG-backed identities
- RSA envelope header has one shared definition
- Certificate record layouts are corrected after the Crypt32 expansion
mormot.core.os.windows8
- Environment variables preserve empty values and restore absence
- KEEP_STACKFRAMES preserves project stack-frame settings for diagnostics
- FPC Windows exceptions retain the RTL-captured call stack
- AppendSysInfo reuses one-second binary and text snapshots
- Wine receives an explicit weak-http.sys capability flag
- Startup nonces stop recursively entering the main Random128 generator
mormot.core.perf1
mormot.core.rtti1
mormot.core.search3
mormot.core.test8
- Test cases gain shared task submission and completion helpers
- Shared test tasks receive a default timeout and platform-adjusted worker count
- Queue concurrency tests scale to the worker count available on PRISM
- Test failures gain an exception-aware reporting helper
- Regression tests report unexpected exceptions with structured details
- TSynTests serializes multi-threaded console updates
mormot.core.text47
- Spaced __Secure- cookies are parsed under their logical name
- ARM Double formatting reads the correct normalization word
- Record alignment cleanup briefly leaves mormot.core.base uncompilable
- DoubleToAscii uses native wide multiplication on ARM
- X.509 lookup accepts human-formatted thumbprints
- FormatAdder no longer writes through an empty formatter state
mormot.core.threads33
- Timer shutdown waits the requested number of seconds
- Background timers mark work active before updating counters
- Thread-pool wake-up race could strand queued work
- Thread-pool completion counters no longer race dispatch or waiter wake-up
- Exact-size pipe reads now return EOF instead of waiting again
- Thread-task pools can dispatch TNotifyEvent callbacks directly
mormot.core.unicode10
- Shared byte-indexed cardinal table replaces local aliases
- UniqueRawUtf8ZeroToTilde now returns bounded sanitized text
- Control characters can be replaced in place
- UTF-8 buffers gain a direct control-character check
- Mapped-text and log readers use one cached line pointer per operation
- TCachedValues lookup now uses the comparator that sorted the cache
mormot.core.variants23
- Delphi Android ARMv7 gains working interface calls and packed JSON
- DispInvoke understands Delphi AArch64 varargs
- AArch64 follow-up only adjusts style and inlining
- The duplicate cpuSSSE3 feature flag is removed
- SSSE3 becomes the default JSON-number parser on eligible x86-64 targets
- Numeric bounds use direct 53-bit tests
mormot.crypt
mormot.crypt.core29
- AES-GCM validates streaming order and preserves pending state
- AES-GCM reset clears leftover partial-block length
- AVX AES-GCM accepts partial and truncated chunks
- Cryptographic core code is reorganized without behavior changes
- TTunnelLocal frames gain authenticated encryption and directional keys
- AES-GCM gains a public 96-bit nonce increment helper
mormot.crypt.core.asmx644
mormot.crypt.core.asmx864
mormot.crypt.ecc6
- ECC loaders reject malformed and wrong-kind keys
- ARM atomic wrappers centralize the memory-barrier repair
- Internal atomic increments use one pointer-based helper
- Certificate-chain validation avoids deadlock but becomes caller-serialized
- Binary certificate export now excludes concurrent writers
- core: new Random128(var Value: RawByteString) overload
mormot.crypt.ecc256r16
- Delphi 7 and 2007 keep a compatible P-256 reduction fallback
- Delphi POSIX builds regain the wide multiply helper
- Intel P-256 prime reduction moves into architecture assembly
- AArch64 gains a dedicated P-256 prime reduction routine
- P-256 scalar reduction switches to Barrett arithmetic
- P-256 modular inversion performs fewer wide comparisons
mormot.crypt.openssl2
mormot.crypt.other1
mormot.crypt.pkcs1115
- PKCS#11 locking moves from the low-level engine to the catalog
- Unsupported certificate factories return nil instead of dereferencing it
- PKCS#11 shutdown waits for background discovery
- PKCS#11 import returns the stored certificate and rolls back failures
- PKCS#11 RSA-PSS signing supplies the required parameters
- PKCS#11 public keys are rebuilt from algorithm-specific attributes
mormot.crypt.rsa23
- RSA primality tests switch from L'Ecuyer state to a NIST DRBG
- RSA serialization and signature checks now enforce canonical widths
- Miller-Rabin witnesses now follow FIPS 186-5 sampling
- RSA prime rounds and PKCS padding checks are corrected
- AArch64 receives native big-integer arithmetic for RSA
- Barrett reduction computes only the low limbs it needs
mormot.crypt.secure14
- ECC loaders reject malformed and wrong-kind keys
- Environment variables preserve empty values and restore absence
- Binary-cookie destruction releases managed context state
- REST connection-definition parsing can no longer loop forever
- Unsupported certificate factories return nil instead of dereferencing it
- Ed25519 PKCS#8 private keys follow RFC 8410 nesting
mormot.crypt.win16
- The Lazarus aggregate package now includes Windows cryptography
- Unsupported certificate factories return nil instead of dereferencing it
- Transient CNG certificates no longer dereference a missing owner
- PKCS#11 signing sends data during the size query and always closes
- GenerateFromCsr delegates to the created certificate instead of recursing
- Windows CryptoAPI AES classes move into a dedicated unit
mormot.db
mormot.db.core1
mormot.db.nosql.bson1
mormot.db.proxy4
mormot.db.raw.odbc1
mormot.db.raw.oracle1
mormot.db.raw.sqlite34
mormot.db.sql6
- Thread-safe SQL pools destroy every allocated connection
- PostgreSQL array batches stop emitting invalid literals or losing final quotes
- SQL parameter logs keep placeholders after reaching their size limit
- Final concurrency cleanup prevents an older cache result from winning
- Connection-pool expiry scans are elected once per interval
- Database and REST class registries use pointer arrays
mormot.db.sql.odbc2
mormot.defines
mormot.defines17
- AArch64 receives native big-integer arithmetic for RSA
- Delphi Intel builds use assembly cryptographic paths again
- Delphi 2010 avoids unsafe inline expansion in core paths
- New ARM assembly selectors also repair the broken core declaration
- HTTP servers expose one virtual idle-maintenance hook
- ARMv7 atomics gain barrier-correct native implementations
mormot.lib
mormot.lib.gssapi6
- POSIX keytab handling becomes locked, UTF-8 aware and result-bearing
- Keytab registration retries after a per-thread GSSAPI failure
- Direct keytab HTTP authentication method is removed
- One Kerberos HTTP helper now serves Windows and POSIX
- Cross-platform Negotiate parsing is extracted from the HTTP server
- Kerberos keytab refresh is serialized without holding the lock during reload
mormot.lib.openssl1152
- SChannel continues the handshake on TLS 1.3 key updates
- The OpenSSL wrapper exposes TLS 1.3 key updates
- Classic HTTP servers preserve full TLS client-auth policy per connection
- OpenSSL servers now invoke the final peer-validation callback
- TLS callback and Windows decoding helpers are consolidated
- OpenSSL C long declarations use platform-sized Pascal types
mormot.lib.openssl11.full2
mormot.lib.pkcs1110
- PKCS#11 locking moves from the low-level engine to the catalog
- PKCS#11 RSA-PSS signing supplies the required parameters
- PKCS#11 object enumeration always finalizes its search
- PKCS#11 unload finalizes only initialized libraries
- PKCS#11 signing sends data during the size query and always closes
- PKCS#11 GetObject returns the single matching record
mormot.lib.quickjs2
mormot.lib.sspi32
- Direct keytab HTTP authentication method is removed
- One Kerberos HTTP helper now serves Windows and POSIX
- Cross-platform Negotiate parsing is extracted from the HTTP server
- SChannel reports missing client credentials and trust failures clearly
- SChannel declarations expose Windows certificate-chain engines
- TLS callback and Windows decoding helpers are consolidated
mormot.lib.static2
mormot.lib.winhttp12
- WinHTTP enables TLS 1.3 on supported Windows releases
- Per-request WebSocket state replaces a shared last connection
- Low-level HTTP.sys helpers change their output contracts
- websocket.dll completion is treated as a void operation
- HTTP.sys entity-body receive now matches the Windows API contract
- WinHTTP proxy discovery applies the system bypass list
mormot.misc
mormot.net
mormot.net.acme3
mormot.net.async54
- HTTP servers expose one virtual idle-maintenance hook
- ARM atomic wrappers centralize the memory-barrier repair
- Async networking receives a non-functional cleanup
- Async connection destruction makes unfinished writes explicitly abortive
- Redirects and 100-Continue now clear or wait for the right body
- OPTIONS may carry content while only HEAD suppresses a response body
mormot.net.client57
- WinHTTP enforces redirect counts and blocks HTTPS downgrades
- libcurl follows no more redirects than RedirectMax allows
- WinHTTP enables TLS 1.3 on supported Windows releases
- WinHTTP redirect setup is tidied and a merged regression test is removed
- libcurl now exposes only the final response headers
- Windows request headers keep valid Unicode storage and clean names
mormot.net.dhcp9
- Moved static reservations reject the client’s stale requested address
- Malformed DHCP address options no longer masquerade as IPv4 values
- DHCP requests selecting another server are ignored
- DHCP scope updates no longer dereference reallocated storage
- Internal names and declarations are cleaned without behavior changes
- DHCP scopes now send their configured domain name
mormot.net.dns16
- DNS replies must now match the resolver, port and original question
- DNS decompression rejects cyclic pointer chains and oversized names
- EDNS fallback and record positioning are corrected
- DNS record parsing starts from the question returned by the server
- DnsQuery enables 1232-byte EDNS and fixes the default DNS port
- Resolver entries may carry their own port
mormot.net.http15
- Delphi 2010 avoids unsafe inline expansion in core paths
- HTTP.sys request processing becomes a per-request object
- Malformed compressed HTTP content no longer escapes as an exception
- System error text can be assigned directly into RawUtf8
- JSON tests and HTTP line parsing receive a non-functional cleanup
- The ambiguous bodyless-method helper is deprecated
mormot.net.ldap11
- LDAP URI parsing distinguishes defaults from custom ports
- LDAP keeps the parsed explicit port through connection setup
- String-header access is simplified without changing behavior
- Windows basic Kerberos authentication uses the full server context
- LDAP and WebSocket comments are clarified without runtime changes
- Aborted LDAP searches release pending range state before returning
mormot.net.relay2
mormot.net.rtsphttp2
mormot.net.server50
- HTTP.sys response failures and WebSocket teardown become observable and bounded
- HTTP.sys WebSocket sends fail closed and action queues keep draining
- HTTP.sys servers regain periodic logging, telemetry and OnIdle
- HTTP.sys WebSocket closure and ping bookkeeping share one path
- WebSocket buffers and action queues survive callback failures
- HTTP servers expose one virtual idle-maintenance hook
mormot.net.sock76
- GetProxyForUri now requires a parsed TUri
- Redirects now reconnect when their effective proxy route changes
- Reconnects retain their socket layer and redirects reject non-HTTP schemes
- Malformed URI authorities are rejected and proxy ports compare consistently
- Proxy reuse now accounts for credentials and exposes WebSocket errors
- Socket proxy discovery now honors NO_PROXY on Windows and POSIX
mormot.net.sock.posix18
- POSIX poll retries now honor real timeouts and transient errors
- POSIX receive waits recognize invalid descriptors and retry early wake-ups
- Peer-cache tests wait until their HTTP listener is bound
- BSD, FPC and Android compile paths converge after the platform merge
- UNIX socket addresses use the native FreeBSD size
- POSIX host records match the native C field type
mormot.net.sock.windows50
- WinHTTP enables TLS 1.3 on supported Windows releases
- SChannel continues the handshake on TLS 1.3 key updates
- SChannel socket closure is reported without shutdown exceptions
- A graceful SChannel send-side close now returns nrClosed
- SChannel mTLS gains Windows 7 compatibility and stricter chain checks
- Final SChannel fixes avoid type conflicts and blocking chain retrieval
mormot.net.tftp.client2
mormot.net.tftp.server2
mormot.net.tunnel46
- AES-GCM validates streaming order and preserves pending state
- TTunnelLocal frames gain authenticated encryption and directional keys
- Tunnel authentication failures erase plaintext and handshake secrets
- Tunnel metadata is size-checked before parsing and then erased
- Tunnel handshake metadata cannot underflow its frame pointer
- Tunnel tests report connection state and expose flag text
mormot.net.ws.async5
- WebSocket broadcasts use safe snapshots for both timeout modes
- WebSocket broadcast sends leave the connection read lock before writing
- Async HTTP initialization publishes state before execution
- WebSocket heartbeat timing moves to HeartbeatDelay
- Zero-delay WebSocket frames now wake the async server immediately
mormot.net.ws.client7
- Legacy WebSocket factories now preserve the requested derived client class
- Proxy reuse now accounts for credentials and exposes WebSocket errors
- WebSocket clients gain URI- and option-aware connection factories
- WebSocket setup moves to the shared socket initialization hook
- WebSocket callback waits track the effective receive timeout
- WebSocket clients and local tunnels publish shutdown state safely
mormot.net.ws.core7
- WebSocket frame logging no longer resets remote-log state unnecessarily
- A nil WebSocket settings pointer no longer disables encryption
- Startup nonces stop recursively entering the main Random128 generator
- WebSocket subprotocol matching splits recognition from instance setup
- net: new NetRandom32 function - lighter than plain shared Random32 on thread contention (non blocking sequence) - used e.g. for DHCP XID or WebSockets masking
- net: optimized TWebSocketFrameList.Pop
mormot.net.ws.server1
mormot.orm
mormot.orm.base7
- X.509 lookup accepts human-formatted thumbprints
- BSD tunnel threads now initialize their OS lock
- TOSLightLock uses WaitOnAddress on Windows 8+
- Updated TOSLightLock usage comments
- TOrmTable variant getters shed a redundant clear at the call site
- ORM temp variants switch to TSynVarData and standard VarClear
mormot.orm.core1
mormot.orm.rest2
mormot.orm.server2
mormot.orm.sql3
mormot.orm.sqlite31
mormot.rest
mormot.rest.client3
mormot.rest.core5
mormot.rest.http.client8
- REST socket clients now retain explicitly configured proxy settings
- REST connection-definition parsing can no longer loop forever
- REST HTTP clients adopt the consolidated timeout record
- REST HTTP clients store proxy data only in extended options
- REST socket clients apply phase timeouts consistently
- REST clients install timeout policy before connecting
mormot.rest.http.server5
mormot.rest.server8
- REST SSPI authentication can select a POSIX keytab
- Signed URI sessions survive tick rollover correctly
- REST session expiry no longer loses timeout precision
- REST and ORM thread hooks now require TThreadAbstract
- Final concurrency cleanup prevents an older cache result from winning
- Concurrent REST requests no longer trigger OnIdle together
mormot.script
mormot.soa
mormot.soa.client2
mormot.soa.core1
mormot.soa.server4
- SOA methods can return JSON without binary magic prefixes
- Delphi exception interception is guarded by actual RTL availability
- Lock cleanup keeps runtime behavior unchanged
- soa: fixed awful missing ReadOnlyUnLock call - during TServiceFactoryServer.RetrieveInstance - would appear on FPC Linux but not on FPC Windows because of HASFASTTRYFINALLY
mormot.tools
mormot.tools.logview5
mormot.tools.logview.remote1
mormot.ui
mormot.ui.controls1
mormot2
recommended-patterns documentation
recommended-patterns example
recommended-patterns example1
test.core
test.core.base6
- Method tests now cover the concrete predicates used by HTTP code
- Queue regression coverage moves into the thread test unit
- AVX-512 detection now verifies OS-managed ZMM state
- Windows CNG status codes receive readable error names
- Number benchmark detects generator overruns before copying
- The cache repair receives direct add, lookup and reset coverage
test.core.crypt2
test.core.data7
- JSON tests and HTTP line parsing receive a non-functional cleanup
- JSON magic removal gains copy-on-write and malformed-input coverage
- The wrong-password 7-Zip test no longer emits an expected exception
- Shared byte-indexed cardinal table replaces local aliases
- In-memory ZIP readers can extract a final data-descriptor entry
- Queue regression coverage moves into the thread test unit
test.net
test.net.proto29
- Malformed URI authorities are rejected and proxy ports compare consistently
- Proxy reuse now accounts for credentials and exposes WebSocket errors
- NO_PROXY domain and IP matching becomes a reusable public helper
- Tunnel tests report connection state and expose flag text
- URI scheme names and default ports become public constants
- Async WebSocket broadcast tests synchronize with the completed upgrade