]> Kevux Git Server - fll/log
fll
2 months agoBugfix: The FSS Read program is missing the f_directory dependency.
Kevin Day [Tue, 23 Dec 2025 17:06:49 +0000 (11:06 -0600)]
Bugfix: The FSS Read program is missing the f_directory dependency.

2 months agoBugfix: Error reporting has invalid syntax and some are the wrong errors.
Kevin Day [Fri, 19 Dec 2025 01:01:41 +0000 (19:01 -0600)]
Bugfix: Error reporting has invalid syntax and some are the wrong errors.

The Access Denied error is missing the trailing quote.
The problem appears to stem from when I added the debug printing support.
I failed to place the closing quote into the correct location.

I also noticed that the static strings array is too short!
This will result in the wrong errors being printed.

Add the missing strings.

The stand alone builds must be updated because this now uses a string that wasn't used before.
Make sure `_di_f_string_format_sentence_end_basic_s_` is available in all custom builds that rely on the error printing.

2 months agoUpdate: The f_process syscalls should return F_implement_not if not available.
Kevin Day [Thu, 18 Dec 2025 02:18:46 +0000 (20:18 -0600)]
Update: The f_process syscalls should return F_implement_not if not available.

The `f_process` is very new.
The syscalls might not be available.

Ensure that this doesn't break older software stacks by returning `F_implement_not` when the associated syscall is not available.

2 months agoUpdate: Disable f_thread_mutex_priority_ceiling_get() and f_thread_mutex_priority_cei...
Kevin Day [Tue, 16 Dec 2025 03:07:53 +0000 (21:07 -0600)]
Update: Disable f_thread_mutex_priority_ceiling_get() and f_thread_mutex_priority_ceiling_set() for pinephone.

2 months agoUpdate: Add pinephone build mode and fix build setting inconsistencies encountered.
Kevin Day [Tue, 16 Dec 2025 02:13:19 +0000 (20:13 -0600)]
Update: Add pinephone build mode and fix build setting inconsistencies encountered.

Add a convenience build mode similar to the `android` build mode for the `pinephone`.
Just like with the `android` build mode, add a parameter to build using the `pinephone` mode to the `bootstrap-example.sh` script.
Utilize the android build variables for the script, replacing them with a more generic variable name.

I discovered and addressed some build settings inconsistencies while mass adding the `pinephone` mode.

2 months agoUpdate: Enable f_thread_cancel() in all stand alone builds.
Kevin Day [Tue, 16 Dec 2025 00:20:16 +0000 (18:20 -0600)]
Update: Enable f_thread_cancel() in all stand alone builds.

2 months agoUpdate: Use regular grep rather than POSIX regex grep in package.sh build script.
Kevin Day [Tue, 16 Dec 2025 00:18:42 +0000 (18:18 -0600)]
Update: Use regular grep rather than POSIX regex grep in package.sh build script.

Not every version of grep supports POSIX regex.
Use the uglier but better supported equivalent match strings to make the package script more portable.

2 months agoUpdate: Provide _pthread_kill_as_pthread_cancel_ and disable thread robust functions...
Kevin Day [Mon, 15 Dec 2025 02:38:55 +0000 (20:38 -0600)]
Update: Provide _pthread_kill_as_pthread_cancel_ and disable thread robust functions for Android builds.

The `_pthread_kill_as_pthread_cancel_` provides an experimental work-around for Android.
Android does not support the `pthread_cancel()` (not supporting this makes Android unsafe).

Use `pthread_kill()` with the terminate signal in place of `pthread_cancel()` when this is defined.
The `f_thread_cancel_state_set()` is also replaced with a stub function that returns `F_implement_not`.

2 months agoRevert "Bugfix: Cannot disable f_thread_cancel() and f_thread_cancel_state_set()...
Kevin Day [Mon, 15 Dec 2025 01:43:10 +0000 (19:43 -0600)]
Revert "Bugfix: Cannot disable f_thread_cancel() and f_thread_cancel_state_set() on Android."

This reverts commit a4de650d1b0461a75e7c548f3a1e5fae797393a6.

The linking passed, but when I tried to run the program, it failed.
I guess I cannot enable these.

2 months agoBugfix: Cannot disable f_thread_cancel() and f_thread_cancel_state_set() on Android.
Kevin Day [Mon, 15 Dec 2025 01:10:12 +0000 (19:10 -0600)]
Bugfix: Cannot disable f_thread_cancel() and f_thread_cancel_state_set() on Android.

These are now required by the programs.
I also tested on Android and found that these now work.
It should be safe to enable these by default on Android.

2 months agoUpdate: Provide THREAD_* defines if they do not exist and use the f_thread defines.
Kevin Day [Mon, 15 Dec 2025 00:46:01 +0000 (18:46 -0600)]
Update: Provide THREAD_* defines if they do not exist and use the f_thread defines.

Make sure all relevant `THREAD_*` are defined and if not, then define them.

