Releases: aslze/asl
1.11.13
ASL version 1.11.13
Some small fixes and changes.
- Fixed
StreamBuffer,SHA1and other stuff on Big Endian machines (e.g. PowerPC). Endianness autodetected. - Fixed possible use after free in
SocketServerand derived classes. - Fixed memory issues with shared arrays and atomic count in old compilers
- Fixed
Matrix3multiplication for projective transforms and addedoperator-(Matrix3) LocalSocketon recent Windows 10+ can now be used without explicit optionHttpServerwhen serving files will only setContent-Typefrom file extension if it is not explicitly set.- Added
File::CREATEtoFileopen mode for exclusive mode (has to be used together withFile::WRITE)
TextFile file("data.txt", File::WRITE | File::CREATE); // Fail if the file already exists
More deprecated functions: list here. Most will be removed in next releases.
Attached Debugger visualizer file for Visual Studio (copy "asl.natvis" to <user>\Documents\Visual Studio <version>\Visualizers)
1.11.12
ASL version 1.11.12
Some small fixes.
- Fixed
SerialPortoccasional hangs in .read() on Windows - Fixed
Datewriting and parsing dates with milliseconds - Fixed compilation on systems having an
isnumber()macro (e.g. BSD) - Fixed some Testing macros not working without using namespace asl
- Fixed
Randomgenerating some repeated values right after.seed(n) HttpServernow ignores malformed requests (no method or resource)- Avoid warnings with newer CMake
Deprecated functions: list here.
Attached Debugger visualizer file for Visual Studio (copy "asl.natvis" to <user>\Documents\Visual Studio <version>\Visualizers)
1.11.11
ASL version 1.11.11
Fixes and little improvements.
- Fixed
socket.read()andwrite()which could miss data in some situations - Fixed
LocalSocket(Unix sockets) and support them in recent Windows 10+ - Fixed
HttpServerhandling HTTP/1.0 keep-alive,Expectheader, byte ranges and missing served files - Fixed performance issues in
Array.resize()andVar.resize() - Extended
MulticastSocketfor IPv6 (WIP, not tested) - Some old code cleanup, simplifications and tidy, and improved documentation
Deprecated functions: list here.
LocalSocket on Windows require the cmake option ASL_SOCKET_LOCAL, currently.
Updated asl.natvis visualizer for Visual Studio (attached to this release)
1.11.10
ASL version 1.11.10
Fixes and little improvements.
- Fixed compilation with Emscripten SDK
- Fixed
StreamBufferwrite 64 bit values in little-endian - Fixed
Quaternionfunctionsslerp(),angle()when arguments are equal - Fixed XML parsing when processing instructions contain '>' characters
- Fixed
Libraryadding default extension if none given - Printf-like functions will now emit warnings on types vs format mismatch (*)
Process::execute()now searches the PATH in Linux, too- Support reading JSON and CSV with BOM
Matrix4::inverse()now computes the general 4x4 inverse (it used to support only affine transforms)Json::write()now writes large files in chunks, using less memory- Added
.data()method inArray,Array2,MatrixN, etc. HttpServersubclasses can now send data in chunks- Added
String.to<T>()andXml.value<T>() - Several other improvements
(*) Functions String::f(), TextFile::printf() and ASL_LOG_* will emit warnings if argument types don't match the format string. On MSVC this currently requires the /analyze compiler setting, and gcc/clang require the -Wformat warning (often enabled by default).
Deprecated functions: list here.
1.11.9
ASL version 1.11.9
Fixes and little improvements.
- Fixed
Array2<T>constructor from pointer to data and sizes - Fixed
IniFile::values()for some old gcc - Moved
encodeUrl()anddecodeUrl()to structUrlas static functions and improved them - Now
Url::encode(str)works like JSencodeURI(), andUrl::encode(str, true)works like JSencodeURIComponent() - Fixed
HttpServerto serve files with non-ASCII names (request paths are URL-decoded first) - Fixed
Json::decode()to support escaped Unicode non-BMP chars (e.g. emojis, like "\ud83d\ude00") - Fixed
String::count()for non-BMP characters - Added
String::wlength()to count UTF16 code units (length ofwchar_t*string) - Added
Stringconstructors from Unicode code points (single code or array) - Added
Xml:value<T>() - Windows
Consolenow sets the system code page in ASL_ANSI mode by default, and added.setCP()to change it - Improvements in ASL_ANSI mode (
Url::decode()andJson::decodewill translate escaped chars to local charset, if possible) - Added
Matrix<T>::op=(init_list)that copies new data without allocating and freeing - Added operator
Matrix3 ^ Vec2for projective transformation (same inMatrix4 ^ Vec3)
1.11.8
ASL version 1.11.8
Fixes and little improvements.
- Fixed
TabularDataFileCSV parsing quoted values with embedded quotes or commas - Fixed
IniFileparsing duplicate section names (kept only the last) - Fixed
Dateparsing and writing (now basic ISO8601, before only extended and "HTTP"-style, and it could crash with malformed strings). - Fixed
ASL_DEPRECATED()macro on gcc (to mark functions as deprecated and trigger warnings on use). - Improved
solve(A, b)so that it solves least-squares if A is not square (more equations than unknowns), likeA.pseudoinverse()*bbut more efficient. - Improved
solveZero()with optional parameters, earlier iteration stop, and an overload to solve a single variable equation.
1.11.7
ASL version 1.11.7
Some fixes and little improvements.
- Fixed
HashMapwhen keys are pointers. - Fixed
Shared<T>up-cast. - Added
Var::remove(key),Var::removeAt(index), etc. - Extended
SocketandPacketSocketwith functions usingByteArray - Documentation improvements
1.11.6
ASL version 1.11.6
Some fixes, cleaning and deprecations.
- Fixed
CmdArgswrongly reading non-ASCII arguments on non-Windows systems. - Improved performance in
String::replace() - Documentation improvements
- Now CMake
find_packagecan specify a minimum version (but will work only from this version up):
find_package(ASL 1.11.6)Deprecated stuff
Several functions and classes are marked deprecated (See list here). Many will be removed in a next minor version. These are marked deprecated in the online documentation and in code, so that using them will print a compiler warning.
1.11.5
ASL version 1.11.5
Little fixes and improvements.
- Avoid several warnings by newer compilers and static analyzers
Xmlparsing will no longer accept invalid chars in tags/attribs (e.g. cannot start with number)- Removed implicit
Stringconversion tochar*(non const) TabularDataFilewrite undefined items empty- Added
Url::params(dic)to create URL query string from a Dic<> - Fixed
Matrix4constructors fromVec3orVec4that were ignoring the template element type (forcing float) - Other code simplifications
Next version will remove some deprecated functions and will not bring asl::byte to the global scope by default.
1.11.4
ASL version 1.11.4
Fixes and small changes.
- Can use the mbedTLS library built in the same tree (with fetch, submodule...)
Var[key] constdoes not add the key if it is not found (it used to :-( )- Improved
HashMapAPI and fixed enumeration in C++17for([key, value]: map) - Added
Shared<T>::as<T2>()to cast shared pointers - More const-correctness
- More tests, cleanup