The Featureless Linux Library development version 0.5.10 is released.

The primary focus of the 0.5.10 release is for releasing the 0.6.0 stable release.

Unit tests for all level_0 projects now exists (except for f_type which is not planned to ever have unit tests).

Many problems and consistency issue have been identified by the written unit tests and fixed. The unit tests, however, are neither complete nor thorough. There are almost no unit tests for level_1, level_2, or level_3 projects.

I noticed that the Unicode processing code is incomplete as of the 0.5.9 release. The available Unicode processing functions are now complete. A massive amount of unit tests now exist for testing the Unicode.

There are now over 3000 unit tests for all code in this repository.

Security Fixes:

  • FLL: Floating point exception due to incorrect number type used in conversion function.
  • FLL: The realpath() calls malloc() and free() is not called (memory leak).
  • FLL: Incorrect pointers result in incomplete memory deallocation in f_directory.
  • Fake: Add missing NULL at the end of string.
  • Fake: Add missing parameter checks and rename "data" to "custom".
  • Fake: Wrong variable passed resulting in invalid read and writes in Fake.

Regression Fixes:

  • Controller: Remove invalid validation block.

Features:

  • FLL: Provide simple script for assisting in the mass generation of Unicode handling code.
  • FLL: Provide rebuild option in package script.
  • IKI Read: The iki_read program should support wrapping a variable value.
  • IKI Read: The iki_read program should support a more generalized substitution process called "replace".
  • UTF8: Add missing functionality allowing the utf8 program to convert back to binary data with invalid codepoints.

Bug Fixes:

  • FLL: Signal code is not being set when accepted signal is received.
  • FLL: Problems and clean ups exposed when writing f_thread unit tests.
  • FLL: The < 0xc2 test is supposed to be against the first byte rather than the second.
  • FLL: A typo resulting in treating < 0xc3 as invalid UTF-8 when it is instead < 0xc2.
  • FLL: Add missing endianness check to f_convesion.
  • FLL: Uppercase 'T' needs to be supported (fl_conversion).
  • FLL: Problems exposed by unit tests in f_utf.
  • FLL: Incorrect 4-width characters are generated.
  • FLL: Problems exposed by unit tests for f_signal.
  • FLL: Problems exposed by unit tests in f_file.
  • FLL: Problems exposed by unit tests in f_conversion.
  • FLL: When any of -c, -p, or -s is the last parameter in test.sh no error is thrown.
  • FLL: Package building test failures do not properly fail.
  • FLL: Fix problems exposed by unit tests in f_status.
  • FLL: Incorrect variable used results in F_parameter error.
  • FLL: The print functions are not printing the last letter in certain cases.
  • FLL: Trimmed printing is not working as expected.
  • FLL: Fix problems exposed by unit tests in f_print.
  • FLL: The quotes are always being defined even when there are no quotes in the FSS read functions.
  • FLL: Problems exposed by unit tests (f_socket).
  • FLL: Remove extra zero from hex-digit (f_utf).
  • FLL: Fix problems exposed by unit tests (fll_status_string).
  • FLL: Problems exposed by unit tests and do some relevant code style clean up (f_execute).
  • FLL: Add missing return value handling in f_fss.
  • FLL: Incorrect and missing initializer macros in f_fss.
  • FLL: The FSS object write functions don't handle all newlines.
  • FLL: Fixes to f_path of problems exposed by unit tests.
  • FLL: Invalid read in f_file_stream_read_until().
  • FLL: NULL is a valid character, causing utf8 not to properly print NULL characters.
  • FLL: The FILE type may not have a known storage size and use F_type_output_d.
  • FLL: Problems in f_file functions exposed by unit tests.
  • FLL: Problems in f_file regarding file mode exposed by unit tests.
  • FLL: The f_file_is_at() function is not properly comparing the file type.
  • FLL: Three-width UTF-8 characters are improperly being detected as unassigned.
  • FLL: Unicode characters are not printing correctly.
  • FLL: Fix problems exposed by f_file project tests.
  • FLL: Memory handling related to or exposed by f_directory unit tests.
  • FLL: Invalid memory deletion.
  • FLL: For f_file, use off_t, pre-test for EOF or error, use sizeof(f_char_t), and use size_t rather than ssize_t.
  • FLL: The f_capability should accept f_string_constant_t rather than f_string_static_t.
  • Byte Dump: The byte_dump --first and --last are not always working as expected.
  • Byte Dump: Trailing Unicode sequences that get cut off before the encoding is completed improperly display.
  • Controller: Entry file not found when --settings is used.
  • Controller: Incorrect rule name for controller boot settings file.
  • Controller: When compiled as "init" the controller program does not use the correct paths.
  • Fake: IKI variable substitution in fake doesn't always expand properly.
  • Fake: Use '%Q' rather than '%S' when printing error.prefix and add missing error.prefix.
  • Fake: Environment variables in fake are not being expanded.
  • Fake: The fake program should not require the data directory when explicit fakefile or settings files are specified.
  • Fake: Defaults should not be applied when an empty Object is specified.
  • FSS Identify: The fss_identify needs the latest version of f_utf_is_digit().
  • UTF8: Last character of file after conversion from code point is not printed by utf8 program.
  • UTF8: Combining and Width detection for utf8 are not properly printing.