Do not directly use the `PTHEAD_*` defines.
Instead use the ones provided by `f_thread`.

2 months agoUpdate: Ensure sockets defines for SOCKET_* and catch missing MSG_* defines.
Kevin Day [Mon, 15 Dec 2025 00:13:03 +0000 (18:13 -0600)]
Update: Ensure sockets defines for SOCKET_* and catch missing MSG_* defines.

Add `MSG_*` defines that I missed in a previous commit.

Add the `SOCKET_*` defines.

2 months agoUpdate: Ensure sockets defines exist, add more defines, and remove redundancy.
Kevin Day [Sun, 14 Dec 2025 23:31:47 +0000 (17:31 -0600)]
Update: Ensure sockets defines exist, add more defines, and remove redundancy.

Make sure each standard define exists.
If they do not, then create them.
This provides a new disable define called `_di_f_socket_defines_d_`.

Add a lot of missing defines.
This especially includes a lot of protocols.

The `f_socket_message_flag_e` enums are redundant, so remove them.

2 months agoUpdate: Add -A option to example bootstrap script for android.
Kevin Day [Sun, 14 Dec 2025 20:41:02 +0000 (14:41 -0600)]
Update: Add -A option to example bootstrap script for android.

The Android system has a terrible interface.
Make the bootstrap process easier by allowing a single parameter to be passed to enable passing android build mode to everything being built.

2 months agoUpdate: Add .gitignore file for common directories that should not be committed.
Kevin Day [Sun, 14 Dec 2025 17:30:07 +0000 (11:30 -0600)]
Update: Add .gitignore file for common directories that should not be committed.

2 months agoUpdate: Add man pages forr most or all FLL functions and programs.
Kevin Day [Sun, 14 Dec 2025 16:34:56 +0000 (10:34 -0600)]
Update: Add man pages forr most or all FLL functions and programs.

The man page format is terrible.

The doxygen program helps automatically create these, but it is terrible at generating the man page format (on top of the man page format itself being terrible).
I found a tool from https://github.com/gsauthof/doxy2man.git that helps convert doxygen created xml files into man pages.
It works a lot better than doxygen's man page generation.

The generation from doxygen still has problems.
It doesn't understand some of the commenting structure.

This documents the process so that I do not have to try and figure this out all over again.

I have to take the generated man pages and modify them to clean up a bunch of mess.
This is a lot of work and so I am expecting to have missed something, overlooked something, or made some silly mistake.
Oh well. I can address such problems over time.

This is another reminder (like commit 63be746d22d66870ae89f9575c82db7d0b784e32 from the 0.6 branch) that I probably have to write something that provides a better documentation format.
Then I can convert that to man pages.
I imagine something using FSS + Wiki + IKI.
Using both Wiki and IKI is because IKI isn't meant to replace Wiki.

2 months agoFeature: Add IKI Write stand alone programs.
Kevin Day [Sat, 13 Dec 2025 18:13:28 +0000 (12:13 -0600)]
Feature: Add IKI Write stand alone programs.

2 months agoUpdate: Build settings header ordering and config.c and config.h files.
Kevin Day [Sat, 13 Dec 2025 17:21:55 +0000 (11:21 -0600)]
Update: Build settings header ordering and config.c and config.h files.

Change the ordering to have the headers before the source files.
This seems to flow more naturally.

Move the main program and config.c files onto their own source lines, in general.

Make sure all programs have a config.c and config.h file.
I've generated these files in the past but now with the external programs it has become less consistent.
Make the files statically defined rather than generated and explicitly add them to the build settings.

The individual, level, and monolithic builds should still craete the config.h and config.c files.
However, remove the automated insertion of the config.c into the build settings files.
These are now directly added to the build settings files.

2 months agoUpdate: Fix problems discovered in stand alone builds.
Kevin Day [Sat, 13 Dec 2025 05:21:24 +0000 (23:21 -0600)]
Update: Fix problems discovered in stand alone builds.

The cap defines, libraries, and flags are not needed by most of the stand alone build settings.

The example program does not need fll_print.

The fake program is now using more up to date source code files for f_iki (it was missing the eki files).

The fss_read programs were not including the correct config.h files.
This then exposed incomplete config files that are now updated.

2 months agoUpdate: Make level 3 programs more consistent and fix problems.
Kevin Day [Sat, 13 Dec 2025 05:16:38 +0000 (23:16 -0600)]
Update: Make level 3 programs more consistent and fix problems.

The example program does not need fl_conversion or fll_print.

The iki_read program does not need fll_file.

Add missing defines and flags for several program build settings and fix inconsistencies.

2 months agoFeature: Add IKI Read stand alone programs.
Kevin Day [Sat, 13 Dec 2025 05:11:22 +0000 (23:11 -0600)]
Feature: Add IKI Read stand alone programs.

