News - 2022/12/17 - FLL 0.6.2 Release
Author: Kevin Day
Description: News post on 2022/12/17.
Keywords: Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, News, 2022

# 2022 / 12 / 17 - FLL 0.6.2 Release

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