[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] make branch, master, updated. 4.3-93-gf8f9d37

From: Paul D. Smith
Subject: [SCM] make branch, master, updated. 4.3-93-gf8f9d37
Date: Mon, 18 Oct 2021 23:04:52 -0400 (EDT)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "make".

The branch, master has been updated
       via  f8f9d371ff58a7195ca4abc9413f435c2bf2b998 (commit)
       via  f5af979357f10e3c2dd1fc5e483d52928c7cf6ec (commit)
       via  76cb18673216f9a7089584b4f3831befa2a4d559 (commit)
       via  6c06c547dcc990a9db0648d66b6a6519c3d1e5d4 (commit)
      from  c5d4b7b2f260c85ba48db4e844c4a2e4e3004238 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit f8f9d371ff58a7195ca4abc9413f435c2bf2b998
Author: Dmitry Goncharov <>
Date:   Sun Oct 17 18:03:04 2021 -0400

    [SV 61042] Enhance logging of implicit rule search
    Logging of implicit rule search gives limited information as to why a
    given implicit rule was rejected, and if no implicit rule is found we
    get the confusing "No rule to make target" result when the real issue
    is that some prerequisite of some implicit rule could not be built.
    Enhance logging around implicit rule search as follows:
    1. The messages which refer to a rule print a description (the targets
       and prerequisites) of the rule.
    2. A new message tells when a rule is rejected, along with the reason.
    3. The 'Looking for an implicit rule...' message is printed for every
       prerequisite, not just the top-level target.
    4. "Trying harder" message is printed, when intermediate prerequisites
       are going to be searched.
    5. The 'No rule found...' and 'Found implicit rule...' messages are
       printed for every prerequisite, not just the top-level target.
    6. "Ought to exist...", "Found..." or "Not found..." message is
       printed for each prerequisite.
    * src/rule.h (struct rule): Remember the definition of the rule.
    * src/rule.c (get_rule_defn): Compute the definition of a rule.
    (install_pattern_rule): Initialize the definition to empty.
    (create_pattern_rule): Ditto.
    (freerule): Free the definition.
    (print_rule): Use the definition when printing rules.
    * src/remake.c (update_file_1): Push debug output down into
    * src/implicit.c (try_implicit_rule): Add debugging
    (pattern_search): Show the rule definition in various debug output.
    Add new debug messages for implicit rule search.
    Additional changes by Paul Smith <>:
    Since we usually don't need the rule definition, defer computing it
    until we do.
    * bootstrap.conf: Include the mempcpy Gnulib module.
    * src/makeint.h (mempcpy): Declare mempcpy if not available.
    * src/misc.c (mempcpy): Define mempcpy if not available.
    * src/config.h-vms.template: Don't set HAVE_MEMPCPY.
    * src/config.h.W32.template: Ditto.
    * src/rule.h (get_rule_defn): Return the definition of a rule.
    * src/rule.c (get_rule_defn): If we don't have a definition compute
    it; either way return it.
    * src/implicit.c (pattern_search): Rework the handling of explicit
    prerequisites to pattern rules to be more clear.  There is no change
    in behavior.

commit f5af979357f10e3c2dd1fc5e483d52928c7cf6ec
Author: Dmitry Goncharov <>
Date:   Sat Oct 2 15:19:15 2021 -0400

    * doc/make.texi (Special Targets): [SV 61122] Add .SECONDARY example

commit 76cb18673216f9a7089584b4f3831befa2a4d559
Author: Paul Smith <>
Date:   Sun Oct 17 19:07:36 2021 -0400

    * README.git: Update C version prerequisite

commit 6c06c547dcc990a9db0648d66b6a6519c3d1e5d4
Author: Paul Smith <>
Date:   Sat Sep 18 18:53:38 2021 -0400

    Add support for the POSIX :::= assignment operator.
    POSIX Issue 8 will require a new assignment operator, :::=.
    This operator behaves similarly to the BSD make := operator: the
    right-hand side is expanded immediately, but then the value is
    re-escaped (all '$' are converted to '$$') and the resulting variable
    is considered a recursive variable: the value is re-expanded on use.
    * src/variable.h (enum variable_flavor): Add f_expand flavor.
    * src/variable.c (do_variable_definition): When defining f_expand,
    post-process the result to re-escape '$' characters.
    Remove default: to the compiler warns about un-handled enum values.
    Set recursive values for both f_recursive and f_expand.
    (parse_variable_definition): Rewrite this method.
    The previous version was annoying to extend to ':::='.
    (print_variable): Remove default: so the compiler warns us about
    un-handled enum values.
    * src/function.c (func_origin): Remove default: so the compiler warns
    us about un-handled enum values.
    * doc/make.texi: Add documentation for :::=.
    * tests/scripts/variables/define: Add a test for define :::=.
    * tests/scripts/variables/flavors: Add tests for :::=.
    * tests/scripts/variables/negative: Add tests for :::=.


Summary of changes:
 README.git                       |  13 +-
 bootstrap.conf                   |   1 +
 doc/make.texi                    | 251 +++++++++++++++++++++++++++++----------
 src/config.h-vms.template        |   3 +
 src/config.h.W32.template        |   3 +
 src/function.c                   |   1 -
 src/implicit.c                   | 106 +++++++++++------
 src/job.c                        |   2 +-
 src/makeint.h                    |   7 +-
 src/misc.c                       |   8 ++
 src/remake.c                     |  10 +-
 src/rule.c                       |  65 ++++++++--
 src/rule.h                       |   2 +
 src/variable.c                   | 213 +++++++++++++++++++--------------
 src/variable.h                   |   1 +
 tests/scripts/variables/define   |  11 +-
 tests/scripts/variables/flavors  |  44 +++++++
 tests/scripts/variables/negative |  14 +++
 18 files changed, 535 insertions(+), 220 deletions(-)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]