[Chapel Merge] Add stringify template to query framework

Branch: refs/heads/main
Revision: b1c52e1
Author: arezaii
Link: Add stringify template to query framework by arezaii · Pull Request #18783 · chapel-lang/chapel · GitHub
Log Message:

Merge pull request #18783 from arezaii/next-tracing

Add stringify template to query framework

This PR adds the groundwork for each type to define a stringify template
to define how it should be represented in string form. This work carries on
from the initial spike at cray/chapel-private/issues/2742.

Adds a nullptr check to QualifiedType.toString()
Moves definition of gdbShouldBreakHere() from misc.h to break.h

TESTING:

  • [x] make test-libchplcomp passes all tests
  • [x] a breakpoint set on a query's hash can be identified between runs
  • [x] not implemented message prints for types without specialization
  • [x] can break on an ID using --gdb and --break-on-id
  • [x] can break query hash using --gdb and --compiler-library-parser

Reviewed by @aconsroe-hpe, @mppf, @dlongnecke-cray, and @lydia-duncan.
Thank you very much for the feedback

Signed-off-by: Ahmad Rezaii ahmad.rezaii@hpe.com

Modified Files:
A compiler/next/include/chpl/queries/stringify-functions.h

A compiler/next/include/chpl/util/break.h
A compiler/next/lib/util/break.cpp
M compiler/include/misc.h
M compiler/next/include/chpl/parsing/FileContents.h
M compiler/next/include/chpl/queries/Context-detail.h
M compiler/next/include/chpl/queries/Context.h
M compiler/next/include/chpl/queries/ID.h
M compiler/next/include/chpl/queries/Location.h
M compiler/next/include/chpl/queries/UniqueString.h
M compiler/next/include/chpl/queries/query-impl.h
M compiler/next/include/chpl/resolution/resolution-types.h
M compiler/next/include/chpl/resolution/scope-types.h
M compiler/next/include/chpl/types/BasicClassType.h
M compiler/next/include/chpl/types/ClassTypeDecorator.h
M compiler/next/include/chpl/types/CompositeType.h
M compiler/next/include/chpl/types/Param.h
M compiler/next/include/chpl/types/QualifiedType.h
M compiler/next/include/chpl/types/Type.h
M compiler/next/include/chpl/uast/ASTNode.h
M compiler/next/include/chpl/uast/ASTTag.h
M compiler/next/include/chpl/uast/BuilderResult.h
M compiler/next/include/chpl/uast/Expression.h
M compiler/next/include/chpl/uast/Function.h
M compiler/next/lib/queries/Context.cpp
M compiler/next/lib/types/QualifiedType.cpp
M compiler/next/lib/util/CMakeLists.txt
M compiler/next/lib/util/Makefile.include
M compiler/next/test/resolution/testPoi.cpp
M compiler/util/misc.cpp

Compare: https://github.com/chapel-lang/chapel/compare/7554fdd86a12...b1c52e158ea3