]> Kevux Git Server - fll/commitdiff
Update: Documentation and specifications and add additional status codes.
authorKevin Day <Kevin@kevux.org>
Thu, 11 Jul 2024 05:23:00 +0000 (00:23 -0500)
committerKevin Day <Kevin@kevux.org>
Thu, 11 Jul 2024 05:23:00 +0000 (00:23 -0500)
I discovered that some of the documentation and specification files are out of date and are now updated.

Add additional status codes regarding locks.

13 files changed:
build/documents/readme.bootstrap.txt
build/documents/readme.build.txt
build/documents/readme.txt
documents/readme.txt
documents/style_guide.txt
level_0/f_status/c/status.h
level_0/f_status_string/c/status_string.c
level_0/f_status_string/c/status_string.h
level_0/f_status_string/tests/unit/c/test-status_string-to.c
level_1/fl_status_string/c/status_string.c
level_1/fl_status_string/tests/unit/c/test-status_string-from.c
level_2/fll_error/c/error.c
specifications/iki.txt

index d437c7d91cec03590e84d3cc3309feee07e79a79..fe43da80cbafa22cf26c99f3a1215aca34361a5e 100644 (file)
@@ -1,6 +1,7 @@
 # fss-0002 iki-0000
 #
 # license: cc-by-sa-4.0
+# version 2024/07/10
 #
 # This file (assumed to be named readme.bootstrap.txt) can be more easily read using the following iki_read commands:
 #   iki_read readme.bootstrap.txt +Q -w -rr FLL FLL FSS FSS -WW character "'" "'" code '"' '"'
@@ -40,6 +41,7 @@ Bootstrap Readme Documentation:
     code:"./install.sh"
 
   Manual Install Example\:
+    code:"cp -vR build/documentation/* /usr/share/"
     code:"cp -vR build/includes/* /usr/include/"
     code:"cp -vR build/libaries/shared/* /usr/lib/"
     code:"cp -vR build/programs/shared/* /usr/bin/"
index a58d596d6106d360b421bdfe75d7ae1a999225fc..a8dc27303c561fe841bd4dd150fe706ac3baa692 100644 (file)
@@ -1,6 +1,7 @@
 # fss-0002 iki-0000
 #
 # license: cc-by-sa-4.0
+# version 2024/07/10
 #
 # This file (assumed to be named readme.build.txt) can be more easily read using the following iki_read commands:
 #   iki_read readme.build.txt +Q -w -rr FLL FLL FSS FSS -WW character "'" "'" code '"' '"'
@@ -39,6 +40,16 @@ Build Readme Documentation:
   Build Example, Explicitly Using code:"make"\:
     code:"fake make"
 
+  Install Example\:
+    code:"./install.sh"
+
+  Manual Install Example\:
+    code:"cp -vR build/documentation/* /usr/share/"
+    code:"cp -vR build/includes/* /usr/include/"
+    code:"cp -vR build/libaries/shared/* /usr/lib/"
+    code:"cp -vR build/programs/shared/* /usr/bin/"
+    code:"cp -vR build/settings/* /etc/"
+
   Build Tree Structure Example (using the FLL:"Featureless Linux Library" code:"status_code-0.7.0" project)\:
     block:"
       build/
@@ -104,6 +115,6 @@ Build Readme Documentation:
           └── sources_settings-settings.main.built
     "
 
-  See: FLL:"Featureless Linux Library" code:"fake" project documents for further details on how to use the bold:"Featureless Make" system.
-  See: FLL:"Featureless Linux Library" code:"fake" project specifications for how to configure the build FSS:"Featureless Settings Specification" files and make FSS:"Featureless Settings Specification" files.
-  See: file:"readme.bootstrap.txt" for notes on installing.
+  See: FLL:"Featureless Linux Library" code:"fake" project documents and specifications for further details on how to use the bold:"Featureless Make" system.
+  See: FLL:"Featureless Linux Library" project documentation and specifications for how to configure the bold:"Featureless Make" FSS:"Featureless Settings Specification" files.
+  See: file:"readme.bootstrap.txt" for notes on building and installing when bootstrapping the library.
index 8d26cdc8dcf97dc8cc3ed8e7e1ecb18f066cfea3..8d05bf2bede6ca621f67e09177c3850016334379 100644 (file)
@@ -1,6 +1,7 @@
 # fss-0002 iki-0000
 #
 # license: cc-by-sa-4.0