2 months agoFeature: Add FSS Write stand alone programs.
Kevin Day [Sat, 13 Dec 2025 02:30:45 +0000 (20:30 -0600)]
Feature: Add FSS Write stand alone programs.

2 months agoUpdate: FSS Read stand alone build has unnecessary files.
Kevin Day [Sat, 13 Dec 2025 02:18:40 +0000 (20:18 -0600)]
Update: FSS Read stand alone build has unnecessary files.

Remove unnecessary files and ensure that the `f_fss_default_d` macros are available.

2 months agoBugfix: Incorrect disable defines for fll_program_print_error_parameter_cannot_use_wi...
Kevin Day [Sat, 13 Dec 2025 02:04:06 +0000 (20:04 -0600)]
Bugfix: Incorrect disable defines for fll_program_print_error_parameter_cannot_use_with_xor.

2 months agoBugfix: Incorrect disable defines for fl_fss_basic_object_write.
Kevin Day [Sat, 13 Dec 2025 02:02:44 +0000 (20:02 -0600)]
Bugfix: Incorrect disable defines for fl_fss_basic_object_write.

3 months agoCleanup: Remove unused dependencies in fss_read and fss_write projects.
Kevin Day [Fri, 12 Dec 2025 03:11:13 +0000 (21:11 -0600)]
Cleanup: Remove unused dependencies in fss_read and fss_write projects.

3 months agoBugfix: Incorrectly used f_memory_adjust() instaed of f_memory_resize() in fss_read.
Kevin Day [Fri, 12 Dec 2025 03:10:39 +0000 (21:10 -0600)]
Bugfix: Incorrectly used f_memory_adjust() instaed of f_memory_resize() in fss_read.

3 months agoCleanup: Add missing space to endif comment.
Kevin Day [Fri, 12 Dec 2025 03:10:10 +0000 (21:10 -0600)]
Cleanup: Add missing space to endif comment.

3 months agoUpdate: Existing stand alone builds.
Kevin Day [Fri, 12 Dec 2025 03:08:29 +0000 (21:08 -0600)]
Update: Existing stand alone builds.

Change the file structure for the fl_fss source files, breaking it up into two lines.

The status code should use `stand_alone` as the stage.
I was originally trying something different and abandoned the approach but I forgot to change the stage back to `stand_alone`.

3 months agoFeature: Add FSS Read stand alone programs.
Kevin Day [Fri, 12 Dec 2025 03:05:04 +0000 (21:05 -0600)]
Feature: Add FSS Read stand alone programs.

3 months agoUpdate: Remove unnecessary level_0/parse.h include.
Kevin Day [Thu, 11 Dec 2025 06:26:06 +0000 (00:26 -0600)]
Update: Remove unnecessary level_0/parse.h include.

3 months agoFeature: Add Status Code stand alone programs.
Kevin Day [Thu, 11 Dec 2025 06:18:38 +0000 (00:18 -0600)]
Feature: Add Status Code stand alone programs.

3 months agoBugfix: Multiple dependencies files, not handling all of the dependencies.
Kevin Day [Thu, 11 Dec 2025 05:53:29 +0000 (23:53 -0600)]
Bugfix: Multiple dependencies files, not handling all of the dependencies.

A single stand alone project is not properly getting all of the FLL sources when multiple dependency files are specified and they have different dependencies.

This now ensures that all properly named `dependencies` files are processed.

3 months agoBugfix: Incorrect destination path for the custom stand alone build config.h files.
Kevin Day [Thu, 11 Dec 2025 05:42:26 +0000 (23:42 -0600)]
Bugfix: Incorrect destination path for the custom stand alone build config.h files.

This now uses the correct path.

3 months agoUpdate: Bootstrap script, changing the switch to loops and fixing static object build...
Kevin Day [Thu, 11 Dec 2025 05:27:28 +0000 (23:27 -0600)]
Update: Bootstrap script, changing the switch to loops and fixing static object build using shared value.

Using a loop with a counter allows for avoiding the need to manually specify each count.
This makes updating easier in that regard.

The number of values would make one huge loop so break it apart into multiple loops.

The object building for static objects is incorrectly using shared variables when it should instead use static variables.

3 months agoUpdate: Setup all defauls and provide version_file and version_target defaults.
Kevin Day [Wed, 10 Dec 2025 04:34:03 +0000 (22:34 -0600)]
Update: Setup all defauls and provide version_file and version_target defaults.

Make sure all of the build setting defaults are assigned at the start of the load process.

The `bootstrap.sh` script needs to also set the defaults for `version_file` and `version_target`.

3 months agoRefactor: Build mode gcc_13 to flex_arrays to provide a more generic name.
Kevin Day [Wed, 10 Dec 2025 04:23:50 +0000 (22:23 -0600)]
Refactor: Build mode gcc_13 to flex_arrays to provide a more generic name.

The `gcc_13` was a temporary mode and I don't want to have version specific modes.
Replace the mode witha more long term version unspecific name `flex_arrays`.

