C 0000015 mmmv package info t1

From commentsarchive
Revision as of 02:17, 1 March 2021 by Martin Vahi (talk | contribs)
Jump to: navigation, search

This specification is still being written.


ID format

One development deliverable may produce multiple different deployment deliverables. A deployment deliverable has a relative ID in relation to its development deliverable. A development deliverable is a tar-file that contains its own secure hash and size in bytes as part of its name. For example, the tar-files might be Silktorrent packets, stblob-files. The ID of the development deliverable is the name of the tar-file. An absolute ID of a deployment deliverable has the following format:

    name_of_the_tarfile_of_the_development_deliverable|relateiv_ID_of_the_deployment_deliverable

The tar-file of the development deliverable and the relative ID of the deployment deliverable must both include only characters that meet the requirements of the C_0000014 mmmv_ASCII_subset_t1.


Deployment Deliverable Format

Deployment deliverables all have an executable file named mmmv_package_info_t1 at their root folder. It is a console application that has the following mandatory command line fomrat, in EBNF:

      COMMANDLINE_ARGUMENTS :== NONE | HELP | DISPLAY_VARIABLE | DISPLAY_CONSTANT
                       NONE :== // displays this EBNF and exits with error code 1
                       HELP :== "--help" | "-help" | "help" | "-?" | "-h" | "h" // displays this EBNF and exits with error code 0

           DISPLAY_VARIABLE :== ("--display-variable" | "--var"   | "-var"   | "var" ) (DISPLAY_COMPULSORY_VARIABLE | DISPLAY_OPTIONAL_VARIABLE)
           DISPLAY_CONSTANT :== ("--display-constant" | "--const" | "-const" | "const" ) (DISPLAY_COMPULSORY_CONSTANT | DISPLAY_OPTIONAL_CONSTANT)
    
          DISPLAY_BOOLEAN_X :== <name prefix that consists of only characters in the mmmv_ASCII_subset_t1>"_boolean="<true|false>
              DISPLAY_HEX_X :== <name prefix that consists of only characters in the mmmv_ASCII_subset_t1>"_lower_case_hex="<lower case hex>
            DISPLAY_ARRAY_X :== (<one or more spaces>)* (DISPLAY_BOOLEAN_X|DISPLAY_HEX_X) (<one or more spaces>(DISPLAY_BOOLEAN_X|DISPLAY_HEX_X))*(<one or more spaces>)*

DISPLAY_COMPULSORY_VARIABLE :== DISPLAY_BOOLEAN_X | DISPLAY_HEX_X | DISPLAY_ARRAY_X
  DISPLAY_OPTIONAL_VARIABLE :== DISPLAY_BOOLEAN_X | DISPLAY_HEX_X | DISPLAY_ARRAY_X
DISPLAY_COMPULSORY_CONSTANT :== DISPLAY_BOOLEAN_X | DISPLAY_HEX_X | DISPLAY_ARRAY_X
  DISPLAY_OPTIONAL_CONSTANT :== DISPLAY_BOOLEAN_X | DISPLAY_HEX_X | DISPLAY_ARRAY_X


  • If the command does not exist, for example, "hhhelpp" is used in stead of "help", then the mmmv_package_info_t1 exits with error code 1.
  • If the variable does not exist, but the command is correct, then the mmmv_package_info_t1 exits with error code 2.
  • Variable values, including arrays, are displayed so that there are no linebreaks. Text with linebreaks can be converted to hex and then stored as a variable value.
  • The value of constants never changes due to availability or state change of runtime dependencies.
  • The value of variables may change due to availability or state change of runtime dependencies.


Compulsory variables

  • s_deployment_deliverable_relative_ID // s_development_deliverable_ID is never known to the development deliverable itself before the tar-file with the secure hash in its name is created
  • s_ar IDs_of_dependency_development_deliverables // a space-separated list of tar-file names
  • s_ar_absolute_IDs_of_dependency_deployment_deliverables // a space-separated list
  • s_ar_deployment_state_constants_boolean // a space-separated list
  • s_ar_deployment_state_variables_boolean // a space-separated list
  • s_ar_deployment_state_constants_lower_case_hex // a space-separated list
  • s_ar_deployment_state_variables_lower_case_hex // a space-separated list


Implementatin Ideas

The idea behind the constant boolean values is that may be a theorem prover and some database might be used for speeding up the calculation that determines, whether dependencies are met or not.