Here are the modifications, per each unit:


- fixed issue "JSON floats decimal separator depends on language settings"
- new UTF8ToWideChar() overloaded function, with MaxDestChars parameter
- new FillIncreasing() procedure
- now handle our 32/64-bit variable-length integer encoding, via new FromVarUInt32/64 and ToVarUInt32/64 functions
- new TFileBufferReader and TFileBufferWriter objects, implementing very fast read/write access to huge files, with new 32/64-bit variable-length integer encoding and optimized storage of IDs or Offsets (used in TSynBigTable)
- new function UnQuoteSQLString()
- another review of Pos() calls in the code (now use our fast PosEx)
- TSynMemoryStream now replaces TRawUTF8Stream class, with constructors using either an AnsiString, either a memory buffer
- new TSynTable, TSynTableFieldProperties and TSynTableStatement classes to handle a generic database table storing field values using our SBF compact binary format (more compact than BSON, similar to Protocol Buffers)
- new WinAnsiToUnicodeString and Ansi7ToString functions
- new TTextWriter.AddBinToHex method
- new CompareOperator() functions and associated TCompareOperator type
- new IntToThousandString() function (used for TSynTests e.g.)
- new CreateInternalWindow() for creating a GDI message handler in any object


- now handle automatically prepared SQL statements: the parameters must be surrounded with :(...): in order to use an internal pool of prepared TSQLRequest statements; example of possible inlined values are :(1234): :(12.34): :(12E-34): :("text"): or :('text'): (with double quoting inside the text, just like any SQL statement)
- with Delphi 2009/2010/XE, you can define any string parameter in your TSQLRecord definition (will be handle as sftUTF8Text field)
- with Delphi 2009/2010/XE, WriteObject, ReadObject and CopyObject functions now handle string (UnicodeString) properties, as TINIWriter.WriteObject method does also: UTF-8 encoding is used at the storage level
- new function SQLParamContent() to retrieve :(...): param content and type
- another review of Pos() calls in the code (now use our fast PosEx)
- some functions or type/const definitions moved to SynCommons in order to introduce new TSynTable class (TJSONWriter, IsRowID, GotoNextJSONField, TSynTableStatement...)
- new TSQLRestServer.CreateSQLMultiIndex method
- new TSQLTable.GetString and TSQLTable.GetVariant methods
- new TPropInfo.SetVariant/GetVariant/CopyValue methods
- new GetFieldValue/SetFieldValue and GetFieldVariant/SetFieldVariant methods for TSQLRecord
- fixed issue in TSQLTable.GetWP(), which truncated data in Grid display
- fixed issue in TSQLRestServerNamedPipe[Response] multi-thread architecture: FastMM in full debug mode detected that a block has been modified after being freed - now TSQLRestServerNamedPipeResponse is fully stand-alone


- update SQLite3 engine to version 3.7.5
- fixed sqlite3_result_text() implementation
- added sqlite3_aggregate_context(), sqlite3_value_numeric_type() and sqlite3InternalFree() functions
- new CONCAT() function available in SQL statements to process fast string concatenation
- now handle automaticaly prepared SQL statements: the parameters must be surrounded with :(...): in order to use an internal pool of prepared TSQLRequest; example of possible inlined values are :(1234): :(12.34): :(12E-34): :("text"): or :('text'): (with double quoting inside the text, just like any SQL statement)
- new sqlite3_stmt_readonly function and TSQLRequest.IsReadOnly property


- can now generate PDF/A-1 files if the new PDFA1 property is set to true
- new CreateLink and CreateBookMark methods for TPdfDocument, to easily handle bookmarks and links
- new CreateOutline method for TPdfDocument, for direct outline adding
- new TPdfPage.PageLandscape and TPdfDocument.DefaultPageLandscape properties
- can use EMR_GDICOMMENT to embedd some SynPDF related data (like bookmarks, links, and document outline) in the source TMetaFile - used by TSQLite3Pages
- new TPdfTextString class, used to handle Unicode parameters (e.g. in TPdfInfo, which properties are now handling unicode encoding as expected)
- new CreateOrGetImage method to easily add a bitmap to the page, with internal caching: if the same bitmap content is sent more than once, only one TPDFImage will be used (used for emf enumeration, e.g. SQLite3Pages)
- now handle justified text from metafile (i.e. call to SetTextJustification Windows API will change the PDF word space as expected)
- Uniscribe API now made public (and documented as such), for TRenderPages
- fixed memory leak in TPdfOutlineRoot.Create
- fixed issue in TPdfDocumentGDI.VCLCanvasSize
- fixed issue with fixed-width font unicode characters display
- FontSub.dll library is loaded only once for the whole application


- added connection check and exception handling in THttpServerSocket.GetRequest, which now is a function returning a boolean
- added DOS / TCP SYN Flood detection if THttpServerSocket.GetRequest spent more than 2 seconds to get header from HTTP Client


- TSQLite3HttpServer now handles multiple TSQLRestServer instances per one server (dispatching requests via the Root URI used)
- new AddServer method, to register a TSQLRestServer after launch
- new TSQLRestServer.OnlyJSONRequests property


- added code for error handling, via new TGdipStatus enumeration type
- now GDI+ handles are stored using THandle instead of plain integer type (in order to prepare a 64 bit version of the unit)
- fixed a problem in rendering bitmaps, e.g. as created in SQLite3Pages
- fixed a problem in rendering underlined text (GDI+ DrawDriverString doesn't handle underlined or stroken out fonts as expected)


- fixed one issue (in SynGdiPlus) for displaying bitmaps in anti-aliased mode and displaying underlined or stroken out text
- new ForceInternalAntiAliased method (true by default) using SynGdiPlus instead of GDI+ 1.1 native conversion
- OnStringToUnicodeEvent is now called for all text, whatever the alignment is
- new property BiDiMode, for formatting the text in right to left order
- added new DrawBMP overloaded method to add some bitmap as a (centered) paragraph, with some optional legend - bitmaps are now cached and reused in the exported PDF, if the same one is drawn multiple time in the document
- added new AddBookMark, AddOutline and AddLink methods (working also with the PDF export using SynPdf) :)
- live navigation via links in the preview screen, and via the new 'Bookmarks' popup menu entry
- additional ExportPDF* properties used during PDF export

This version compiles from Delphi 6 up to Delphi XE.

The full source code of the framework is available to download, licensed under a MPL/GPL/LGPL tri-license

Feedback and comments are welcome on our forum!