diff options
Diffstat (limited to 'CHANGELOG.txt')
-rw-r--r-- | CHANGELOG.txt | 391 |
1 files changed, 391 insertions, 0 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt new file mode 100644 index 0000000..6ede68a --- /dev/null +++ b/CHANGELOG.txt @@ -0,0 +1,391 @@ +# 25 + +* Rename source directory: src => source +* Make changelog plain-text +* Update CMake style +* Rewrite in C99 +* Use separate CMake lists +* Update copyright and license notices +* Use header identifiers instead of keys for include guards +* Use ifdef/ifndef +* Remove top 'u8c' header (keep uninm) +* License under the LGPL +* Bump required CMake version +* Rename misc header to u8c +* Remove assert +* Remove attributes: + - u8c_attr_abitag + - u8c_attr_allocsz + - u8c_attr_artif + - u8c_attr_cold + - u8c_attr_fmt + - u8c_attr_malloc + - u8c_attr_hot + - u8c_attr_pure + - u8c_attr_retnonnull + - u8c_attr_sect + - u8c_attr_used + - u8c_attr_noderef + - u8c_attr_noesc + - u8c_attr_dup +* Remove type constant macros +* Remove our types +* Remove endian-related facilities +* Remove memory functions +* Remove bytesz and dbg +* Fix version number +* Remove fmt header +* Add new header 'format' +* Add new header 'character' +* Replace utf header with new 'format' and 'character' headers +* Remove math header +* Remove impl header +* Remove cstr header +* Remove arr header +* Make functions non-constexpr +* Update naming convention +* Implement UTF-16 conversions +* Split cnv into multiple functions: + - encode_utf8 (UTF-32 to UTF-8) + - decode_utf8 (UTF-8 to UTF-32) + - encode_utf16 (UTF-32 to UTF-16) + - decode_utf16 (UTF-16 to UTF-32) +* Use caller-provided buffer in conversion functions +* Rename u8c::isupper to u8c_is_majuscule +* Rename u8c::islower to u8c_is_minuscule +* Update code style +* Change type of version constant (now uint_least32_t) +* Use Git tagging for versioning +* Don't throw exceptions +* Update warning flags +* Update optimisation flags +* Rename u8c::unimax to u8c_MAX_CODE_POINT +* Remove u8c::uniblk +* Clean up code +* Don't define functions in headers +* Rename u8c::isspace to u8c_is_whitespace +* Add more characters to u8c_is_whitespace +* Rename u8c::ispunct to u8c_is_punctuation +* Add more characters to u8c_is_punctuation +* Remove u8c::isalnum +* Rename u8c::uninm to u8c_unicode_name +* Use caller-provided buffer in u8c_unicode_name +* Add constant for the maximum length of a Unicode identifier: u8c_MAXIMUM_NAME_LENGTH +* Add functions for determening the length of encodings and decodings: + - u8c_decode_utf8_length + - u8c_encode_utf8_length + - u8c_encode_utf16_length + - u8c_decode_utf16_length +* Rename u8c_attr_const to u8c_UNSEQUENCED +* Rename u8c_attr_inline to u8c_ALWAYS_INLINE +* Add new attribute u8c_NO_DISCARD +* Validate encodings +* Rework readme +* Rename u8c::isdigit and u8x::isxdigit to is_numeric and is_hexadecimal_numeric +* Rename u8c::isalpha to u8c_is_alphabetic +* Rename u8c::iscntrl to u8c_is_control +* Rename u8c::issurro to u8c_is_surrogate +* Optimise code +* Update gitignore + +# 24 + +* Remove constructor taking a single value for `u8c::arr`. +* Add new overload taking a single value for `u8c::arr::app`. +* Add function `u8c::arr::log` to enable logging of array operations *(doesn't currently log a lot)*. +* Remove `u8c::trunc`. +* Initialise memory allocated by `u8c::arr`. +* Add overload taking value used for memory-initialisation for `u8c::arr::alloc`. + +# 23 + +* Rewrite for C++ *(read readme for list of current features)*. +* Use CMake for building. +* Update logo. + +# 22 + +* Remove documentation (too hight-maintainence). +* Rename `include/u8c/is.h` to `include/u8c/chk.h` +* Revert u8c-9 “Remove some optimisations, as they prevent C++ compatibility.”. +* Fix #1. +* Use binary literals for bitwise operations. +* Add more control characters to `u8c_iscntrl`. +* Change type of result of the `u8c_is`* functions fromt `uint_least8_t` to `bool`. +* Add more characters to `u8c_ispunct`. +* Update Makefile. +* Revert u8c-21 “Rename `u8c_unimax` to `u8c_u32max` and move it to `u8c/u32.h`.”. +* Add function for checking if a character is a surrogate point; `u8c_issurro`. +* Split `u8c_isalpha` into `u8c_islower` and `u8c_isupper`, move current mapping to `u8c_islower`. All characters that are neither upper case or lower case must be put in `u8c_isalpha`. +* Add function for getting the name of an Unicode codepoint; `u8c_uninm` (has currently only mapped around ⅔% of all Unicode characters). +* Revert accidental changes to changelog (please be more careful and observant in the future). +* Delete `u8c_errtyp_maxerrtyp` (in favour of `u8c_errtyp_all`). +* Switch the arguments of `u8c_seterr`. +* Add function for getting the name of the block an Unicode codepoint is located in; `u8c_uniblk` (has currently only mapped around 39% of the Unicode blocks). +* Rename all instances of `u32` to `str`. +* Optimise for size (`-Os` instead of `-O3`). +* Update Readme. +* **MAJOR**: Return a tuple (structures) in all returning functions, otherwise void. +* Add help screen to test program. +* Update Gitignore. +* Restructure test program. +* Add more characters to `u8c_islower`. +* Add more characters to `u8c_isupper`. +* Remove the `runtest` target (just use `make && export LD_LIBRARY_PATH=$PWD && ./test`, which can more easily be modified to pass arguments). +* Add more characters to `u8c_isalpha`. +* Fix incorrect error being set (somewhere, I forgot where). +* Fix `SIZE_C`. + +# 21 + +* Update readme. +* Require C23 (C2x). +* Use GCC (has better C23 support). +* Cleanup UTF-8 decoder and encoder (using binary literals). +* Rename `u8c_unimax` to `u8c_u32max` and move it to `u8c/u32.h`. +* Don't clear last error message on calls to `u8c_geterr`. +* Restructure source files. +* Fix makefile. +* Update test program. + +# 20 + +* Update documentation. +* Optimise `u8c_println`, +* Make `u8c_print`, `u8c_println`, and `u8c_vprint` thread-safe (if thread-safe is not disabled). +* Create base for UTF-16 related functions: + * Add function for allocating UTF-16 strings; `u8c_u16alloc`. + * Add function for deallocating UTF-16 strings; `u8c_u16free`. +* Restructure headers: + * `u8c/SIZE_C.h`: + * `SIZE_C` + * `u8c/err.h`: + * `u8c_errtyp` + * `u8c_errhandltyp` + * `u8c_geterr` + * `u8c_regerrhandl` + * `u8c_seterr` + * `u8c/fmt`: + * `u8c_dbgprint` + * `u8c_fmt` + * `u8c_fmttyp` + * `u8c_print` + * `u8c_println` + * `u8c_setfmt` + * `u8c_vfmt` + * `u8c_vprint` + * `u8c/is.h`: + * `u8c_isalnum` + * `u8c_isalpha` + * `u8c_iscntrl` + * `u8c_isdigit` + * `u8c_ispunct` + * `u8c_isspace` + * `u8c_isxdigit` + * `u8c/main.h`: + * `u8c_dbg` + * `u8c_abrt` + * `u8c_end` + * `u8c_init` + * `u8c_thrdsafe` + * `u8c_unimax` + * `u8c_ver` + * `u8c/u16.h`: + * `u8c_u16alloc` + * `u8c_u16free` + * `u8c/u32.h`: + * `u8c_u32alloc` + * `u8c_u32cat` + * `u8c_u32cmp` + * `u8c_u32cp` + * `u8c_u32fndchr` + * `u8c_u32fndpat` + * `u8c_u32free` + * `u8c_u32ins` + * `u8c_u32substr` + * `u8c_u32sz` + * `u8c/u8.h`: + * `u8c_u8alloc` + * `u8c_u8dec` + * `u8c_u8enc` + * `u8c_u8free` +* Disable *-Wpadded*. +* Update `SIZE_C`. +* Always use character constants (instead of numerical values). + +# 1↋ + +* Add more codepoints to `u8c_ispunct`. +* Don't use Zstandard for man page compression. Use Gzip. +* Remove Zstandard as a dependency. +* Update gitignore. + +# 1↊ + +* Initialise error handler array. +* Initialise and destroy error handler array mutex. +* Fix Makefile. +* Update gitignore. + +# 19 + +* Fix error when compiling with GCC: *src/u8c/dat.c:22:29: error: initializer element is not constant [-Wpedantic]*. +* Improve error handling: + * Add enumeration type for error types; `u8c_errtyp`. + * Add function for registering error handlers; `u8c_regerrhandl` (see `test.c`). +* Add function for inserting UTF-32 strings into UTF-32 strings; `u8c_u32ins`. +* Enable more warnings. +* Add man pages. +* Fix `u8c_u32cat` skipping the last character in `lstr`. +* Remove the `uninstall` target (it was deemed to unsafe). +* Add *Zstandard* as a dependency. + +# 18 + +* Update `.gitignore`. +* Remove core dump. + +# 17 + +* Create new logo. +* Update headers. +* Invert status values. + +# 16 + +* Add function for concatenating UTF-32 strings; `u8c_u32cat`. +* Add functions for allocating UTF-32 and UTF-8 strings; `u8c_u32alloc` and `u8c_u8alloc`. +* Add function for finding a given codepoint in an UTF-32 string; `u8c_u32fndchr`. +* Add function for finding a given pattern (string) in an UTF-32 string; `u8c_u32fndpat`. +* Update `SIZE_C`. +* Add function for aborting; `u8c_abrt`. +* Rename `u8c_debug` to `u8c_dbg`. +* Use `bool` (`_Bool`) for return values instead of `uint_least8_t`. +* Add more format types. +* Fix incorrect unabbreviated names in headers. +* Add another function from `ctypes.h`; `u8c_isxdigit`. +* Use `char32_t` (from `uchar.h`) instead of `uint_least32_t` in UTF-32. +* Use `unsigned char` instead of `uint_least8_t` in UTF-8. +* Move all data into `u8c_dat` (of type `struct u8c_dattyp`). +* Add function for setting the format (base and endian) of `u8c_fmt` and company; `u8c_setfmt`. +* Remove `u8c_txt` in favour of Unicode string literals (much clearer code, but less portable). +* Add function for getting a sub-string of an UTF-32 string; `u8c_u32substr`. +* Don't count the null-terminator in string sizes. +* Add macro for maximum valid Unicode codepoint; `u8c_unimax`. +* Remove `txttolit`. +* Add function for deallocating UTF-8 strings; `u8c_u8free`. +* Turn both `u8c_dbg` and `u8c_thrdsafe` into type `bool` from `uint_least8_t`. +* Add more letters to `u8c_isalpha`. + +# 15 + +* Add missing include directives to `include/u8c/u32free.h` and `include/u8c/u8free.h`. + +# 14 + +* Free error message when `u8c_geterr` is called (after copying, of course). +* Update `u8c_freeu8`. +* Rename `u8c_freeu32` to and `u8c_u32free` and `u8c_freeu8` to `u8c_u8free`. + +# 13 + +* Fix `u8c_txt` in C++. + +# 12 + +* Use `u8c_println` instead of `u8c_print` in `u8c_dbgprint`. + +# 11 + +* Update README. +* Update Makefile. +* Use constant variables more. +* Create macro for creating human-readable UTF-32 strings; `u8c_txt`. +* Add macros for deallocating UTF-32 and UTF-8 strings (use these instead of `free` or `std::free`); `u8c_u32free` and `u8c_u8free`. +* Optimisations. + +# 10 + +* Make `u8c_seterr` public. +* Update logo. + +# ↋ + +* Fix `u8c_ver`. +* Add Turkish letters to `u8c_isalpha`. + +# ↊ + +* Add UTF-32 alternatives to some of the functions from `ctypes.h`; `u8c_isalnum`, `u8c_isalpha`, `u8c_iscntrl`, `u8c_isdigit`, `u8c_isspace`, and `u8c_ispunct`. +* Add assertions. +* Create new logo (move old logo to `u8c_old.svg`). + +# 9 + +* Optimisations. +* Remove some optimisations, as they prevent C++ compatibility. +* Fix memory leak in test program. +* Add function for comparing UTF-32 strings; `u8c_u32cmp`. + +# 8 + +* Optimisations. + +# 7 + +* Optimisations. + +# 6 + +* Remove unneeded include directives. +* Update `SIZE_C` to utilise the C++23 `std::size_t` literal suffix (`uz`). +* Fix include guard in `include/u8c/stat.h`. +* Add more error messages. + +# 5 + +* Add logo (`u8c.svg`). +* Fix UTF-8 decoder. +* Update README. + +# 4 + +* Add link to PKGBUILD in README. + +# 3 + +* Remove `include/u8c.h`. +* Fix minor errors. + +# 2 + +* Move PKGBUILD to seperate project. +* Create a *master* header that includes every other header. +* Create `size_t` constant macro. +* Add colour to text formatting. +* Specify what file to print to in `u8c_print`. +* Add C++ compatibility to headers. +* Add functions for initialising and ending *u8c*. +* Add dedicated function for text formatting (altough not working at the moment); `u8c_fmt`. +* Remove `u8c_free`. +* Improve error handling in the form of error messages (which can be retrieved by the programmer via `u8c_geterr`). +* Split `u8c_print` into two functions: `u8c_print` and `u8c_println`. +* Break the UTF-8 decoder somehow. +* Add compile-time option to be thread-safe (requiring C11 threads if enabled). +* Add function for copying UTF-32; `u8c_u32cp`. +* Add function for getting the size of an UTF-32 array; `u8c_u32sz`. +* Add `va_list` alternatives to `u8c_fmt` and `u8c_print`; `u8c_vfmt` and `u8c_vprint`. +* Add test-program (run via `make runtest`). +* Add program to make human-readable UTF-32 strings machine-readable. +* Turn `u8c_ver` into a compile-time macro. +* Enable more warnings when compiling. +* Add assertions. + +# 1 + +* Fix Makefile compiling *u8c.so* instead of *libu8c.so*. +* Add global variable for version control. + +# 0 + +* Fork from *luma*. |