improve panic messages a bit, with the GHC version and platform
authorSimon Marlow <simonmar@microsoft.com>
Tue, 14 Mar 2006 17:08:13 +0000 (17:08 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Tue, 14 Mar 2006 17:08:13 +0000 (17:08 +0000)
ghc/compiler/Makefile
ghc/compiler/utils/Panic.lhs
ghc/rts/Makefile
ghc/rts/RtsMessages.c

index 1a9b428..c1819f2 100644 (file)
@@ -261,9 +261,9 @@ stage1/$(PLATFORM_H) : stage_dirs $(FPTOOLS_TOP)/mk/config.mk Makefile
        @echo "#ifndef __PLATFORM_H__"  >$@
        @echo "#define __PLATFORM_H__" >>$@
        @echo >> $@
-       @echo "#define BuildPlatform_TYPE  $(BuildPlatform_CPP)" >> $@
-       @echo "#define HostPlatform_TYPE   $(HostPlatform_CPP)" >> $@
-       @echo "#define TargetPlatform_TYPE $(TargetPlatform_CPP)" >> $@
+       @echo "#define BuildPlatform_NAME  \"$(BUILDPLATFORM)\"" >> $@
+       @echo "#define HostPlatform_NAME   \"$(HOSTPLATFORM)\"" >> $@
+       @echo "#define TargetPlatform_NAME \"$(TARGETPLATFORM)\"" >> $@
        @echo >> $@
        @echo "#define $(BuildPlatform_CPP)_BUILD       1" >> $@
        @echo "#define $(HostPlatform_CPP)_HOST         1" >> $@
@@ -307,9 +307,9 @@ stage2/$(PLATFORM_H) : stage_dirs $(FPTOOLS_TOP)/mk/config.mk Makefile
        @echo "#ifndef __PLATFORM_H__"  >$@
        @echo "#define __PLATFORM_H__" >>$@
        @echo >> $@
-       @echo "#define BuildPlatform_TYPE  $(HostPlatform_CPP)" >> $@
-       @echo "#define HostPlatform_TYPE   $(TargetPlatform_CPP)" >> $@
-       @echo "#define TargetPlatform_TYPE $(TargetPlatform_CPP)" >> $@
+       @echo "#define BuildPlatform_NAME  \"$(HOSTPLATFORM)\"" >> $@
+       @echo "#define HostPlatform_NAME   \"$(TARGETPLATFORM)\"" >> $@
+       @echo "#define TargetPlatform_NAME \"$(TARGETPLATFORM)\"" >> $@
        @echo >> $@
        @echo "#define $(HostPlatform_CPP)_BUILD        1" >> $@
        @echo "#define $(TargetPlatform_CPP)_HOST               1" >> $@
index cdfc962..1a74d5d 100644 (file)
@@ -120,11 +120,10 @@ showGhcException (InstallationError str)
 showGhcException (Interrupted)
    = showString "interrupted"
 showGhcException (Panic s)
-   = showString ("panic! (the `impossible' happened, GHC version "
-                ++ cProjectVersion ++ "):\n\t"
+   = showString ("panic! (the 'impossible' happened)\n"
+                ++ "  (GHC version " ++ cProjectVersion ++ " for " ++ TargetPlatform_NAME ++ "):\n\t"
                 ++ s ++ "\n\n"
-                ++ "Please report this as a compiler bug.  See:\n"
-                ++ "  http://www.haskell.org/ghc/reportabug\n")
+                ++ "Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug\n")
 
 #if __GLASGOW_HASKELL__ < 603
 myMkTyConApp = mkAppTy
index 34bb7f5..ef3e244 100644 (file)
@@ -124,6 +124,8 @@ SRC_HC_OPTS += -static
 endif
 # SRC_HC_OPTS += -fPIC
 
+RtsMessages_CC_OPTS += -DProjectVersion=\"$(ProjectVersion)\"
+
 ifeq "$(way)" "mp"
 SRC_HC_OPTS += -I$$PVM_ROOT/include
 endif
index 9f36e2e..1242d88 100644 (file)
@@ -107,6 +107,9 @@ isGUIApp()
 }
 #endif
 
+#define xstr(s) str(s)
+#define str(s) #s
+
 void
 rtsFatalInternalErrorFn(char *s, va_list ap)
 {
@@ -135,7 +138,8 @@ rtsFatalInternalErrorFn(char *s, va_list ap)
      }
      vfprintf(stderr, s, ap);
      fprintf(stderr, "\n");
-     fprintf(stderr, "    Please report this as a compiler bug.  See:\n    http://www.haskell.org/ghc/reportabug\n");
+     fprintf(stderr, "    (GHC version %s for %s)\n", ProjectVersion, xstr(HostPlatform_TYPE));
+     fprintf(stderr, "    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug\n");
      fflush(stderr);
   }