3 months agoCleanup: Remove unused dependencies in status code program.
Kevin Day [Wed, 10 Dec 2025 03:38:24 +0000 (21:38 -0600)]
Cleanup: Remove unused dependencies in status code program.

I need to vet all programs and remove any unused dependencies.

3 months agoBugfix: Remove parse.h as it is not a dependency of fl_status_string.
Kevin Day [Wed, 10 Dec 2025 03:35:49 +0000 (21:35 -0600)]
Bugfix: Remove parse.h as it is not a dependency of fl_status_string.

3 months agoCleanup: Build settings, move private sources onto a separate line.
Kevin Day [Wed, 10 Dec 2025 03:34:53 +0000 (21:34 -0600)]
Cleanup: Build settings, move private sources onto a separate line.

I need to vet the entire project and do this for all build settings files.

3 months agoFeature: Support additional specialized stand alone build settings and config.h files...
Kevin Day [Wed, 10 Dec 2025 03:33:21 +0000 (21:33 -0600)]
Feature: Support additional specialized stand alone build settings and config.h files in package script.

3 months agoUpdate: Featureless Make build examples to use static and shared specific libc linkage.
Kevin Day [Wed, 10 Dec 2025 03:28:27 +0000 (21:28 -0600)]
Update: Featureless Make build examples to use static and shared specific libc linkage.

3 months agoUpdate: Make c the default build_language in Featureless Make.
Kevin Day [Wed, 10 Dec 2025 03:21:16 +0000 (21:21 -0600)]
Update: Make c the default build_language in Featureless Make.

3 months agoUpdate: Make the stand alone build settings more consistent.
Kevin Day [Tue, 9 Dec 2025 04:02:47 +0000 (22:02 -0600)]
Update: Make the stand alone build settings more consistent.

Bring these up to date with some minor changes in the build settings.

3 months agoFeature: Add FSS Identify stand alone program.
Kevin Day [Tue, 9 Dec 2025 04:02:17 +0000 (22:02 -0600)]
Feature: Add FSS Identify stand alone program.

3 months agoBugfix: The fss_identify program does not use f_directory.
Kevin Day [Tue, 9 Dec 2025 03:23:40 +0000 (21:23 -0600)]
Bugfix: The fss_identify program does not use f_directory.

3 months agoUpdate: Remove build settings that are supplied by defaults.
Kevin Day [Tue, 9 Dec 2025 02:51:42 +0000 (20:51 -0600)]
Update: Remove build settings that are supplied by defaults.

3 months agoUpdate: Copyrights in preparation for early 2026 release.
Kevin Day [Mon, 8 Dec 2025 00:29:20 +0000 (18:29 -0600)]
Update: Copyrights in preparation for early 2026 release.

3 months agoUpdate: The tags file.
Kevin Day [Mon, 8 Dec 2025 00:13:41 +0000 (18:13 -0600)]
Update: The tags file.

3 months agoFeature: Add f_process project.
Kevin Day [Sun, 7 Dec 2025 22:32:48 +0000 (16:32 -0600)]
Feature: Add f_process project.

This provides pidfd functionality that I intend to utilize in future work.

Provide `f_handle_t` for represetning `struct file_handle`.

Several of the functions being represented are not in some libc implementations.
Use `syscall()` to handle these.
Provide defines for enabling/disabling the `syscall()` behavior.
Provide stubs for mocking such functions in unit tests so as to avoid trying to mock `syscall()` itself.

3 months agoUpdate: Use F_device_not rather than F_device for these status codes.
Kevin Day [Sun, 7 Dec 2025 04:24:19 +0000 (22:24 -0600)]
Update: Use F_device_not rather than F_device for these status codes.

3 months agoCleanup: Make F_failure documentation comments more consistent.
Kevin Day [Sun, 7 Dec 2025 04:23:03 +0000 (22:23 -0600)]
Cleanup: Make F_failure documentation comments more consistent.

3 months agoFeature: Additional status codes, F_fresh and F_stale.
Kevin Day [Sun, 7 Dec 2025 02:45:42 +0000 (20:45 -0600)]
Feature: Additional status codes, F_fresh and F_stale.

3 months agoCleanup: Reduce extra blocks in delete and destroy call backs.
Kevin Day [Sat, 6 Dec 2025 21:37:23 +0000 (15:37 -0600)]
Cleanup: Reduce extra blocks in delete and destroy call backs.

Early on I was uncertain at how I should handle this.
I wanted the block design, with anticipation that there would be cases where other code might operate after the first scope ended.
This made for easy and copy and paste (as well as some level of consistency) when switching between different types.

There has been massive changes over time regarding the structure of the delete and destroy functions (which are now call backs).

Most of the blocks end right before the function ends.
Simplify the design in these cases by removing one level of block structure.

3 months agoUpdate: Main program structures to follow consistent styling.
Kevin Day [Sat, 6 Dec 2025 05:03:55 +0000 (23:03 -0600)]
Update: Main program structures to follow consistent styling.

