| B - 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.