I’m so happy with this config that I need to share it even though I’ve only been using this for a few hours. Put this in ~/.config/jj/config.toml.
[templates]
draft_commit_description = '''
concat(
description,
surround(
"\nJJ: This commit contains the following changes:\n", "",
indent("JJ: ", diff.stat(72)),
),
surround("\nJJ: Diff:\n", "", indent("JJ: ", diff.git(4)))
)
'''It’s awesome. Now editing a commit message looks like this.
Bug 1930698 - Add invalidation logging for fuses r?iain
Differential Revision: https://phabricator.services.mozilla.com/D228689
JJ: This commit contains the following changes:
JJ: js/src/vm/InvalidatingFuse.cpp | 6 ++++++
JJ: js/src/vm/Logging.h | 1 +
JJ: 2 files changed, 7 insertions(+), 0 deletions(-)
JJ: Diff:
JJ: diff --git a/js/src/vm/InvalidatingFuse.cpp b/js/src/vm/InvalidatingFuse.cpp
JJ: index 6fbc9b2aa0..e7b541ff20 100644
JJ: --- a/js/src/vm/InvalidatingFuse.cpp
JJ: +++ b/js/src/vm/InvalidatingFuse.cpp
JJ: @@ -10,8 +10,9 @@
JJ: #include "jit/Invalidation.h"
JJ: #include "jit/JitSpewer.h"
JJ: #include "vm/JSContext.h"
JJ: #include "vm/JSScript.h"
JJ: +#include "vm/Logging.h"
JJ:
JJ: #include "gc/StableCellHasher-inl.h"
JJ: #include "vm/JSScript-inl.h"
JJ:
JJ: @@ -33,8 +34,10 @@
JJ:
JJ: void js::InvalidatingRuntimeFuse::popFuse(JSContext* cx) {
JJ: // Pop the fuse in the base class
JJ: GuardFuse::popFuse(cx);
JJ: + JS_LOG(fuseInvalidation, mozilla::LogLevel::Verbose,
JJ: + "Invalidating fuse popping: %s", name());
JJ: // do invalidation.
JJ: for (AllZonesIter z(cx->runtime()); !z.done(); z.next()) {
JJ: // There's one dependent script set per fuse; just iterate over them all to
JJ: // find the one we need (see comment on JS::Zone::fuseDependencies for
JJ: @@ -70,8 +73,11 @@
JJ: // before calling invalidate.
JJ: if (script->hasIonScript()) {
JJ: JitSpew(jit::JitSpew_IonInvalidate, "Invalidating ion script %p for %s",
JJ: script->ionScript(), reason);
JJ: + JS_LOG(fuseInvalidation, mozilla::LogLevel::Debug,
JJ: + "Invalidating ion script %s:%d for reason %s", script->filename(),
JJ: + script->lineno(), reason);
JJ: js::jit::Invalidate(cx, script);
JJ: }
JJ: }
JJ: }
JJ: diff --git a/js/src/vm/Logging.h b/js/src/vm/Logging.h
JJ: index f4b63e3773..a593c249bd 100644
JJ: --- a/js/src/vm/Logging.h
JJ: +++ b/js/src/vm/Logging.h
JJ: @@ -83,8 +83,9 @@
JJ:
JJ: #define FOR_EACH_JS_LOG_MODULE(_) \
JJ: _(debug) /* A predefined log module for casual debugging */ \
JJ: _(wasmPerf) /* Wasm performance statistics */ \
JJ: + _(fuseInvalidation) /* Invalidation triggered by a fuse */ \
JJ: JITSPEW_CHANNEL_LIST(_) /* A module for each JitSpew channel. */
JJ:
JJ: // Declare Log modules
JJ: #define DECLARE_MODULE(X) inline constexpr LogModule X##Module(#X);
JJ: Lines starting with "JJ: " (like this one) will be removed.
Many thanks to Erich at work!