3 months agoUpdate: The API version documentation comments to 0.8.
Kevin Day [Sat, 6 Dec 2025 04:52:20 +0000 (22:52 -0600)]
Update: The API version documentation comments to 0.8.

3 months agoUpdate: Use call back class structure.
Kevin Day [Sat, 6 Dec 2025 04:37:36 +0000 (22:37 -0600)]
Update: Use call back class structure.

I relatively recently started putting the call backs into their own structure.

This brings the status_code project in line with that practice.

3 months agoBugfix: Make sure the bootstrap.sh provide the standard default values.
Kevin Day [Sat, 6 Dec 2025 04:29:32 +0000 (22:29 -0600)]
Bugfix: Make sure the bootstrap.sh provide the standard default values.

This issue is exposed by the removal of numerous values from build settings files to favor the defaults.

3 months agoCleanup: Remove stale and invalid f_utf string files.
Kevin Day [Sat, 6 Dec 2025 03:57:10 +0000 (21:57 -0600)]
Cleanup: Remove stale and invalid f_utf string files.

3 months agoCleanup: Remove build settings objects that specify the default values.
Kevin Day [Sat, 6 Dec 2025 03:21:04 +0000 (21:21 -0600)]
Cleanup: Remove build settings objects that specify the default values.

3 months agoUpdate: Add missing array types for time and date structures.
Kevin Day [Thu, 4 Dec 2025 05:44:57 +0000 (23:44 -0600)]
Update: Add missing array types for time and date structures.

Update the build files.
Add unit tests.

3 months agoBugfix: Bootstrap example script is not returning proper error codes.
Kevin Day [Wed, 3 Dec 2025 05:02:50 +0000 (23:02 -0600)]
Bugfix: Bootstrap example script is not returning proper error codes.

The echo commands result in `$?` being a non-error code.
Just return `1` when printing errors.

3 months agoFeature: Add macro_*_t_intialize_3(array_value, length_value) macros for initializing...
Kevin Day [Wed, 3 Dec 2025 03:32:51 +0000 (21:32 -0600)]
Feature: Add macro_*_t_intialize_3(array_value, length_value) macros for initializing static arrays.

The standard array type structures now have a `macro_*_t_intialize_3(array_value, length_value)` where `length_value` is the `used` value and the `size` is set to `0`.
This designates that the array (or string) is statically allocated (only when the memory address for `array` or `string` is non-NULL).

Switch to use these for static data.

3 months agoRefactor: Code to use { .a = b } notation for initializers and address related problems.
Kevin Day [Wed, 3 Dec 2025 02:52:36 +0000 (20:52 -0600)]
Refactor: Code to use { .a = b } notation for initializers and address related problems.

Change the coding style for the initializers and macro initializers to follow the `{ .a = b }` format.

3 months agoUpdate: Remove todo regarding delete and destroy functions for f_thread_once_t along...
Kevin Day [Mon, 1 Dec 2025 02:04:56 +0000 (20:04 -0600)]
Update: Remove todo regarding delete and destroy functions for f_thread_once_t along with unused tests.

The tests are not used and there are no functions to test.

Remove the `@todo` regarding adding delete and destroy functions for `f_thread_once_t`.
Document the reasons for this in the documentation comments.

3 months agoUpdate: Remove n longer valid *_delete_simple and *_destroy_simple macros.
Kevin Day [Mon, 1 Dec 2025 01:49:06 +0000 (19:49 -0600)]
Update: Remove n longer valid *_delete_simple and *_destroy_simple macros.

3 months agoUpdate: Avoid the use of bool, keeping it to a bare minimum.
Kevin Day [Mon, 1 Dec 2025 01:37:23 +0000 (19:37 -0600)]
Update: Avoid the use of bool, keeping it to a bare minimum.

Use `uint8_t` to both enforce a specific byte size as well as provide the ability for it to be converted into a set of bits if need be, without breaking API or ABI.

Update the tests to use `uint8_t` as well.

3 months agoUpdate: Make *_t_clear() functionality consistent and fix existing problems.
Kevin Day [Sun, 30 Nov 2025 21:56:48 +0000 (15:56 -0600)]
Update: Make *_t_clear() functionality consistent and fix existing problems.

These were being removed at one point in time, resulting in an inconsistent declaration of these macros.
The memory clear macros were also removed, but some of the uses still (incorrectly) remained.

Ensure that these `*_t_clear()` macros are encased in a brace defined block.

Do not use semi-colons at the end of the `*_t_clear()` uses.
Do use semi-colons at the end of `*_t_clear()` direct property assignments.

3 months agoRefactor: Relocate the order of the size and used properties for numerous array struc...
Kevin Day [Sun, 30 Nov 2025 20:58:57 +0000 (14:58 -0600)]
Refactor: Relocate the order of the size and used properties for numerous array structure types.

