[gem5-dev] Change in gem5/gem5[develop]: python,scons,mem-ruby: Tag origin of generated files

2021-06-28 Thread Daniel Carvalho (Gerrit) via gem5-dev
Daniel Carvalho has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/47301 )


Change subject: python,scons,mem-ruby: Tag origin of generated files
..

python,scons,mem-ruby: Tag origin of generated files

This will make it easier to backtrack and modify
such files when needed.

Change-Id: If09b6f848e607fb21a0acf2114ce0b9b0aa4751f
Signed-off-by: Daniel R. Carvalho 
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/47301
Reviewed-by: Jason Lowe-Power 
Maintainer: Jason Lowe-Power 
Tested-by: kokoro 
---
M src/SConscript
M src/mem/slicc/symbols/StateMachine.py
M src/mem/slicc/symbols/SymbolTable.py
M src/mem/slicc/symbols/Type.py
M src/python/m5/util/code_formatter.py
5 files changed, 32 insertions(+), 42 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/SConscript b/src/SConscript
index 08cfeee..804160b 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -1149,10 +1149,6 @@

 # file header
 code('''
-/*
- * DO NOT EDIT THIS FILE! Automatically generated by SCons.
- */
-
 #include "base/debug.hh"

 namespace Debug {
@@ -1206,10 +1202,6 @@

 # file header boilerplate
 code('''\
-/*
- * DO NOT EDIT THIS FILE! Automatically generated by SCons.
- */
-
 #ifndef __DEBUG_${name}_HH__
 #define __DEBUG_${name}_HH__

diff --git a/src/mem/slicc/symbols/StateMachine.py  
b/src/mem/slicc/symbols/StateMachine.py

index 0c4651d..42b5553 100644
--- a/src/mem/slicc/symbols/StateMachine.py
+++ b/src/mem/slicc/symbols/StateMachine.py
@@ -272,11 +272,7 @@
 c_ident = "%s_Controller" % self.ident

 code('''
-/** \\file $c_ident.hh
- *
- * Auto generated C++ code started by $__file__:$__line__
- * Created by slicc definition of Module "${{self.short}}"
- */
+// Created by slicc definition of Module "${{self.short}}"

 #ifndef __${ident}_CONTROLLER_HH__
 #define __${ident}_CONTROLLER_HH__
@@ -492,11 +488,7 @@
 '''

 code('''
-/** \\file $c_ident.cc
- *
- * Auto generated C++ code started by $__file__:$__line__
- * Created by slicc definition of Module "${{self.short}}"
- */
+// Created by slicc definition of Module "${{self.short}}"

 #include 
 #include 
@@ -1220,7 +1212,6 @@
 outputRequest_types = False

 code('''
-// Auto generated C++ code started by $__file__:$__line__
 // ${ident}: ${{self.short}}

 #include 
@@ -1343,7 +1334,6 @@
 ident = self.ident

 code('''
-// Auto generated C++ code started by $__file__:$__line__
 // ${ident}: ${{self.short}}

 #include 
diff --git a/src/mem/slicc/symbols/SymbolTable.py  
b/src/mem/slicc/symbols/SymbolTable.py

index e4fc0a3..fb01b01 100644
--- a/src/mem/slicc/symbols/SymbolTable.py
+++ b/src/mem/slicc/symbols/SymbolTable.py
@@ -126,7 +126,6 @@
 makeDir(path)

 code = self.codeFormatter()
-code('/** Auto generated C++ code started by $__file__:$__line__  
*/')


 for include_path in includes:
 code('#include "${{include_path}}"')
diff --git a/src/mem/slicc/symbols/Type.py b/src/mem/slicc/symbols/Type.py
index a1ca200..c6013f8 100644
--- a/src/mem/slicc/symbols/Type.py
+++ b/src/mem/slicc/symbols/Type.py
@@ -204,12 +204,6 @@
 def printTypeHH(self, path):
 code = self.symtab.codeFormatter()
 code('''
-/** \\file ${{self.c_ident}}.hh
- *
- *
- * Auto generated C++ code started by $__file__:$__line__
- */
-
 #ifndef __${{self.c_ident}}_HH__
 #define __${{self.c_ident}}_HH__

@@ -404,11 +398,6 @@
 code = self.symtab.codeFormatter()

 code('''
-/** \\file ${{self.c_ident}}.cc
- *
- * Auto generated C++ code started by $__file__:$__line__
- */
-
 #include 
 #include 

@@ -449,11 +438,6 @@
 def printEnumHH(self, path):
 code = self.symtab.codeFormatter()
 code('''
-/** \\file ${{self.c_ident}}.hh
- *
- * Auto generated C++ code started by $__file__:$__line__
- */
-
 #ifndef __${{self.c_ident}}_HH__
 #define __${{self.c_ident}}_HH__

@@ -555,11 +539,6 @@
 def printEnumCC(self, path):
 code = self.symtab.codeFormatter()
 code('''
-/** \\file ${{self.c_ident}}.hh
- *
- * Auto generated C++ code started by $__file__:$__line__
- */
-
 #include 
 #include 
 #include 
diff --git a/src/python/m5/util/code_formatter.py  
b/src/python/m5/util/code_formatter.py

index 0ca8c98..374e8cc 100644
--- a/src/python/m5/util/code_formatter.py
+++ b/src/python/m5/util/code_formatter.py
@@ -154,6 +154,36 @@

 def write(self, *args):
 f = open(os.path.join(*args), "w")
+name, extension = os.path.splitext(f.name)
+
+# Add a comment to inform which file generated the generated file
+# to make it easier to backtrack and modify generated code
+frame = inspect.currentframe().f_back
+if re.match('\.(cc|hh|c|h)', extension) is not None:
+f.write(f'''/**
+ * DO 

[gem5-dev] Change in gem5/gem5[develop]: python,scons,mem-ruby: Tag origin of generated files

2021-06-27 Thread Daniel Carvalho (Gerrit) via gem5-dev
Daniel Carvalho has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/47301 )



Change subject: python,scons,mem-ruby: Tag origin of generated files
..

python,scons,mem-ruby: Tag origin of generated files

This will make it easier to backtrack and modify
such files when needed.

Change-Id: If09b6f848e607fb21a0acf2114ce0b9b0aa4751f
Signed-off-by: Daniel R. Carvalho 
---
M src/SConscript
M src/mem/slicc/symbols/StateMachine.py
M src/mem/slicc/symbols/SymbolTable.py
M src/mem/slicc/symbols/Type.py
M src/python/m5/util/code_formatter.py
5 files changed, 32 insertions(+), 42 deletions(-)



diff --git a/src/SConscript b/src/SConscript
index 08cfeee..804160b 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -1149,10 +1149,6 @@

 # file header
 code('''
-/*
- * DO NOT EDIT THIS FILE! Automatically generated by SCons.
- */
-
 #include "base/debug.hh"

 namespace Debug {
@@ -1206,10 +1202,6 @@

 # file header boilerplate
 code('''\
-/*
- * DO NOT EDIT THIS FILE! Automatically generated by SCons.
- */
-
 #ifndef __DEBUG_${name}_HH__
 #define __DEBUG_${name}_HH__

diff --git a/src/mem/slicc/symbols/StateMachine.py  
b/src/mem/slicc/symbols/StateMachine.py

index 0c4651d..42b5553 100644
--- a/src/mem/slicc/symbols/StateMachine.py
+++ b/src/mem/slicc/symbols/StateMachine.py
@@ -272,11 +272,7 @@
 c_ident = "%s_Controller" % self.ident

 code('''
-/** \\file $c_ident.hh
- *
- * Auto generated C++ code started by $__file__:$__line__
- * Created by slicc definition of Module "${{self.short}}"
- */
+// Created by slicc definition of Module "${{self.short}}"

 #ifndef __${ident}_CONTROLLER_HH__
 #define __${ident}_CONTROLLER_HH__
@@ -492,11 +488,7 @@
 '''

 code('''
-/** \\file $c_ident.cc
- *
- * Auto generated C++ code started by $__file__:$__line__
- * Created by slicc definition of Module "${{self.short}}"
- */
+// Created by slicc definition of Module "${{self.short}}"

 #include 
 #include 
@@ -1220,7 +1212,6 @@
 outputRequest_types = False

 code('''
-// Auto generated C++ code started by $__file__:$__line__
 // ${ident}: ${{self.short}}

 #include 
@@ -1343,7 +1334,6 @@
 ident = self.ident

 code('''
-// Auto generated C++ code started by $__file__:$__line__
 // ${ident}: ${{self.short}}

 #include 
diff --git a/src/mem/slicc/symbols/SymbolTable.py  
b/src/mem/slicc/symbols/SymbolTable.py

index e4fc0a3..fb01b01 100644
--- a/src/mem/slicc/symbols/SymbolTable.py
+++ b/src/mem/slicc/symbols/SymbolTable.py
@@ -126,7 +126,6 @@
 makeDir(path)

 code = self.codeFormatter()
-code('/** Auto generated C++ code started by $__file__:$__line__  
*/')


 for include_path in includes:
 code('#include "${{include_path}}"')
diff --git a/src/mem/slicc/symbols/Type.py b/src/mem/slicc/symbols/Type.py
index a1ca200..c6013f8 100644
--- a/src/mem/slicc/symbols/Type.py
+++ b/src/mem/slicc/symbols/Type.py
@@ -204,12 +204,6 @@
 def printTypeHH(self, path):
 code = self.symtab.codeFormatter()
 code('''
-/** \\file ${{self.c_ident}}.hh
- *
- *
- * Auto generated C++ code started by $__file__:$__line__
- */
-
 #ifndef __${{self.c_ident}}_HH__
 #define __${{self.c_ident}}_HH__

@@ -404,11 +398,6 @@
 code = self.symtab.codeFormatter()

 code('''
-/** \\file ${{self.c_ident}}.cc
- *
- * Auto generated C++ code started by $__file__:$__line__
- */
-
 #include 
 #include 

@@ -449,11 +438,6 @@
 def printEnumHH(self, path):
 code = self.symtab.codeFormatter()
 code('''
-/** \\file ${{self.c_ident}}.hh
- *
- * Auto generated C++ code started by $__file__:$__line__
- */
-
 #ifndef __${{self.c_ident}}_HH__
 #define __${{self.c_ident}}_HH__

@@ -555,11 +539,6 @@
 def printEnumCC(self, path):
 code = self.symtab.codeFormatter()
 code('''
-/** \\file ${{self.c_ident}}.hh
- *
- * Auto generated C++ code started by $__file__:$__line__
- */
-
 #include 
 #include 
 #include 
diff --git a/src/python/m5/util/code_formatter.py  
b/src/python/m5/util/code_formatter.py

index 0ca8c98..8d726d2 100644
--- a/src/python/m5/util/code_formatter.py
+++ b/src/python/m5/util/code_formatter.py
@@ -154,6 +154,36 @@

 def write(self, *args):
 f = open(os.path.join(*args), "w")
+name, extension = os.path.splitext(f.name)
+
+# Add a comment to inform which file generated the generated file
+# to make it easier to backtrack and modify generated code
+frame = inspect.currentframe().f_back
+if re.match('\.(cc|hh|c|h)', extension) is not None:
+f.write('''/**
+ * DO NOT EDIT THIS FILE!
+ * File automatically generated by
+ *   %s:%s
+ */
+
+''' % (frame.f_code.co_filename, frame.f_lineno))
+elif re.match('\.py', extension) is not None:
+f.write('''#
+# DO NOT EDIT THIS FILE!
+# File automatically