summaryrefslogblamecommitdiff
path: root/CHANGELOG.txt
blob: 23bead7386ea2d1c9366ba5cfe3f7ee07220a608 (plain) (tree)
1
2
3
4



                    






































































































































































                                                                                                                           
# 10.1

* Don't use susinfo;

# 10.0

* Update readme;
* Fix typo in makefile;
* Include headers inside header guard;
* Remove unneeded includes;
* Rename private include directory: 'include-priv' => 'include-private';
* Remove assembly support from (public) headers;
* Remove fastimpl (assembly algorithms are still used);
* Add copyright/license notices to makefiles;
* Seperate sources according to header;
* Require GNU Make;
* Move (most) C-implementations into a seperate project: zapx;
* Restructure assembly;
* Implement strfill in assembly;
* Use new versioning system (api.ver);
* Remove documentation;
* Add features from latest standard;
* Temporarily remove i386 implementations;
* Update readme format;
* Update changelog format;
* Remove impl;
* Remove stdver;
* Readd ver;
* Use git tagging;

# F

* Remove type specifier from version macro;
* Add mathematical functions abs and fma;
* Update documentation;
* Remove nothrw attribute from foreach;
* Remove UB from foreach test;
* Fix parameter mismatch in foreach test;
* Use unsigned char instead of uint_least8_t;
* Remove unnecessary casts;
* Add new headers: 'zap/math.h' (for mathematical functions), 'zap/mem.h' (for memory sequence functions);
* Restructure makefile;
* Fix not using INT_LEAST8_MAX and INT_LEAST8_MIN instead of INT8_MAX and INT8_MIN;
* Remove '/build' from gitignore;

# E

* Fix incorrect version number;

# D

* Add function foreach: Run function on each element;
* Use directive globl instead of global in assembly;
* Use SIZE_MAX instead of negative one;
* Remove asflags from makefile;
* Don't require GNU Make;
* Change the type of fndbyte: (size_t (void const *,size_t,uint_least8_t)) => (size_t (void const *,size_t,unsigned char));
* Change the type of memfill: (void (void *,size_t,uint_least8_t)) => (void (void *,size_t,unsigned char));
* Update readme (add documentation for some functions);
* Update susinfo symbol names;

# C

* Fix install target;
* Remove type literals;

# B

* memdup: Use sus_unlikely instead of __builtin_expect;
* Rename project to zap (from rgo);
* Remove global license file (useless with MPL);
* Migrate test to C++ (for reasons which will be revealed later);
* Restructure headers;
* Add include guards to the private header;
* Add attribute useret to functions;
* Require GNU Make;
* Compile position independent code;
* Update readme;

# A

* Installation script: Create installation directories if they don't already exist;
* Don't use susinfo types;
* Remove declarations for getbinver;
* Add memcmp, strcmp;
* Update makefile;
* Reimplement fastimpl as a global variable;
* Change type of fastimpl (uint_least8_t => _Bool);
* Change the return types of memeq and streq (uint_least8_t => _Bool);
* Enable compilation warnings;
* Add type literals (like those from susinfo);
* Use *int_leastN_t instead of *intN_t;
* Remove restrict-qualifications;
* Remove C++ version of memdup;

# 9

* Fix readme not reflecting that we now support all platforms;
* Rename the 'Building' section in the readme to 'Building & Installing';

# 8

* Use susinfo;
* Implement algorithms in C (with inline assembly on supported platforms);
* Add comments;
* Fix strcpy counting the null-terminator;
* Fix strcpy taking a pointer-to-const as the output;
* Implement strcpy, streq in IA-32;
* Optimise streq: Only use the lower eight bytes for the return value;
* Optimise strlen: Use fewer registers;
* Fix memfill taking a pointer-to-const as the output;
* Fix strfill taking a pointer-to-const as the output;
* Update readme;
* Add private header;
* Remove assembly-specific version macro;

# 7

* Relicense under MPL2;
* Instead of throwing an error, define a macro when the header is included on an unsupported platform;

# 6

* Remove stupid debug return from memcpy;

# 5

* Fix compile flags not indicating new relative header location;

# 4

* Add install target to makefile;
* Merge makefiles;

# 3

* Enable compiler optimisations;
* Optimise memfill;
* Optimise memcpy: Use movdqu instead of movups (AMD64, i386 SSE2), add 256-bit copy (AMD64 AVX, i386 AVX);
* Update makefile;
* Implement fndbyte, fndchr, strlen in IA-32;
* Fix bug in test;
* Update readme;
* Add new planned architectures: Motorola 68000, Power ISA, RISC-V, Sparc;

# 2

* Fix target purge in makefile not being labeled phony;
* Add machien architecture check in header;
* Implement memcpy, memeq, memfill in IA-32;
* Fix some incorrect comments;
* Use a different register order for temporaries and optimise register usage;
* Fix bug in memeq: Should jump if zero, not if equal;
* Update readme;

# 1

* Fix indentation in license notices;
* Fix incorrect declaration for rgo_strcpy, rgo_streq;
* Implement fndbyte,memeq,strcpy,streq;
* Add new tests;
* Fix bug in memcpy: Should jump if zero, not if equal;
* Remove declaration for rgo_memcmp;
* Add macro rgo_ver, defined to the current version number;
* Add assembly declaration for rgo_fndchr, rgo_fndbyte;
* Fix some incorrect comments;
* Use movups instead of movdqu in memcpy;

# 0

* Initial.