Updates:

  • FLL: Improve design in f_conversion to be safer when handling variables allowed to be replaced.
  • FLL: Example bootstrap script now supports building all programs.
  • FLL: White space function changes.
  • FLL: Use "decimal" instead of "digit" (f_conversion).
  • FLL: The f_utf project regarding digits and perform other clean ups.
  • FLL: Use a regular int instead of uint8_t for counting digit in conversion function.
  • FLL: Add script for generating Unicode Codepoints from integers.
  • FLL: Generate Unicode script to support generating test data.
  • FLL: Finish adding Unicode symbol handling code.
  • FLL: Rename f_thread_signal() to f_thread_signal_write().
  • FLL: Implement Math Symbol Category.
  • FLL: Handle more cases of combining characters following white space.
  • FLL: Add Unicode Symbols for currency and modifiers and minor comment clean ups.
  • FLL: The f_utf punctuation codes.
  • FLL: Tweak endiannes for f_utf_char_t.
  • FLL: Use F_utf_not instead of F_utf and other resulting changes.
  • FLL: Rewrite the f_serialize functions.
  • FLL: The f_limit project is out of date.
  • FLL: Add missing state.flag assignment in f_state_t_clear macro and fix syntax practice in initializer.
  • FLL: Add missing function f_path_is_absolute() and fix existing f_path_is_*() functions.
  • FLL: Utilize the state.flag to allow for fss read to not fail out on invalid UTF-8 code sequence and fix naming problems.
  • FLL: Utilize the state.flag to allow for iki read to not fail out on invalid UTF-8 code sequence.
  • FLL: The f_utf_is_* functions should be more specific on return state for F_failure.
  • FLL: Add pictures of the Kohlrabi that I have decided to use to represent the FLL project.
  • FLL: Remove unused code, cast (char) to (unsigned int) for array indexes, and fix bitwise problem.
  • FLL: Add licenses to text files and clarify OSL text.
  • FLL: Redesign f_file functions to not need struct stat passed and other improvements.
  • FLL: Improve the logic for the read link f_file functions.
  • FLL: Add missing checks to f_file_link_hard_at() and use F_file_descriptor.
  • FLL: Implement file statistics flag enumeration, dereferencing/no-dereferencing, and also use F_stream_not.
  • FLL: Simplify build settings files.
  • All FSS Read Programs: Improve read program logic to allow for catching interrupts during file read.
  • Controller: Add note about ulimit privileges potentially causes failure of example controller rules.
  • Fake: Add additional checks just in case execution is attempted with both program name and arguments have no data.
  • Fake: The featureless make should default to 'make' mode.
  • Fake: The fake program should check file existence when clean is combined with another command like build or make.
  • Fake: The fake "build" fakefile Object needs to support modes and fix a related bug.
  • Fake: Use off_t instead of f_array_length_t to match uses in functions like f_file_size().
  • Fake: The fake program should show the fakefile or setting being used when building.
  • Fake: The example project build settings and fakefiles.
  • FSS Embedded List Read: Remove extra error print in fss_embedded_list_read.
  • IKI Write: Have iki_write use form-feed rather than end of line character for pipe input.

Check out the project on the FLL release page.

Kevin Day