Releases: Ttimofeyka/Rave
Releases · Ttimofeyka/Rave
v0.2.2
Main changes:
- Improved compatibility with cdecl64;
- Huge optimization of std/matrix (now has a speed similar to numpy!);
- Adding
std/stack
and the std::stack structure; - Adding
std/json
(experimental version - only parser, without error handling) and example for it;
Minor changes:
- New function std::cstring::stod (string to double), new method std::string.toDouble();
- New methods std::file.readAll() and std::file.u8ReadAll().
v0.2.1
Main changes:
- For greater compliance with the IEEE 754-2008 standard, the
std::math::isNaN
function was added. This means that numbers can now take NaN values even with fastmath; - Now the functions
std::fprint
andstd::finput
requires a pointer to the file structure as the first argument; - A number of functions have been added for the
half
type in std/math.
Minor changes:
- A bug related to an attempt to call a method through an overloaded index operator in a structure was fixed;
- Now on x86 and x86_64 platforms spinlock uses the
pause
instruction; - std/memutil has been removed;
- The compiler now uses more information about the output platform for better optimizations.
v0.2
Main changes:
- the requirements for LLVM have been changed - Rave has completely switched to opaque pointers, respectively, changing the requirements for LLVM. The minimum version is 14, the maximum is 18 (may be higher, not verified);
- multiple improvements have been made to the standard library;
- a lot of bugs were fixed (mostly with templates);
- the site was rebranded.
Minor changes:
- the
@vAdd
,@vSub
,@vMul
and@vDiv
builtines have been removed due to their replacement with regular operators; - runtime checks are no longer called in the case of access to constants.
v0.2-rc3
Full Changelog: v0.2-rc2...v0.2-rc3
v0.2-rc2
Full Changelog: v0.2-rc1...v0.2-rc2
v0.2-rc1
Full Changelog: 0.1...v0.2-rc1
v0.1
Improvements:
- added the
(noCopy)
flag to prohibit copying individual variables or methods from one structure to another; - added the
zero()
method forstd::vector
andstd::matrix
(to reset values); - added the ability to access variables without using the prefix
this
(only inside methods, outside constructors/destructors); std/random
has been optimized and synchronized;- the
std::experimental::file
section has been added for future adaptation of working with a file system without libc; - matrix multiplication has been optimized (1000x1000 ~3.2s to ~1.9s);
- the build process has been changed (
llvm-config
is used instead of LLVM-C headers); - Fast math mode for floating point numbers was enabled by default (without fatal optimizations);
- the
std/map
section has been completely redesigned; - the
int hash()
method has been added for most structures inside std; - the ability to call template functions without explicitly specifying types has been added;
- the first version of the documentation for RaveDoc has been added;
- biltins for working with SIMD and
@alloca
have been added; - the
std::time
structure has been completely redesigned; - the flags
-noSSE
,-noSSE2
,-noSSE3
,-noAVX
,-noFastMath
have been added; - the
trim()
method instd::string
andstd::u8string
have been optimized (from two selections to one); - additional compile-time checks for structures have been added;
sizeof
has been optimized.
Fixes:
- a bug with stack overflow bug was fixed;
- a bug with incorrect parsing of template function calls was fixed;
- a bug with operator overloading [] in structures was fixed;
- a bug with the lack of measurement of time spent while importing other modules was fixed;
- a bug with parsing a two-step access to the structure was fixed;
- a bug with building via Makefile on Windows was fixed;
- a bug with prefix parsing for numbers was fixed.