]> Kevux Git Server - fll/log
fll
8 hours agoBugfix: Incomplete and invalid bootstrap.sh settings. 0.8
Kevin Day [Thu, 23 Apr 2026 03:14:22 +0000 (22:14 -0500)]
Bugfix: Incomplete and invalid bootstrap.sh settings.

The build settings in `bootstrap.sh` is incomplete or invalid for various reasons.

Some of the build settings are now consistently present in the Multi value Objects array loop.

The `build_sources_script-mode` is now being loaded.

Many of the build settings are now properly being populated using the correct variable or settings names.

The `bootstrap_id()` is now being called where the `bootstrap_id()` call has been missing entirely.

Remove build settings that do not actually exist in the standard (like `defines_object_program`).

The `has-flags_library-mode` is now being properly used.

31 hours agoBugfix: The bootstrap script is overwriting existing multi-valued settings.
Kevin Day [Wed, 22 Apr 2026 03:47:00 +0000 (22:47 -0500)]
Bugfix: The bootstrap script is overwriting existing multi-valued settings.

This happens when there are multiple modes specifying the same value.
The multi-valued settings must have the value appended and not overwritten or removed.

Specifically, the setting is designated as not populated when a mode specifies a setting and then is followed by another mode that does not specify this setting.

Resolve this by adding checks if the setting is already designated as specified.
If the settings is not specified, then and only then declare it as unspecified.

31 hours agoBugfix: The bootstrap script improperly loads settings resulting in incorrectly faile...
Kevin Day [Wed, 22 Apr 2026 03:20:18 +0000 (22:20 -0500)]
Bugfix: The bootstrap script improperly loads settings resulting in incorrectly failed builds.

I suspect this situation happened due to various changes over time without a thorough review of everything that needs to be changed.

Reserve the variable index position of 0 to designate not found.
Update all checks to then check for `key` to not be 0 after calling `bootstrap_id()`.
This fixes problems where the position after the last valid index might get set and used as a value.
When the position after the last valid index is read, it could read these values even if it should report not found.

The index position checks are updated to more properly check and assign the index using the appropraite `has-*` and `has-*-mode` vs the normal value `*` and `*-mode`, respectively.

Update all index position checks to check the `has-*` and `has-*-mode` accordingly.
This change fixes the primary problem that is causing the build to fail due to incorrect variable loading.
The `has-*` and `has-*-mode` checks checks for existence.
Then and only then should the actual respective values be used.
In particular, the `*-mode` settings should only be assigned if the respective `has-*-mode` is set to `yes`.

This bug is observed in my **TKIS** script development where the `path_headers` is being treated as an empty string despite being designated as `fll`.
The **Featureless Make** program compiles properly but not this `bootstrap.sh` script.
The **TKIS** scripts are expected to be run on a system without the **FLL** project at all.
I have not observed this problem because I have been using the **Featureless Make** directly for years now.
The packaging and unit tests scripts provided by this project are coincidentally not triggering any obvious errors with the improper behavior.

If the existing scripts were working before then these changes might cause problems with those scripts.
I will follow this up and investigate and fix these issues.
Running the **Featureless Make** on these works and so these changes likely expose existing problems rather than causes regressions.

I would love to find a way to reduce the repetitive assignments to variables in a safe/sane manner.
This would require more research on my part, if it is even possible.
I don't plan on doing such research any time soon and so I am continuing to consider the bootstrap script design as tolerable.

Additional Changes:
  - Simplify logic in for loops for `bootstrap_id()` by combining all of the passes into a single pass (The actual index values are irrelevant and so restructuring/reordering caused by this is not a problem).
  - Ensure the key is an integer in all cases.
  - Remove unnecessary `key` variable assignments.
  - Remove some redundant assignments.

2 days agoBugfix: The fss_embedded_list_read and fss_embedded_list_write are missing from stand...
Kevin Day [Tue, 21 Apr 2026 02:18:51 +0000 (21:18 -0500)]
Bugfix: The fss_embedded_list_read and fss_embedded_list_write are missing from stand alone builds.

I apparently overlooked and completely forgot to add this.

Add the build settings and the `config.h` settings for both the read and write programs for FSS Embedded List.

2 days agoBugfix: Add missing define to private_fl_fss_list_write_object_trim().
Kevin Day [Tue, 21 Apr 2026 02:17:54 +0000 (21:17 -0500)]
Bugfix: Add missing define to private_fl_fss_list_write_object_trim().

The `fl_fss_embedded_list_object_write()` depends on `private_fl_fss_list_write_object_trim()`.

