The Featureless Linux Library stable version 0.6.2 is released.

This release contains several security and bug fixes. There are also several improvements to the building and packaging scripts.

Added the following stand_alone programs:

  • byte_dump
  • firewall

The bootstrap.sh and package.sh scripts have received some needed improvements. The bootstrap.sh script now processes more of the build settings and then also more appropriately processes the additional modes. The bootstrap.sh now more properly processes the -s/--settings parameter option. The package.sh script is now more versatile, allowing for additional dependencies files and optionally prepending a string to each generated package directory.

Adding the referenced stand_alone programs revealed quite a bit of minor mistakes in the macros, defines, and some dependencies. Many of these might be considered breaking API changes but fixing these is deemed necessary.

The flagship program is Featureless Make. All projects and programs now have a fakefile for building as they should have had.

Problems with the Unicode handling have been identified and fixed. The FLL and implementing programs like byte_dump and utf8 should now have more accurate handling of Unicode characters.

The project now contains a generated list of all disable defines for each project under the build/disable directory. Use these to construct all the needed disable defines to reduce the amount of unneeded code. These are now used when building the stand_alone programs.

The documents and specifications have seen some major clean up. All of the documents and specifications should now utilize IKI. The Time and EpochTime standard written a while back now have formal documents and specifications. The Time and EpochTime documents and specifications are now at the top-level directory of the source code.

Documentation explicitly describing the lossy allocation strategy used by this project is now provided.

The following are changes since the 0.6.1 stable release.

Security Fixes:

  • FLL: Invalid access when calling fake without make or build.
  • FLL: Invalid write in FSS functions and ensure a reset used length on error.

Features:

  • FLL: Add support for additional dependencies and settings files in level_3 (in the package.sh script).
  • FLL: Add support for a prepending a prefix to build directory names (in the package.sh script).
  • Featureless Make: Add import Object to fakefile and settings specifications (Support is not implemented in 0.6.x).

Bug Fixes:

  • FLL: Incomplete UTF-8 zero-width detection, particularly for combining characters.
  • FLL: Add missing f_type_array dependency.
  • FLL: The level_0 console should use private functions.
  • FLL: The fss_payload_write should not allow payload to be something other than last when specified.
  • FLL: Incorrect ifndef defines for some functions and structures.
  • FLL: Add missing ifdefs for f_file_stat() and f_file_stat_at().
  • FLL: The private is_zero_width function is also needed by the is_graph functions.
  • FLL: The f_environment_max_length should be f_environment_max_length_d.
  • FLL: Some of the level checking defines have an s that should not be there.
  • FLL: _di_string_ascii_s_ is missing the _f.
  • FLL: The bootstrap script needs to treat -s/--settings as a possible path.
  • FLL: The bootstrap script needs to support settings-specific built files.
  • FLL: FSS write functions should use quote when passed rather than f_fss_delimit_quote_single_s.
  • FLL: _GNU_SOURCE should be wrapped in an ifndef.
  • FLL: The -mode functionality is incomplete and incorrect in the bootstrap.sh script.
  • Byte Dump: Incorrect spacing when combining --unicode with other digit displays.
  • Byte Dump: Invalid print of character when a placeholder should be printed in byte_dump.
  • Featureless Make: The IKI variables that expand reserved words should expand into multiple parameters.
  • Firewall: Add missing dependencies and remove incorrect library from firewall program.
  • FSS Payload Write: The first character never gets printed for payload Content.
  • Multiple Programs: The type_array is probably a dependency for most of these.
  • Multiple Programs: Imprecise desciption for --partial.

Refactors:

  • None.

Updates:

  • FLL: All projects should have a fakefile.
  • FLL: Fix and improve FSS unit test regarding zero-width.
  • FLL: FSS and IKI specifications now support backticks for quoting similar to single and double quotes (Support is not implemented in 0.6.x).
  • FLL: Add pre-built define files for stand alone use.
  • FLL: Wrap the conversion digits defines in _di_f_conversion_digits_d_.
  • FLL: The ifndef wrappers should end in _t_ to represent it wrapping a type.
  • FLL: The fake stand_alone build defines.
  • FLL: The disable defines files need to be updated when defines change.
  • FLL: Remove unused test mode and add clang mode to stand_alone builds.
  • FLL: Style guide documentation.
  • FLL: The status code wrapping defines should end in _e.
  • FLL: The _di_compiler_attributes_ should be _di_compiler_attributes_d_.
  • FLL: The status code wrapping global constant string wrapping defines should end in _s.
  • FLL: The define _di_f_array_t_ should be _di_f_array_length_t_.
  • FLL: Add mising _d in wrapping defines.
  • FLL: Add more notes to disable about.txt documentation.
  • FLL: Add not implemented clarifications for 0.6.x versions.
  • FLL: Add fakefile for the FLL monolithic and level builds.
  • FLL: Out of date build documentation.
  • FLL: Add lossy allocation documentation.
  • FLL: Build and other documentation, fixing or adding IKI support.
  • FLL: Add formal specification for Time and EpochTime and use IKI in the files.
  • FLL: Documentation and specifications (All of the documentation and specifications should now be IKI based).
  • Featureless Make: The stand_alone fake config.h file.
  • Featureless Make: Improve some of the Featureless Make documentation and specifications.
  • Featureless Make: Slight changes to design around the build settings arguments.
  • Firewall: Add stand_alone firewall build.

Check out the project on the FLL release page.

The project is built like a tool chest. Individuals who are unfamiliar with the project should have an easier time trying out the pre-packaged monolithic sources. These programs, by default, are designed to build against a library built using the monolithic source tree.

The stand alone sources for the Featureless Make and UTF8 programs can be found pre-packaged at Sourceforge.

Kevin Day