For further details, see: a6ab23fe1333af5f582f73144ab55d753785aaf0.

3 months agoRefactor: Relocate the order of the size and used properties for string statics,...
Kevin Day [Sun, 30 Nov 2025 14:59:55 +0000 (08:59 -0600)]
Refactor: Relocate the order of the size and used properties for string statics, staticss, dynamics, and dynamicss.

For further details, see: a6ab23fe1333af5f582f73144ab55d753785aaf0.

3 months agoRefactor: Relocate the order of the size and used properties for f_string_static_t...
Kevin Day [Sun, 30 Nov 2025 05:26:10 +0000 (23:26 -0600)]
Refactor: Relocate the order of the size and used properties for f_string_static_t and f_string_dynamic_t.

This will be performed on all types, but I started with `f_string_static_t` and `f_string_dynamic_t` given how much they are being used.

This is done to help reduce potential security problems relating to allocation and buffer overflows.
This is not expected to stop attacks or intentional mis-uses.
This is instead expected to help reduce the attack surface area by reducing the possible harm from coding or runtime mistakes.

The basic structure is:
```pseudocode
  my_type {
    array
    used
    size
  }
```

If an array overflow write occurs, it is mostly likely to write in the `used` structure rather than the `size` (unless the compiler does something different).
This can cause the `used` to become corrupted rather than the `size`.
This essentially makes `used` act as a buffer to the `size` property.
While this is still a bad state, the memory allocation might still get preserved and allow for proper de-allocation without memory leaks.
Stack protection and similar security practices helps make larger overflow writes more likely to get caught and therefore more likely to be stopped before the `size` gets corrupted.

This, of course, does not protect against intentional mis-uses and abuses.

I was holding this off for some time due to the sheer size of the required changes.
However, once a code freeze happens, then I cannot make these API and ABI breaking changes.
Therefore, now is the time for me to make these changes.

Also begin using the `{ .property = value }` notation.

3 months agoUpdate: Remove firewall files that were not migrated yet.
Kevin Day [Sat, 29 Nov 2025 17:42:32 +0000 (11:42 -0600)]
Update: Remove firewall files that were not migrated yet.

These files should now be in the separate kevux_firewall project.

3 months agoUpdate: Add the stand alone build defines for fll_program_print_error_parameter_too_f...
Kevin Day [Sat, 29 Nov 2025 17:40:48 +0000 (11:40 -0600)]
Update: Add the stand alone build defines for fll_program_print_error_parameter_too_few() and fll_program_print_error_parameter_too_many().

3 months agoFeature: Add fll_program_print_error_parameter_too_few() and fll_program_print_error_...
Kevin Day [Sat, 29 Nov 2025 16:05:13 +0000 (10:05 -0600)]
Feature: Add fll_program_print_error_parameter_too_few() and fll_program_print_error_parameter_too_many().

3 months agoUpdate: Remove F_file_type_not_* status codes.
Kevin Day [Fri, 28 Nov 2025 04:17:56 +0000 (22:17 -0600)]
Update: Remove F_file_type_not_* status codes.

Each of these already has a `_not` of the base type, such as:
  - `F_block_not`
  - `F_known_not`

3 months agoUpdate: The directory status codes and use F_directory_descriptor_not instead of...
Kevin Day [Thu, 27 Nov 2025 16:15:51 +0000 (10:15 -0600)]
Update: The directory status codes and use F_directory_descriptor_not instead of F_directory_descriptor.

Add missing "_not" status codes or the inverse.
The `F_directory_closed` is not needed now that there are the "_not" status codes.

Use `F_directory_descriptor_not` instead of `F_directory_descriptor` for invalid directory descriptors.

Replace `F_file_type_not_directory` with `F_directory_not`.

3 months agoUpdate: Use F_file_descriptor_not instead of F_file_descriptor for invalid file descr...
Kevin Day [Thu, 27 Nov 2025 14:26:15 +0000 (08:26 -0600)]
Update: Use F_file_descriptor_not instead of F_file_descriptor for invalid file descriptors.

The "_not" suffixes were added later in in the project after some of these status codes were established.
This begins the process of using the "_not" suffixes for representing invalid states, variables, etc...

The `F_file_descriptor` should instead be `F_file_descriptor_not` for invalid file descriptor errors.

3 months agoUpdate: Make more socket error codes more granular, add additional status codes,...
Kevin Day [Wed, 26 Nov 2025 23:28:18 +0000 (17:28 -0600)]
Update: Make more socket error codes more granular, add additional status codes, rename some others.

This particularly adds an underscore between file and system to be more proper.

3 months agoUpdate: Make more socket error codes more granular, add additional status codes,...
Kevin Day [Wed, 26 Nov 2025 19:08:04 +0000 (13:08 -0600)]
Update: Make more socket error codes more granular, add additional status codes, rename some others.