2 days agoBugfix: Out of place build settings files in stand alone builds.
Kevin Day [Tue, 21 Apr 2026 02:05:07 +0000 (21:05 -0500)]
Bugfix: Out of place build settings files in stand alone builds.

The regular files are being included in the stand alone builds.
This is confusing and can lead to build failures due to selecting invalid build settings files.

Remove the build settings files that must not exist in stand alone builds.

7 weeks agoBugfix: Invalid seeked value on failure in f_file_seek().
Kevin Day [Thu, 5 Mar 2026 02:57:27 +0000 (20:57 -0600)]
Bugfix: Invalid seeked value on failure in f_file_seek().

The previous commit 6dc28ff5673c86d8d6042b47538c2f66e7726717 left out the `seeked` NULL check before assigning a value.

7 weeks agoBugfix: Invalid seeked value on failure in f_file_seek().
Kevin Day [Wed, 4 Mar 2026 04:41:14 +0000 (22:41 -0600)]
Bugfix: Invalid seeked value on failure in f_file_seek().

The `lseek()` can return a negative value.

Use a local variable to get the `lseek()` value.
This then allows for the `seeked` to be NULL.

Change the `seeked` parameter to be optional and when set to NULL then it is not assigned.
This neither breaks API nor ABI.

The `seeked` value is only assigned when the result is `-1`.
The POSIX standard is inconsistent about negative return values.
In the case of `lseek()`, only `-1` is technically an error.

7 weeks agoBugfix: Missing quote in error message for invalid parameter for file error.
Kevin Day [Wed, 4 Mar 2026 03:51:52 +0000 (21:51 -0600)]
Bugfix: Missing quote in error message for invalid parameter for file error.

2 months agoBugfix: Handle more cases of IPv6 addresses not being properly identified.
Kevin Day [Fri, 30 Jan 2026 05:44:00 +0000 (23:44 -0600)]
Bugfix: Handle more cases of IPv6 addresses not being properly identified.

I learned that `::` and `::/24` addresses are valid.

Add a few more test cases.

2 months agoCleanup: Replace literal characters with defined string characters in f_network_is_ip...
Kevin Day [Thu, 29 Jan 2026 02:39:42 +0000 (20:39 -0600)]
Cleanup: Replace literal characters with defined string characters in f_network_is_ip_address().

Literal characters like `'a'` should not be used.
Instead, things like `f_string_ascii_a_s.string[0]`.

2 months agoBugfix: Invalid IPv6 addressdetection and improve IPv4 address detection in f_network...
Kevin Day [Wed, 28 Jan 2026 05:44:03 +0000 (23:44 -0600)]
Bugfix: Invalid IPv6 addressdetection and improve IPv4 address detection in f_network_is_ip_address().

The `f_network_is_ip_address()` is not properly identifying bracketed IPv6 addresses.

Digits to the left of double colons `::` should be supported.
The forward slash `/` should be allowed after double colons `::`.
Ending in a double colon `::` is in fact valid in situations, such as with `::/0`.

Make the IPv6 logic easier to follow by adding additional comments.
Also rename `count` to `digits` to further make the code logic more understandable.

Improve IPv4 detection by checking if the number is between 0 and 255, inclusively.

Add more unit tests to better catch the newly identified and now resolved problems.
Update unit tests to use the newer `macro_f_string_static_t_initialize_2()` instead of `macro_f_string_static_t_initialize_1()`.
Add additional comments to help identify rows.

2 months agoBugfix: Incorrect documentation for f_network_from_ip_string().
Kevin Day [Tue, 27 Jan 2026 02:49:06 +0000 (20:49 -0600)]
Bugfix: Incorrect documentation for f_network_from_ip_string().

The `f_network_from_ip_string()` is incorrectly referencing IPv6 bracket notation.

Make it clear that ports are not supported.

Make it clear that IPv6 bracket notation is not supported.

Clean up the `f_network_from_ip_string()`, removing unnecessary nesting.

3 months agoBugfix: Do not include private header when installing.
Kevin Day [Thu, 22 Jan 2026 03:20:12 +0000 (21:20 -0600)]
Bugfix: Do not include private header when installing.

The `private-console.h` must not be added to the `build_sources_headers` setting.
Adding it to the `build_sources_headers` sets it up to be installed.

3 months agoCleanup: The help for -D should be printing +D instead of +D in the parenthetical...
Kevin Day [Tue, 13 Jan 2026 02:14:40 +0000 (20:14 -0600)]
Cleanup: The help for -D should be printing +D instead of +D in the parenthetical comment.

