Hello Gabe Black,

I'd like you to do a code review. Please visit


to review the following change.

Change subject: scons: Add a mechanism to accumulate warnings to reprint at the end.

scons: Add a mechanism to accumulate warnings to reprint at the end.

When building gem5, it's possible for warnings printed early in the
build to be quickly wisked away in a see of compile lines, never to be
seen again (or driven off the end of the scrollback buffer).

To avoid those messages getting lost or ignored, this change adds a
mechanism to aggregate them into a list so that they can be summarized
at the end of the build, successful or not.

Change-Id: Ie13320717698fcbcd3a8f8d1c062467e8d6d2914
M site_scons/gem5_scons/__init__.py
1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/site_scons/gem5_scons/__init__.py b/site_scons/gem5_scons/__init__.py
index e7e7a0a..169e0fe 100644
--- a/site_scons/gem5_scons/__init__.py
+++ b/site_scons/gem5_scons/__init__.py
@@ -169,12 +169,25 @@
# Finally add the prefix and padding on extra lines, and glue it all back
     # together.
     message = prefix + ('\n' + padding).join(wrapped_lines)
-    # Print the message in bold in the requested color.
-    print(color + termcap.Bold + message + termcap.Normal, **kwargs)
+    # Add in terminal escape sequences.
+    message = color + termcap.Bold + message + termcap.Normal
+    # Actually print the message.
+    print(message, **kwargs)
+    return message
+all_warnings = []
+def summarize_warnings():
+    if not all_warnings:
+        return
+    print(termcap.Yellow + termcap.Bold +
+            '*** Summary of Warnings ***' +
+            termcap.Normal)
+    list(map(print, all_warnings))

 def warning(*args, **kwargs):
     message = ' '.join(args)
-    print_message('Warning: ', termcap.Yellow, message, **kwargs)
+    printed = print_message('Warning: ', termcap.Yellow, message, **kwargs)
+    all_warnings.append(printed)

 def error(*args, **kwargs):
     message = ' '.join(args)

To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/27129
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Ie13320717698fcbcd3a8f8d1c062467e8d6d2914
Gerrit-Change-Number: 27129
Gerrit-PatchSet: 1
Gerrit-Owner: Gabe Black <gabebl...@google.com>
Gerrit-Reviewer: Gabe Black <gabe.bl...@gmail.com>
Gerrit-MessageType: newchange
gem5-dev mailing list

Reply via email to