3 months agoUpdate: Make some socket error codes more granular and add additional status codes.
Kevin Day [Wed, 26 Nov 2025 06:51:54 +0000 (00:51 -0600)]
Update: Make some socket error codes more granular and add additional status codes.

Some of the socket status codes should be more granular given the specific behavior relating to networking.
Add error printing associated with this.
I anticipate more changes like this based around networking.

Add clock status codes.

3 months agoUpdate: FLL Error should handle more standard network error codes.
Kevin Day [Wed, 26 Nov 2025 03:49:04 +0000 (21:49 -0600)]
Update: FLL Error should handle more standard network error codes.

Also add additional text "occurred" when an unhandled error gets printed by FLL Error.

3 months agoCleanup: Abstruse documentation comments.
Kevin Day [Tue, 25 Nov 2025 23:58:19 +0000 (17:58 -0600)]
Cleanup: Abstruse documentation comments.

Ensure the details on what is and is not de-allocated is described in the documentation comments.
Also alphabetize this list.

3 months agoBugfix: The asctime_r() function appends a new line.
Kevin Day [Mon, 24 Nov 2025 02:27:17 +0000 (20:27 -0600)]
Bugfix: The asctime_r() function appends a new line.

Ensure that the new line is not counted as part of the date string.

3 months agoBugfix: The fss_write is missing the recently added debug mode.
Kevin Day [Sun, 23 Nov 2025 03:51:51 +0000 (21:51 -0600)]
Bugfix: The fss_write is missing the recently added debug mode.

This causes the build system to fail to compile when using the default build modes.
My standard build process did not catch this because I was using explicitly specified build modes.

3 months agoBugfix: Incorrect index usages in f_console_parameter_process().
Kevin Day [Sat, 22 Nov 2025 16:12:20 +0000 (10:12 -0600)]
Bugfix: Incorrect index usages in f_console_parameter_process().

Switch to use a pointer called `current` to simplify the code a little.

The unicode charater processing is accessing index `i` out of scope.

The process short list is accessing index `i` out of scope.

Utilize the `current` pointer to help better manage avoiding accessing index `i` out of scope.

3 months agoCleanup: Add missing documentation on wrap_up_stop.
Kevin Day [Sat, 22 Nov 2025 16:10:37 +0000 (10:10 -0600)]
Cleanup: Add missing documentation on wrap_up_stop.

3 months agoCleanup: Add additional comment for f_console_result_found_d documentation.
Kevin Day [Sat, 22 Nov 2025 04:37:20 +0000 (22:37 -0600)]
Cleanup: Add additional comment for f_console_result_found_d documentation.

3 months agoFeature: Additional status codes, F_case, F_match, F_miss, and F_word.
Kevin Day [Fri, 21 Nov 2025 04:56:16 +0000 (22:56 -0600)]
Feature: Additional status codes, F_case, F_match, F_miss, and F_word.

Along with their inverses:
- F_case_not
- F_match_not
- F_miss_not
- F_word_not

3 months agoBugfix: Add missing f_string_format_sentence_end_basic_s definition.
Kevin Day [Thu, 20 Nov 2025 04:33:34 +0000 (22:33 -0600)]
Bugfix: Add missing f_string_format_sentence_end_basic_s definition.

3 months agoUpdate: Remove firewall program.
Kevin Day [Mon, 17 Nov 2025 04:28:20 +0000 (22:28 -0600)]
Update: Remove firewall program.

The firewall program is being moved into the kevux-tools repository or in its own repository.
It will not be in the 0.8.x releases of the FLL project.

3 months agoUpdate: Next minor and micro version (0.8.0).
Kevin Day [Mon, 17 Nov 2025 04:10:15 +0000 (22:10 -0600)]
Update: Next minor and micro version (0.8.0).

The following are the commands that I ran to make this change:
  # find build/ level_? specifications/ documents/ licenses/ -type f -exec sed -i -e 's|0\.7\.3|0.8.0|g' -e 's|^version_micro 3|version_micro 0|g' -e 's|^version_minor 7|version_minor 8|g' '{}' ';'
  # find level_3/ -name *.h -exec sed -i -e 's|_program_version_micro_s F_string_ascii_3_s|_program_version_micro_s F_string_ascii_0_s|g' -e 's|_program_version_micro_s_length F_string_ascii_3_s_length|_program_version_micro_s_length F_string_ascii_0_s_length|g' '{}' ';'
  # find level_3/ -name *.h -exec sed -i -e 's|_program_version_minor_s F_string_ascii_7_s|_program_version_minor_s F_string_ascii_8_s|g' -e 's|_program_version_minor_s_length F_string_ascii_7_s_length|_program_version_minor_s_length F_string_ascii_8_s_length|g' '{}' ';'
  # find level_3/ -name *.h -exec sed -i -e 's|API Version: 0.7|API Version: 0.8|g' '{}' ';'
  # find level_3/ -type f  -name *.1  -exec sed -i -e 's|April 2025|November 2025|g' '{}' ';'
  # find level_3/ -type f  -name *.5  -exec sed -i -e 's|April 2025|November 2025|g' '{}' ';'
  # sed -i -e 's|version_micro 3|version_micro 0|g' build/*/settings build/stand_alone/*.settings level_*/*/data/build/*settings*
  # sed -i -e 's|version_minor 7|version_minor 8|g' build/*/settings build/stand_alone/*.settings level_*/*/data/build/*settings*