3 months agoFeature: Add support for debug mode in test script.
Kevin Day [Tue, 13 Jan 2026 02:11:04 +0000 (20:11 -0600)]
Feature: Add support for debug mode in test script.

The test script should also support the debug mode.
This is not to be confused with running the build process in debug mode itself (the `+D` / `++debug` setting).

3 months agoBugfix: Static builds with '../' relative paths for objects do not build correctly.
Kevin Day [Mon, 12 Jan 2026 02:47:31 +0000 (20:47 -0600)]
Bugfix: Static builds with '../' relative paths for objects do not build correctly.

Add new function that handles converting the relative path with '../' with one that has no '../'.
Use this to build the object paths by adding the full relative directory path for the build files.

Note that this could be a problem with possible directory structure conflicts in some situations.

Utilize a new cache `cache_relative` for the processing of the relative path.

Add additional debug reporting to improve the error reporting details with the programs, like `ar`, fail.

Add note how future FLL versions (0.9 and later) should have something like `fl_path_canonical()`.

I need to also follow this commit up with an investigation to see if any of these `../` can get outside the project root.
There is a need for a project root parameter for situations where different paths are specified, such as specifying `--sources`.
Alternatively, I might have to restrict all `../` to the sources directory and then move all of my `tests/` directory files within the `sources/` directoreis for all projects.

This also gives me reason to consider adding IKI support to enhance the build settings.
I am on the fence on actually doing this or not.

3 months agoBugfix: The fl_path_canonical() is not consistently resetting canonical.used.
Kevin Day [Sun, 11 Jan 2026 22:26:48 +0000 (16:26 -0600)]
Bugfix: The fl_path_canonical() is not consistently resetting canonical.used.

The `fl_path_canonical()` is replacing the `canonical` variable rather than appending to it.
However, when `path.used` is 0, then the current path is appended without resetting `canonical.used` to 0.

Ensure that `canonical.used` is always set to 0 to enforce replacement.

Add explicit documentation comment making it clear that this function performs a replacement rather than an append.

3 months agoBugfix: Actually install man files.
Kevin Day [Sun, 11 Jan 2026 02:26:32 +0000 (20:26 -0600)]
Bugfix: Actually install man files.

I setup the man files to be used along with the `0.8.0` release.
I completely forgot to actual add the configuration to move the man files into the proper location so that they can be installed.

Add the appropriate build settings that designate the documentation file to be installed.

3 months agoFeature: Add support for debug mode in bootstrap example script.
Kevin Day [Sat, 10 Jan 2026 22:46:14 +0000 (16:46 -0600)]
Feature: Add support for debug mode in bootstrap example script.

I use this script a lot for convenience.
Add support for enabling debug mode when building via the `-D` parameter.

3 months agoBugfix: Non-debug mode error printing prints incorrectly.
Kevin Day [Sat, 10 Jan 2026 22:44:03 +0000 (16:44 -0600)]
Bugfix: Non-debug mode error printing prints incorrectly.

A character is incorrectly printed when debug mode is disabled.

If the first character in the debug string is NULL, then do not print the wrapping parenthesis.

3 months agoUpdate: Next micro version (0.8.1).
Kevin Day [Fri, 9 Jan 2026 01:11:49 +0000 (19:11 -0600)]
Update: Next micro version (0.8.1).

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\.8\.0|0.8.1|g' -e 's|^version_micro 0|version_micro 1|g' '{}' ';'
  # find level_3/ -name *.h -exec sed -i -e 's|_program_version_micro_s F_string_ascii_0_s|_program_version_micro_s F_string_ascii_1_s|g' -e 's|_program_version_micro_s_length F_string_ascii_0_s_length|_program_version_micro_s_length F_string_ascii_1_s_length|g' '{}' ';'
  # sed -i -e 's|version_micro 0|version_micro 1|g' build/*/settings build/stand_alone/*.settings level_*/*/data/build/*settings*

3 months agoUpdate: Use 32-bit for f_number_unsigned_t on i386, i486, i586, and i686. development 0.8.0
Kevin Day [Wed, 24 Dec 2025 19:59:15 +0000 (13:59 -0600)]
Update: Use 32-bit for f_number_unsigned_t on i386, i486, i586, and i686.

This only checks the standard GNU architecture macros.
Other systems that use different means of communication architecture shall need changes.

3 months agoUpdate: The tags file.
Kevin Day [Wed, 24 Dec 2025 14:23:48 +0000 (08:23 -0600)]
Update: The tags file.

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

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

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

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

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

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

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

4 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`.

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

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

4 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`.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4 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`.

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

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

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

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

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

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

4 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`.

4 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`.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4 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().

4 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().

4 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`

4 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`.