Hello Tony, Friday, June 23, 2017, 6:56:38 PM, you wrote:
> Can I just ask a simple question, please? > Why have the recent releases been classed as ALPHAs and not BETAs? > Are they expected by RITlabs to be less stable? Thank you for the good question! We are using the following the following designations, from least to most stable: alpha, beta, gamma (didn’t actually use gamma so far). We have made changes that made the program very unstable, and it even didn’t run on some processors. The summary of changes in the alpha series is the following: 1. Updated HTML editor component. For the HTML editor, we are using TRichView from trichivew.com. Previously, we were using TRichView 14.5.2, released on 21 May 2013, and we were introducing our own fixes into it. In the open-source community it would have said “TRichView 14.5.2 fork”. In May 2017 we took TRichView 16.15.1, released on 27 March 2017 and implemented it into The Bat!. To do that, we have analysed the differences that we have included into the “TRichView 14.5.2 fork” between 23 May 2013 and 27 March 2017. In future, we plan to always stay on the latest version of TRichView. We will be always getting latest version of TRichView and include it into The Bat!, when the latest version of TRichView come out. What are the most notable changes of TRichView 16.15.1 since TRichView 14.5.2? Not necessarily yet all the new features of TRichView are implemented in The Bat. Here is the list (taken from the http://www.trichview.com/ ): • text formatting: o the components render bi-directional text and “exotic” scripts reliably, due to use of Uniscribe library; o justify” alignment and custom character spacing now can be applied to bi-directional text; o new paragraph alignment type: “distribute” ; distributed paragraphs are similar to justified paragraphs, but space is added between all characters, not between words; this type of alignment is common for Far East languages http://www.trichview.com/shots/alignment-distribute.png o customized alignment for the last line of justified and distributed paragraphs; o special options for vertical text in table cells (automatic application of vertical fonts and switching column order from right-to-left to left-to-right) http://www.trichview.com/shots/traditional-mongolian.png • visual improvements: o the users can define a customized degree of transparency for backgrounds of paragraphs, tables, table cells, text boxes; o user interface is compatible with high-DPI display modes. 2. Improved memory manager. The source code of it is available at https://github.com/maximmasiutin/FastMM4 This is a fork of the latest version of FastMM4 by Pierre le Riche. What we have added to the fork: • if the CPU supports Enhanced REP MOVSB/STOSB (ERMS), use this feature for faster memory copy or large memory blocks (under 32 bit or 64-bit); • if the CPU supports AVX or AVX2, use the 32-byte (256 bit) YMM registers for faster memory copy; • memory copy is secure - all XMM/YMM registers used to copy memory are cleared by vxorps/vpxor, so the leftovers of the copied memory are not exposed in the XMM/YMM registers; • properly handle AVX-SSE transitions to not incur the transition penalties, only call vzeroupper under AVX1, but not under AVX2 since it slows down subsequent SSE code under Kaby Lake; • 32-bit version checks whether the CPU supports MMX, to run on very old CPUs or in environments where MMX is disabled; in this case FPU is used to copy data. 3. Memory fill base function (FillChar) for 64-bit is improved; used one from Delphi 10.2, bugs fixed, ERMS handing improved, added support for AVX/AVX2. It turned out to be the fastest implementation of memory fill I’ve seen so far. See https://stackoverflow.com/questions/43958955/fillchar-and-stringofchar-under-delphi-10-2-for-win64-release-target/44624111#44624111 and https://stackoverflow.com/questions/43958955/fillchar-and-stringofchar-under-delphi-10-2-for-win64-release-target for more information. Todo: support for AVX-512 in the memory fill. 4. Memory move/copy base function (Move) for 64-bit is written from scratch. Uses EMRS/SSE/AVX/AVX2 – whatever is available. It is many times faster than the standard one that came with Delphi 10.2. Didn’t have other implementations to compare. Todo: support for AVX-512 in the memory copy/move. TODO: various changes to increase stability, fix bugs, improve performance. One area is to utilize multiple cores whenever possible; for example, for data compression, etc. All these changes are major and inherently unstable. That’s why we’ve called that version Alpha. -- Maxim Masiutin Director Ritlabs, SRL ________________________________________________________ Current beta is 7.4.16.22 | 'Using TBBETA' information: http://www.silverstones.com/thebat/TBUDLInfo.html