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



                       












                                                                                                                                            










                                                                                                            



                                                                           



                                             




                        






                           





                         





                                




                                 

















                                                                                            
                                                      









                                                                      




                                      








                                                                                                      






                                         



                               






                            





                                                                       



                           



                                                        



                     





                           



                    






































































































































































                                                                                                                           
# 18.1

* Enable debug symbols;

# 18.0

* Add integer-string format functions;
* Move string-related facilities to new module 'str';
* Update code style;
* Add aliases for C++;
* Add C++ metaprogramming classes;
* Fix C/C++ standard detections;
* Add more attributes to functions;
* Implement mathematical functions in C++;
* Implement mathematical functions using basic arithmetic types, including (depending on the function) signed, unsigned, and floating-point;
* Add fraction structure;

# 17.0

* Add functions for null-terminated strings: streq (for equality checking), strlen (for getting the length);
* Add type limit macros;
* Rename bytesz to bytelen;
* Remove byte type;
* Remove bool type (and related macros);
* Remove chr8, chr01, and chr02 types;
* Update nullptr definition;
* Update nopos definition;

# 16.7

* Fix segmentation fault in fill caused by usage of wrong register (amd64);

# 16.6

* cp: Use vmovdqu instead of vmovups (amd64);

# 16.5

* Optimise fill (amd64);
* Optimise cp (amd64);

# 16.4

* Update assembly comments;
* Implement fill in AMD64;
* Remove signal support;
* Fix exp;

# 16.3

* Implement exp;
* Fix bad directory name;
* Fix makefile;

# 16.2

* Implement cp and abs in AMD64;
* Fix indentations;
* Implement cp and abs in ARM64;

# 16.1

* Add install target to makefile;
* Fix csys usage;

# 16.0

* Rewrite project (the following is the current feature set);
* Add minimum-width unsigned integer types: i8, i01, i02, i04;
* Add minimum-width signed integer types: i8s, i01s, i02s, i04s;
* Add type for object sizes: sz;
* Add type for pointer values: ptr;
* Add function for logical values: bool;
* Add logical constants: false, true;
* Add function for memory sequence copying: cp;
* Add function for memory sequence filling: fill;
* Add types for storing quotients and remainders: quotrem8, quotrem01, quotrem02, quotrem04;
* Add function for division and modulo: divmod;
* Add function for getting absolute values: abs;
* Add function for memory sequence comparison: eq;
* Add function for radication: root (unimplemented);
* Add function for exponentiation: exp (unimplemented);
* Add function for bytes value searching: srch:
* Add constant for indicating invald positions: nopos;
* Add constant for indicating null pointers: nullptr;
* Add types for UTF-8, UTF-16,a and UTF-32 values: chr8, chr01, chr02;
* Add function for UTF-8 encoding: utf8enc;
* Add function for UTF-8 decoding: utf8dec;
* Add function for UTF-32 to UTF-8 length calculations: utf8enclen;
* Add function for UTF-8 to UTF-32 length calculations: utf8declen;
* Add function for Windows-1252 encoding: win1252enc;
* Add function for Windows-1252 decoding: win1252dec;
* Add function for logarithming: log (unimplemented);

# 15.1

* mem: Implement;
* docs: Add example definition to mem;

# 15.0

* Add new module mth;
* Add mathematical functions: abs, div, exp, log, mul, nrt (currently, only abs has been implemented);
* Add structure for fractions (frac);
* Fix version;
* Re-add documentation;
* Add maximum and minimum values for types;

# 14.0

* memcat: Remove;
* strcat: Remove;
* memcp: Return number of copied bytes;
* memfill: Return number of filled bytes;

# 13.1

* Implement memcnt in assembly;

# 13.0

* Add counting function;
* Rename foreach to memfor;
* Rename fndbtyte to memfnd;
* Rename fndchr to strfnd;

# 12.2

* Improve assembly readability (save utf8enc and utf8enclen for later);
* Update readme;
* Fix memory leak in demo;

# 12.1

* Remove typing of nullptr;

# 12.0

* Add function for getting the length of UTF-32 strings;

# 11.1

* Fix install target;

# 11.0

* Remove memcmp and strcmp;
* Restructure sources;
* Remove root makefile;

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