2.10. General ComPact Configuration Changes

General changes, extensions, and fixes of the ComPact configuration schemes are listed below:

  ---- [f] change set buggy-envar-substitution-fixes-01
    created by wagner at 2000.06.07.12.01.27
    description:
    Environment variable substituion was broken due to wrong parameter use.
    Now ProcessEnv.Names() returns an array of all names in an environment
    to support easy fixing of this bug in other modules.
    package changes:
      miscutils     devel_miscutils_d25_0_2 devel_miscutils_d25_0_3
      compactrc     devel_compactrc_d11_2_1 devel_compactrc_d11_2_2
      langutils     devel_langutils_d9_0_2  devel_langutils_d9_0_3
       


  ---- [ip] change set feature-compactrc-hierarchy
    created by wagner at 2000.08.29.23.56.36
    description:
    Added evaluation of many configuration files that may or may not
    exist. The current evluation order is as follows:

    First the (1) resource compactrc is searched via the default
    configuration path, then the file (2) ~/.compactrc is read if it
    exists. After evaluation of these definitions, platform-dependend
    configuration files are located and evaluated if they exist in the
    following order:

     (3) ~/compact/compactrc-{hosttype}
     (4) ~/compact/compactrc-{ostype}
     (5) ~/compact/compactrc-{hosttype}-{ostype}
     (6) ~/.compactrc-{hosttype}
     (7) ~/.compactrc-{ostype}
     (8) ~/.compactrc-{hosttype}-{ostype}
     (9) ~/.compactrc-{hostname}

    Last of all, the value of the environment variable COMPACTRC is
    used as a pathname and evaluated as a configuration file if it
    exists. 

    If variables are defined more than once, the latter setting
    always overrides the older one. This is also true for mapping
    definitions.
    package changes:
      compactrc     devel_compactrc_d12_0_0 devel_compactrc_d12_1_0
      pkg_build     devel_pkg=build_d27_3_1 devel_pkg=build_d27_4_1
      poolm         devel_poolm_d7_3_0      devel_poolm_d7_3_1
       


  ---- [] change set feature-compactvar-default-values
    created by wagner at 2000.10.28.14.27.08
    description:
    new feature (compactrc): 
      The function TextUtils.SubstituteVariables now recognizes default
      values. Three different denotations are possible:

        {:varname1?varname2} use the value of varname2 if varname1 is not
          defined

        {:varname1:const} use the literal `const' if varname1 is not
          defined

        {:varname1?varname2:const} use the value of varname2 if varname1 is not
          defined; use const, iff neither varname1 nor varname2 are defined

        If the first character is `!' instead of `:', the default value is
        used if the main variable is empty (=""), too.

    new feature (CBCL):
      syntax extension:
       CBCL now allows the denotation of default values in variable references
       in expressions, similar to those implemented in 
       TextUtils.SubstituteVariables (used for compactrc). The syntax is

      |  VariableReference ::= "{" Identifier "}"
      |                     |  "{" Identifier "?" Identifier "}"
      |                     |  "{" Identifier "?" Identifier ":" StringOrId "}"
      |                     |  "{" Identifier ":" StringOrId "}"

    also:
      o added debug output to parsing of compactrc resources, if verbose (-v)
        and debug (-d) are given
      o changed default values for TPC elements from "unknown" to ""
      o improved TPC detection in bundled compactrc resource
      o minor TPC fixes for Java
    package changes:
      miscutils     devel_miscutils_d30_0_0   devel_miscutils_d30_1_3
      pkg_global    devel_pkg=global_d16_2_1  devel_pkg=global_d16_2_3
      compactrc     devel_compactrc_d16_1_1   devel_compactrc_d16_1_2
      pkgconf       devel_pkgconf_d18_2_1     devel_pkgconf_d18_3_0
      lanutils      devel_langutils_d9_0_3    devel_langutils_d9_1_0
       


  ---- [f] change set fix-tpc-init
    created by wagner at 2000.10.27.16.35.38
    description:
    Patches to improve the handling of TPC initialization:
     o define tpc-opts in addition to tpc-options for overrides from
       the command line. tpc-opts does not start with a -
     o evaluate the TPC object to obtain a standardized internal representation
       after all configuration settings have been evaluated

    Also: typo in pkgconf doc corrected
    package changes:
      pkg_global    devel_pkg=global_d16_2_0  devel_pkg=global_d16_2_1
      compactrc     devel_compactrc_d16_1_0   devel_compactrc_d16_1_1
      pkgconf       devel_pkgconf_d18_2_0     devel_pkgconf_d18_2_1
       


  ---- [f] change set fix-no-empty-envar-substitutitions
    created by wagner at 2000.11.07.14.06.55
    description:
    Explicitly check for empty environment variable names when substituting 
    environment values. Under Cygwin, some obscure settings are parsed as
    empty variable names by the M3 libraries, which led to various interesting
    effects...
    package changes:
      miscutils     devel_miscutils_d30_1_7 devel_miscutils_d30_1_8
       


  ---- [] change set feature-hostname-computation
    created by wagner at 2000.11.08.18.35.48
    description:
    The actual hostname of the computer ComPact is running on can now
    be correctly determined via gethostname. The environment variables
    HOSTNAME and COMPUTERNAME can be used to override the name supplied
    by the operating system.

    A Hostname() function has been added to the System module in package
    miscutils. This is not entirely appropriate, but there is no better
    suitable module, and it didn't seem worth creating a new interface.
    package changes:
      miscutils     devel_miscutils_d30_1_8 devel_miscutils_d30_2_1
      compactrc     devel_compactrc_d16_1_3 devel_compactrc_d16_2_0
       


  ---- [m] change set feature-prjm-enforce-pkgdeps-variable
    created by wagner at 2001.01.17.14.05.35
    description:
    This change set introduces a new configuration variable in compactrc:

       enforce-pkgdeps      true|false [default true]

    Setting this variable to `false' or `no' will make the computation of
    package dependencies optional, and failure to do so will not make prjm
    stop with an error message, but simply issue a warning.

    The introduction of this variable has been motivated by ComPact Light,
    which does not contain build management, and should nonetheless be able
    to perform all necessary version control on prject level.
    package changes:
      prjbase       devel_prjbase_d37_0_15      devel_prjbase_d37_1_1
      compactrc     devel_compactrc_d16_2_1     devel_compactrc_d16_3_0
      prjm          devel_prjm_d26_1_5          devel_prjm_d26_2_0
      ComPactHTTPd  devel_ComPactHTTPd_d18_2_2  devel_ComPactHTTPd_d18_3_0