Releases: aslze/asl
1.11.12
ASL version 1.11.12
Some small fixes.
- Fixed
SerialPort
occasional hangs in .read() on Windows - Fixed
Date
writing 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
Random
generating some repeated values right after.seed(n)
HttpServer
now 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
HttpServer
handling HTTP/1.0 keep-alive,Expect
header, byte ranges and missing served files - Fixed performance issues in
Array.resize()
andVar.resize()
- Extended
MulticastSocket
for 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
StreamBuffer
write 64 bit values in little-endian - Fixed
Quaternion
functionsslerp()
,angle()
when arguments are equal - Fixed XML parsing when processing instructions contain '>' characters
- Fixed
Library
adding 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. HttpServer
subclasses 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 structUrl
as static functions and improved them - Now
Url::encode(str)
works like JSencodeURI()
, andUrl::encode(str, true)
works like JSencodeURIComponent()
- Fixed
HttpServer
to 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
String
constructors from Unicode code points (single code or array) - Added
Xml:value<T>()
- Windows
Console
now 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::decode
will 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 ^ Vec2
for projective transformation (same inMatrix4 ^ Vec3
)
1.11.8
ASL version 1.11.8
Fixes and little improvements.
- Fixed
TabularDataFile
CSV parsing quoted values with embedded quotes or commas - Fixed
IniFile
parsing duplicate section names (kept only the last) - Fixed
Date
parsing 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()*b
but 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
HashMap
when keys are pointers. - Fixed
Shared<T>
up-cast. - Added
Var::remove(key)
,Var::removeAt(index)
, etc. - Extended
Socket
andPacketSocket
with functions usingByteArray
- Documentation improvements
1.11.6
ASL version 1.11.6
Some fixes, cleaning and deprecations.
- Fixed
CmdArgs
wrongly reading non-ASCII arguments on non-Windows systems. - Improved performance in
String::replace()
- Documentation improvements
- Now CMake
find_package
can 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
Xml
parsing will no longer accept invalid chars in tags/attribs (e.g. cannot start with number)- Removed implicit
String
conversion tochar*
(non const) TabularDataFile
write undefined items empty- Added
Url::params(dic)
to create URL query string from a Dic<> - Fixed
Matrix4
constructors fromVec3
orVec4
that 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] const
does not add the key if it is not found (it used to :-( )- Improved
HashMap
API and fixed enumeration in C++17for([key, value]: map)
- Added
Shared<T>::as<T2>()
to cast shared pointers - More const-correctness
- More tests, cleanup
1.11.3
ASL version 1.11.3
Fixes and small changes.
- Improved
Matrix3: norm()
,rotation()
,translation()
... - Added
Xml::clear()
- Improved
IniIFile
with indented comments - Improved
Set<>
, range for, operator== - Added
HashMap
operator== - Fixed
File.use(stdout)
- shuffle is not in
Random::shuffle()
- Improved
Stack<T>
- Fixed
Array_<T,N>
enumeration