Skip to content

Releases: aslze/asl

1.11.12

21 Nov 20:23
Compare
Choose a tag to compare

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

15 Jun 22:25
Compare
Choose a tag to compare

ASL version 1.11.11

Fixes and little improvements.

  • Fixed socket.read() and write() 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() and Var.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

24 Mar 00:17
Compare
Choose a tag to compare

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 functions slerp(), 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 in Array, Array2, MatrixN, etc.
  • HttpServer subclasses can now send data in chunks
  • Added String.to<T>() and Xml.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

20 Jul 20:29
Compare
Choose a tag to compare

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() and decodeUrl() to struct Url as static functions and improved them
  • Now Url::encode(str) works like JS encodeURI(), and Url::encode(str, true) works like JS encodeURIComponent()
  • 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 of wchar_t* string)
  • Added Stringconstructors 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() and Json::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 in Matrix4 ^ Vec3)

1.11.8

25 May 21:19
Compare
Choose a tag to compare

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), like A.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

27 Mar 21:48
Compare
Choose a tag to compare

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 and PacketSocket with functions using ByteArray
  • Documentation improvements

1.11.6

05 Mar 19:12
Compare
Choose a tag to compare

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

06 Feb 18:51
Compare
Choose a tag to compare

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 to char* (non const)
  • TabularDataFile write undefined items empty
  • Added Url::params(dic) to create URL query string from a Dic<>
  • Fixed Matrix4 constructors from Vec3 or Vec4 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

20 Nov 20:13
Compare
Choose a tag to compare

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++17 for([key, value]: map)
  • Added Shared<T>::as<T2>() to cast shared pointers
  • More const-correctness
  • More tests, cleanup

1.11.3

13 Nov 18:16
Compare
Choose a tag to compare

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