summaryrefslogblamecommitdiff
path: root/CHANGELOG.txt
blob: 54b0a76a2538f3e86617df1c664b3d31bc6e3744 (plain) (tree)















































                                                               

                          

















                                                           








                              


                          










                                                              











                                                                                

                          


                                          
 


                                      




                                       



                                        















                                                                                                




                                                    




                                                      







                                                                                                                































































































































































































































































































































                                                                                                                                                                                         
| 0.0.0

- Revive and rewrite project (current features will be listed);
- Merge with Flux and Burst;
- Use zp versioning: api.ext.pat;
- Use GNU Make;
- Depend on zp;
- Use Git tagging for versioning;
- Add input/output header: io;
- Add function for creating files: crtfil;
- License under LGPL3 or later;
- Add enumerations for errors;
- Add function for aborting: abr;
- Add function for getting error mesasges: errmsg;
- Update gitignore;
- Add structure for files;
- Add integral type for file permissions;
- Add multithreading header: thr;
- Add function for creating threads: crtthr;
- Add private header;
- Add base header: dux;
- Add API and extension version constants: api, ext;
- Add structure for threads: thr;
- Add function for joining threads: joithr;
- Add global file for default input: dfli;
- Add global file for default output: dflo;
- Add global file for default logging: log;
- Add function for exiting the current thread: exi;
- Add function for sleeping: slp;
- Add demo;
- Add structure for storing path information: pthinf;
- Add function for getting the current directory: curdir;
- Add function for getting the home directory: homdir;
- Add function for changing the current directory: chgdir;
- Add function for statting paths: sttpth;
- Add function for setting the permissions of a path: setprm;
- Add function for creating directories: crtdir;
- Add function for copying files: cpy;
- Add function for moving files/directories: mov;
- Add function for removing files: rem;
- Add function for writing to files: wrt;
- Add function for reading from files: red;
- Add function for writing strings to files: wrtstr;
- Rewrite readme and in plain text;
- Add function for starting threads: srtthr;
- Adjust copyright years for oldest versions;
- Note: Currently, only errmsg is implemented;

- Fix installation target;

- Support Linux AMD64;
- Implement crtfil;
- Add private header for I/O;
- Implement abr;
- Remove parameters from abr;
- Update demo;
- Implement crtdir;
- Implement wrt;
- Rename badprm value to noprv;
- Update gitignore;
- Add function for opening files:
- Remove iomod type;
- Rename crtfil to crt;
- Implement wrtstr;
- Add function for opening files in read-write mode: opnwr;
- Add function for opening files in read-only mode: opn;
- Add function for closing files: cls;

- Implement opn;
- Update demo;
- Implement red;
- Fix zp prefix on pthinf;
- Remove thr module;
- Implement cpy;
- Implement sttpth;
- Update parameters to sttpth;

- Fix installation target;
- Update gitignore;

- Perform better error handling in cpy;
- Add new error 'memlim';
- Add new error 'io';
- Implement homdir;
- Rename opnwr to opnrw;
- Add function for getting environment variables: envvar;
- Make homdir and curdir write to user-provided buffers;
- Update demo;
- Implement curdir;
- Update coding style with regards to pointers and references;

- Implement opnrw;
- Implement setprm;
- Add new module 'fs';
- Move to fs: chgdir, crtdir, cpy, curdir, homdir, mov, rem, setprm, and sttpth;
- Rename envvar to getenv;
- Bring back message to abr;
- Make errmsg write message to caller-provided buffer;
- Make getenv, homdir, and curdir not include null-terminator in output;
- Update gitignore;
- Implement wrtstr in the same file as wrt;
- Implement mov;

- Fix installation script;

- Update logo (copy old to 'dux_old.svg');

- Update logo;

- Move current logo to root directory;
- Update logo;

- Move all logos to the root directory;
- Implement dfli, dflo, and log;
- Rename dfli to idfl;
- Rename dflo to odfl;

| 2↋

- Fix signal pipe being renamed to file;

| 2↊

- Update the homepage-URL in CMake and the homepage link in the readme;
- Add I/O modules for file manipulation;
- Simplify debug logs and align them;
- Remove error code noimpl;
- Revert "Make more compile-time objects be internally-linked" from dux-28 as now GCC complains;
- Split module group arr into C and C++ sections like the others;
- Add module memeq for comparing memory regions;
- Implement POSIX functions dux.priv.posix.fsync, dux.priv.posix.read;
- Update gitignore;
- Update update-checklist;
- Rename error code badio to ioerr;

NOTE: dux.pipe.read currently fails on FreeBSD

| 29

- Add homepage-URL to CMake;
- Add an update checklist ("/update-checklist.txt");

| 28

- Add module dux.ismainthrd;
- Make more compile-time objects be internally-linked;

| 27

- Correct comment in "/dux/src/exit.cc";
- Add project description to CMake;
- Remove initialisation for the lock in dux.abrt as it's deprecated in C++20;
- Fix return type not being specified in the C-implementation for dux.onexit;
- Fix ld complaining about multiple definitions of compile-time objects when the project is compiled with Clang;

| 26

- Rewrite and restructure project;
- Update readme;

| 25

- Merge with dux.
- Make new logo (based on dux_boxes).
- Merge maths facilities and sequence facilities.
- Implement alternatives for stdlib.
- Use new header structure
- Make thread API cleaner.
- Make windowing API cleaner.
- ...

TO-DO: Expand and improve the changelog for this version.

| 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`.
- Update code formatting.

| 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 z`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*.