Instantiations would like to wish everyone a Happy Holiday season.
We wanted to be sure to get this very early preview release out before the new year...so here it is!
Incorporated in this is a set of 90+ enhancements and fixes.
There is a _CHANGELOG.txt that you can always refer to for a list of changes in the downloaded ECAP directory.
However, I usually like to highlight some of the changes here for all to see what we have been doing.
Unicode/CodePages
- New kernel-only dependent EsCodePageUtilities
- Refactored AbtCodePageUtilities to reuse behavior of new EsCodePageUtilities
- Allow Seaside WAFileLibrary to decide when and how to encode (UTF-8 for example) when deploying files
- Fix WAUrl class >> decodePercent: with characters decoding
- Ensure iconv() correct behavior in Unix 64 bits
SSL/Cryptography Enhancements
- LibreSSL Compatible
- Implemented DH/EC/DSA/RSA version-transparent getters and setters (In support of upcoming JSON Web Tokens)
- Implemented Probabilistic Signature Schemes (RSA-PSS)
- Added Server Name Indication (SNI) support
Sst Http Client:
- Support new HTTP methods PUT and DELETE and internal code cleanup and refactor
- Support for absolute and relative redirects (with config options allowRedirects and redirectCount)
- Integrated the new Server Name Indication (SNI) support.
- No longer appends explicit default ports to header host fields (RFC 2616 compliance)
Packaging:
- Reduced the packaging warnings in the base image from hundreds to only a few
- Implemented dynamic adapting packing rule on CorePI that uses static code analysis.
- Made Seaside packaging work out of the box
NeoCSV
- New CSV features and tests! (thanks to Sven Van Caekenberghe for this high-quality project)
CommonFileSystem
- Add #writeStreamDo: , #readStreamDo: and #readRriteStreamDo: family of methods to CfsPath
Portability and new Collection API
- Added ArrayedCollection class>>#new:withAll:
- Added KeyedCollection class >> newFromPairs:
- Added EsString #lines and #linesDo:
- Added protocol #join:, #joinTo: , #split:, #splitOn: etc to Collection classes
- Added Collection >> #contains: and String #capitalized
- Added BlockContextTemplate >> #timeToRun
- Added EsString class methods #cr , #lf and #crlf
Seaside
- Improve error handling (like WAInvalidUrlSyntaxError) in Seaside Sst adaptors
- Add logging ability to Seaside Sst adaptors
- Fix negative ScaledDecimal json serialization
- Remove map "Seaside RSS Examples" from Seaside XD feature
Foreign Function Calls
- Callout to C speedup by multiple factors depending on argument count
- Implemented custom memory pooling for argument/return values
instead of malloc.
Graphics/Imaging Support
- 20x speedup in PNG reading (filterRow and blitting moved to C primitives)
- Implemented PNG Interlaced Frame Handlers
- Expose image and text capabilities to AbtPushButtonView
XD Environements (Cross-platform development)
- Code Assist adapted to XD browsers. Will now use information from nested passive image.
Stack dump files (.sdf)
- Fixed regressions as a result of 64-bit compatibility
- SstDebugger now supports reading .sdf files
MonticelloImporter
- Set prerequisites before attempting to load
Some great new features are on their way and should be available for our next ECAP release
- Full High-DPI support is just about ready
- A brand new IMAP client that implements over 20 RFCs and supports advanced features like SSL/TLS, Compression
IDLE (aka Server Push), SASL-IR, ESEARCH, Sort/Thread, ACL, Enable, Namespaces, Quotas, non-synchronized literals
MOVE, UIDPLUS, and more!
- JSON Web Tokens and full JOSE suite.
- PostgreSQL native low-level driver that exposes the complete capability of PostgreSQL is complete and we are about to adapt it to Abt Database layer (and Glorp)
- Brotli compression streams (useful for web content encodings)
- Additional HTTP Client enhancements with more HTTP Verb support and auto-resolving responses (i.e. brotli content-encoding will use new BrotliReadStream to decode content automatically)
- Git support for VAST via Tonel format interchange. This brings git friendly source code structure to VA Smalltalk. (thanks Mercap for sharing with us a first pass of the tonel writer)