3 months agoUpdate: The FLL tags file with the latest code. 0.7.3
Kevin Day [Wed, 12 Nov 2025 06:10:44 +0000 (00:10 -0600)]
Update: The FLL tags file with the latest code.

3 months agoUpdate: Utilize the F_status_debug_source_d for handling the errors.
Kevin Day [Wed, 12 Nov 2025 04:33:02 +0000 (22:33 -0600)]
Update: Utilize the F_status_debug_source_d for handling the errors.

This simplifies some of the logic and code.

However, there are some disadvantages of doing this.
One such disadvantage is losing the specific function that has failed.
The location in the source file should be sufficient, if not ideal.

Address issues where the `debug` mode is not being specified in some programs.

4 months agoUpdate: Utilize the debug mode, changing the error printing functions.
Kevin Day [Tue, 11 Nov 2025 03:18:05 +0000 (21:18 -0600)]
Update: Utilize the debug mode, changing the error printing functions.

The `function` parameter is now replaced with `debug`.
There are several changes to the error printing functions to accommodate this.

A new function `fll_error_print_debug()` is added for handling the printing of this debug parameter.

Update the programs to ensure that they compile with these changes.
A follow up commit is required to fully and properly utilize this debug parameter.

The Featureless Make had to be updated further to get it to compile.
This fixes incorrect documentation that I observed.
The debug and function conversions are only enough to get things to compile.
This will still need a follow up commit to properly change everything.

4 months agoUpdate: Add the debug mode to the build settings.
Kevin Day [Mon, 10 Nov 2025 04:43:18 +0000 (22:43 -0600)]
Update: Add the debug mode to the build settings.

4 months agoFeature: Additional status codes, F_pretty, F_ugly, etc...
Kevin Day [Sun, 9 Nov 2025 04:51:42 +0000 (22:51 -0600)]
Feature: Additional status codes, F_pretty, F_ugly, etc...

These status codes are added:
  - F_backward
  - F_backward_fast
  - F_backward_not
  - F_backward_slow
  - F_forward
  - F_forward_fast
  - F_forward_not
  - F_forward_slow
  - F_mute
  - F_mute_not
  - F_pretty
  - F_pretty_not
  - F_ugly
  - F_ugly_not

The pretty and ugly ones are based on the idea of prettify and uglify code concepts (such as prettify JSON or uglify JSON).

4 months agoFeature: Support generating debug souce and line as well as debug mode.
Kevin Day [Sun, 9 Nov 2025 04:25:10 +0000 (22:25 -0600)]
Feature: Support generating debug souce and line as well as debug mode.

Prrovide a new build mode called `debug`.
Apply it consistently across all build settings files.

Update the build settings file to be more consistent in regards to modes and related comments.

Provide new debug option called `F_status_debug_source_d`.
This provides a way to get the current source file, line, and possibly function.
This should help with debugging.
This was first implemented in the controller program and I liked it enough to bring it in here.

The error printing functions are currently not updated.
I will have to decide if I want to get rid of the old way of using the hard-coded and mapped function names.
The `_en_status_debug_` allows for enabling the debug printing (passing `-D_en_status_debug_` to a compiler).
The `_di_f_status_debug_d_` is also available for providing the standard define wrapper.

4 months agoUpdate: Have thread condition wait functions return F_condition on success.
Kevin Day [Thu, 6 Nov 2025 05:57:46 +0000 (23:57 -0600)]
Update: Have thread condition wait functions return F_condition on success.

This provides a more accurate status code.

4 months agoUpdate: Provide more granular error status codes in the thread full functions.
Kevin Day [Sun, 2 Nov 2025 22:03:15 +0000 (16:03 -0600)]
Update: Provide more granular error status codes in the thread full functions.

The LIBC pthread implementations fail to provide a way to truly verify that thread data is properly allocated or not.

The full thread types have two different thread related memory freeing functions.
If the first function fails, then the second structure is still allocated.

The previous behavior provided no way to distinguish between the two different failures.
These more granular status codes allow for such distinction now.

This allows the caller to manually try to de-allocate other parts even if the first de-allocation failed.

4 months agoFeature: Add additional status codes, F_read_write codes.
Kevin Day [Sat, 1 Nov 2025 15:42:26 +0000 (10:42 -0500)]
Feature: Add additional status codes, F_read_write codes.

- F_read_write
- F_read_write_execute
- F_read_write_execute_not
- F_read_write_execute_only
- F_read_write_not
- F_read_write_only