+# version 2024/07/10
 #
 # This file (assumed to be named readme.build.txt) can be more easily read using the following iki_read commands:
 #   iki_read readme.txt +Q -w -rrrr API API FLL FLL FSS FSS KISS KISS -WW character "'" "'" code '"' '"'
@@ -52,11 +53,8 @@ Readme Documentation:
 
   To facilitate building of this project, two different build systems are provided\:
   - The bootstrap, via the file:"bootstrap.sh" script.
-  - The bold:"Featureless Make", which is a level_3 project provided by FLL:"Featureless Linux Library".
+  - The bold:"Featureless Make", which is a level 3 project provided by FLL:"Featureless Linux Library".
 
-  An example bootstrap script is provided (file:"build/scripts/bootstrap-example.sh") is provided for to show how to build the FLL:"Featureless Linux Library" directly from source.
-  Use it as an example or explicitly call it (such as: code:"bash build/scripts/bootstrap-example.sh monolithic 0.7.0").
-
-  See: file:"dependencies" for specific dependencies of this project.
-  See: file:"readme.bootstrap.txt" for bootstrap compiling (or just regular compiling) any part of the FLL:"Featureless Linux Library" and notes on installing.
-  See: file:"readme.build.txt" for bold:"Featureless Make" compiling and notes on installing.
+  See: file:"data/build/dependencies" for specific dependencies of this project.
+  See: file:"documents/readme.bootstrap.txt" for bootstrap compiling (or just regular compiling) any part of the FLL:"Featureless Linux Library" and notes on installing.
+  See: file:"documents/readme.build.txt" for bold:"Featureless Make" compiling and notes on installing.
index 3267ba77c2dc7de6f16289bbd8f857d69ad87dc2..64bc0f0ea225fd8e7cb785c1af7c859ab79ba778 100644 (file)
@@ -1,7 +1,7 @@
 # fss-0002 iki-0000
 #
 # license: cc-by-sa-4.0
-# version 2024/07/02
+# version 2024/07/10
 #
 # This file (assumed to be named readme.txt) can be more easily read using the following iki_read commands:
 #   iki_read readme.txt +Q -w -r FLL FLL -WW character "'" "'" code '"' '"'
@@ -29,11 +29,14 @@ Installation:
   This install script is intended to be used only by the FLL:"Featureless Linux Library".
   Future versions of the FLL:"Featureless Linux Library" may include an install equivalent to the file:"fake" program (and there may possibly be a package generation equivalent as well).
 
-  The management scripts are as follows\:
+  The management scripts are as found in the directory:"build/scripts/" of the source repository as follows\:
     - file:"bootstrap.sh".
     - file:"bootstrap-example.sh".
     - file:"install.sh".
     - file:"package.sh".
+    - file:"test.sh".
+
+  Some of these files are also copied over into individual packaged release files.
 
   The file:"bootstrap.sh" script is intended to take the FLL:"Featureless Linux Library" source code and compile it into appropriate binaries on the system, particularly when the file:"fake" program is not installed.
   This is analogous to the bold:"GNU Make" program and the FLL:"Featureless Linux Library" bold:"Featureless Make" program.
@@ -47,6 +50,10 @@ Installation:
   Of particular note is that there are multiple ways to package the FLL:"Featureless Linux Library", such as each package as its own individual project, each package by level, or each package as a monolithic library.
   This script also provides management functions for ensuring the dependencies and configuration settings are accurate.
 
+  The file:"test.sh" script is intended to be a unit test runner for the base source file.
+  Individual packages projects may have unit tests run via their appropriate unit test bold:"Fakefile".
+  If an individual packaged project has unit tests, then those tests may be operated using the bold:"Fakefile" file:"data/build/testfile".
+
 Other Readmes:
   Repository providers like bold:"Github" and bold:"Gitlab" utilize file:"README.md", file:"LICENSE", and other special files at the root project level.
   This practice is not supported by the FLL:"Featureless Linux Library" project structure and is not normally used.
index d15d509ce4c7a75e9ba35c419b41e5acf0c6c189..18d34a04b4b1b00debe1feccc8ac85aebc721fde 100644 (file)
@@ -195,14 +195,14 @@ Global String Constant Names:
   - code:"f_file_open_mode_truncate_s": as a variable, such as: code:"extern const f_string_t f_file_open_mode_truncate_s;".
 
 Global Character Constant Names:
-  These C-language specific global names are identical to the strong:"Global String Constant Names" except that they represent a single 1-byte character.
+  These C-language specific global names are identical to the bold:"Global String Constant Names" except that they represent a single 1-byte character.
 
   These are of the form code:"(A)_(b)_c" or code:"(a)_(b)_c".
 
   The trailing code:"_c" designates that this is a 1-byte character.
 
 Global Data Constant Names:
-  These C-language specific global names are identical to the strong:"Global String Constant Names" except that they represent any other type of global data.
+  These C-language specific global names are identical to the bold:"Global String Constant Names" except that they represent any other type of global data.
 
   These are of the form code:"(A)_(b)_g" or code:"(a)_(b)_g".
 
index e808384bc9f66197c9b6155bd8eb52a677b261ce..14debba46daab9715ff16f10c5cd35a7b2b98e55 100644 (file)
@@ -361,7 +361,13 @@ extern "C" {
     F_local,
     F_local_not,
     F_lock,
+    F_lock_mutex,
+    F_lock_mutex_not,
     F_lock_not,
+    F_lock_read,
+    F_lock_read_not,
+    F_lock_write,
+    F_lock_write_not,
     F_loop,
     F_loop_not,
     F_maybe,
index 2097bc6d756e6b9e192859b03404e6779e3c611d..97c3d7a1cf1bec37aecf85c8d22625b973471698 100644 (file)
@@ -229,7 +229,13 @@ extern "C" {
   const f_string_static_t f_status_local_s = macro_f_string_static_t_initialize_1(F_status_local_s, 0, F_status_local_s_length);
   const f_string_static_t f_status_local_not_s = macro_f_string_static_t_initialize_1(F_status_local_not_s, 0, F_status_local_not_s_length);
   const f_string_static_t f_status_lock_s = macro_f_string_static_t_initialize_1(F_status_lock_s, 0, F_status_lock_s_length);
+  const f_string_static_t f_status_lock_mutex_s = macro_f_string_static_t_initialize_1(F_status_lock_mutex_s, 0, F_status_lock_mutex_s_length);
+  const f_string_static_t f_status_lock_mutex_not_s = macro_f_string_static_t_initialize_1(F_status_lock_mutex_not_s, 0, F_status_lock_mutex_not_s_length);
   const f_string_static_t f_status_lock_not_s = macro_f_string_static_t_initialize_1(F_status_lock_not_s, 0, F_status_lock_not_s_length);
+  const f_string_static_t f_status_lock_read_s = macro_f_string_static_t_initialize_1(F_status_lock_read_s, 0, F_status_lock_read_s_length);
+  const f_string_static_t f_status_lock_read_not_s = macro_f_string_static_t_initialize_1(F_status_lock_read_not_s, 0, F_status_lock_read_not_s_length);
+  const f_string_static_t f_status_lock_write_s = macro_f_string_static_t_initialize_1(F_status_lock_write_s, 0, F_status_lock_write_s_length);
+  const f_string_static_t f_status_lock_write_not_s = macro_f_string_static_t_initialize_1(F_status_lock_write_not_s, 0, F_status_lock_write_not_s_length);
   const f_string_static_t f_status_loop_s = macro_f_string_static_t_initialize_1(F_status_loop_s, 0, F_status_loop_s_length);
   const f_string_static_t f_status_loop_not_s = macro_f_string_static_t_initialize_1(F_status_loop_not_s, 0, F_status_loop_not_s_length);
   const f_string_static_t f_status_maybe_s = macro_f_string_static_t_initialize_1(F_status_maybe_s, 0, F_status_maybe_s_length);
@@ -1806,11 +1812,41 @@ extern "C" {
 
         break;
 
+      case F_lock_mutex:
+        *name = f_status_lock_mutex_s;
+
+        break;
+
+      case F_lock_mutex_not:
+        *name = f_status_lock_mutex_not_s;
+
+        break;
+
       case F_lock_not:
         *name = f_status_lock_not_s;
 
         break;
 
+      case F_lock_read:
+        *name = f_status_lock_read_s;
+
+        break;
+
+      case F_lock_read_not:
+        *name = f_status_lock_read_not_s;
+
+        break;
+
+      case F_lock_write:
+        *name = f_status_lock_write_s;
+
+        break;
+
+      case F_lock_write_not:
+        *name = f_status_lock_write_not_s;
+
+        break;
+
       case F_loop:
         *name = f_status_loop_s;
 
index b102c6ecb9737eab5fa3678494cd24e2fb13fe05..39aa28b957ea6ea18435b9a1b367b711fcc9de6f 100644 (file)
@@ -389,7 +389,13 @@ extern "C" {
   #define F_status_local_s                 "F_local"
   #define F_status_local_not_s             "F_local_not"
   #define F_status_lock_s                  "F_lock"
+  #define F_status_lock_mutex_s            "F_lock_mutex"
+  #define F_status_lock_mutex_not_s        "F_lock_mutex_not"
   #define F_status_lock_not_s              "F_lock_not"
+  #define F_status_lock_read_s             "F_lock_read"
+  #define F_status_lock_read_not_s         "F_lock_read_not"
+  #define F_status_lock_write_s            "F_lock_write"
+  #define F_status_lock_write_not_s        "F_lock_write_not"
   #define F_status_loop_s                  "F_loop"
   #define F_status_loop_not_s              "F_loop_not"
   #define F_status_maybe_s                 "F_maybe"
@@ -723,7 +729,13 @@ extern "C" {
   #define F_status_local_s_length                 7
   #define F_status_local_not_s_length             11
   #define F_status_lock_s_length                  6
+  #define F_status_lock_mutex_s_length            12
+  #define F_status_lock_mutex_not_s_length        16
   #define F_status_lock_not_s_length              10
+  #define F_status_lock_read_s_length             11
+  #define F_status_lock_read_not_s_length         15
+  #define F_status_lock_write_s_length            12
+  #define F_status_lock_write_not_s_length        16
   #define F_status_loop_s_length                  6
   #define F_status_loop_not_s_length              10
   #define F_status_maybe_s_length                 7
@@ -1059,7 +1071,13 @@ extern "C" {
   extern const f_string_static_t f_status_local_s;
   extern const f_string_static_t f_status_local_not_s;
   extern const f_string_static_t f_status_lock_s;
+  extern const f_string_static_t f_status_lock_mutex_s;
+  extern const f_string_static_t f_status_lock_mutex_not_s;
   extern const f_string_static_t f_status_lock_not_s;
+  extern const f_string_static_t f_status_lock_read_s;
+  extern const f_string_static_t f_status_lock_read_not_s;
+  extern const f_string_static_t f_status_lock_write_s;
+  extern const f_string_static_t f_status_lock_write_not_s;
   extern const f_string_static_t f_status_loop_s;
   extern const f_string_static_t f_status_loop_not_s;
   extern const f_string_static_t f_status_maybe_s;
index 3bbba0808ee635555dadabc57cd62437de995faf..5a1ff4603b1a4067f9349956b4ec4bd2d9703e6b 100644 (file)
@@ -255,7 +255,13 @@ void test__f_status_string_to__works(void **state) {
     F_local,
     F_local_not,
     F_lock,
+    F_lock_mutex,
+    F_lock_mutex_not,
     F_lock_not,
+    F_lock_read,
+    F_lock_read_not,
+    F_lock_write,
+    F_lock_write_not,
     F_loop,
     F_loop_not,
     F_maybe,
@@ -894,7 +900,13 @@ void test__f_status_string_to__works(void **state) {
     f_status_local_s,
     f_status_local_not_s,
     f_status_lock_s,
+    f_status_lock_mutex_s,
+    f_status_lock_mutex_not_s,
     f_status_lock_not_s,
+    f_status_lock_read_s,
+    f_status_lock_read_not_s,
+    f_status_lock_write_s,
+    f_status_lock_write_not_s,
     f_status_loop_s,
     f_status_loop_not_s,
     f_status_maybe_s,
@@ -1307,7 +1319,7 @@ void test__f_status_string_to__works(void **state) {
     f_status_status_code_last_s,
   };
 
-  for (uint16_t i = 0; i < 636; ++i) {
+  for (uint16_t i = 0; i < 642; ++i) {
 
     f_string_static_t result = f_string_static_t_initialize;
 
index c8f984afc169a92cc8c886bd32007746f22a5ee9..c5dfdf42b662665d5775b796591278f7da0c80bd 100644 (file)
@@ -1371,12 +1371,48 @@ extern "C" {
       return F_okay;
     }
 
+    if (f_compare_dynamic(name, f_status_lock_mutex_s) == F_equal_to) {
+      *code = F_lock_mutex;
+
+      return F_okay;
+    }
+
+    if (f_compare_dynamic(name, f_status_lock_mutex_not_s) == F_equal_to) {
+      *code = F_lock_mutex_not;
+
+      return F_okay;
+    }
+
     if (f_compare_dynamic(name, f_status_lock_not_s) == F_equal_to) {
       *code = F_lock_not;
 
       return F_okay;
     }
 
+    if (f_compare_dynamic(name, f_status_lock_read_s) == F_equal_to) {
+      *code = F_lock_read;
+
+      return F_okay;
+    }
+
+    if (f_compare_dynamic(name, f_status_lock_read_not_s) == F_equal_to) {
+      *code = F_lock_read_not;
+
+      return F_okay;
+    }
+
+    if (f_compare_dynamic(name, f_status_lock_write_s) == F_equal_to) {
+      *code = F_lock_write;
+
+      return F_okay;
+    }
+
+    if (f_compare_dynamic(name, f_status_lock_write_not_s) == F_equal_to) {
+      *code = F_lock_write_not;
+
+      return F_okay;
+    }
+
     if (f_compare_dynamic(name, f_status_loop_s) == F_equal_to) {
       *code = F_loop;
 
index 20d3cbc7f7afe3297798f3be48d083c693ffb865..d8b0ff03f5e31c573ad3acd8504212bd21b9ef75 100644 (file)
@@ -271,7 +271,13 @@ void test__fl_status_string_from__works(void **state) {
     F_local,
     F_local_not,
     F_lock,
+    F_lock_mutex,
+    F_lock_mutex_not,
     F_lock_not,
+    F_lock_read,
+    F_lock_read_not,
+    F_lock_write,
+    F_lock_write_not,
     F_loop,
     F_loop_not,
     F_maybe,
@@ -910,7 +916,13 @@ void test__fl_status_string_from__works(void **state) {
     f_status_local_s,
     f_status_local_not_s,
     f_status_lock_s,
+    f_status_lock_mutex_s,
+    f_status_lock_mutex_not_s,
     f_status_lock_not_s,
+    f_status_lock_read_s,
+    f_status_lock_read_not_s,
+    f_status_lock_write_s,
+    f_status_lock_write_not_s,
     f_status_loop_s,
     f_status_loop_not_s,
     f_status_maybe_s,
@@ -1323,7 +1335,7 @@ void test__fl_status_string_from__works(void **state) {
     f_status_status_code_last_s,
   };
 
-  for (uint16_t i = 0; i < 635; ++i) {
+  for (uint16_t i = 0; i < 642; ++i) {
 
     f_status_t result = F_okay;
 
index 6443363dbe018449547b19dbc5087e549a063419..9a503e1450b3e4a902125e4489b658ccd92e85db 100644 (file)
@@ -241,7 +241,7 @@ extern "C" {
 
         fl_print_format("%[%QUnable to %Q %Q '%]", print->to, print->context, print->prefix, operation, type_name, print->context);
         fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable);
-        fl_print_format("%[', found.%]%r", print->to, print->context, print->context, f_string_eol_s);
+        fl_print_format("%[', found existing %Q.%]%r", print->to, print->context, type_name, print->context, f_string_eol_s);
 
         funlockfile(print->to.stream);
       }
index c496915b617f174c207dae75d7f19fb73ec9b5ed..92fe7a9df8dec3339d37d674d970a6aad46329fd 100644 (file)
@@ -1,7 +1,7 @@
 # fss-0002 iki-0000
 #
 # license open-standard-license-1.0-or-later
-# version 2024/06/11
+# version 2024/07/10
 #
 # This file (assumed to be named iki.txt) can be more easily read using the following iki_read commands:
 #   iki_read iki.txt +Q -w -WWW character "'" "'" code '"' '"' italic '"' '"'
@@ -69,7 +69,7 @@ IKI Specifications:
 
     The following italic\:"is escaped to not be treated as IKI data".
 
-    The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"strong"this[context]\:"strong".'
+    The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"bold"this[context]\:"bold".'
 
   Objects (also called vocabulary or variable name) would be\:
     1) italic
@@ -86,8 +86,8 @@ IKI Specifications:
     3.1) Featureless Settings Specification
     4.1) const char *string = "My \"quoted\" C string.";
     5.1) is escaped to not be treated as IKI data
-    6.1) strong
-    7.1) strong
+    6.1) bold
+    7.1) bold
 
   The following are core specifications (each with a common name associated with the specification number)\:
   - fss-0000: Unrestricted