packages feed

ghc-debug-stub 0.6.0.0 → 0.7.0.0

raw patch · 4 files changed

+25/−13 lines, 4 filesdep ~ghc-debug-conventiondep ~ghc-primPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: ghc-debug-convention, ghc-prim

API changes (from Hackage documentation)

- GHC.Debug.Stub: instance GHC.Show.Show GHC.Debug.Stub.SocketAddr
+ GHC.Debug.Stub: instance GHC.Internal.Show.Show GHC.Debug.Stub.SocketAddr

Files

CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for ghc-debug-stub +## 0.7.0.0 -- 2025-05-20++* Compatability with 9.10 and 9.12+ ## 0.6.0.0 -- 2024-04-10  * Add requests for decoding cost centres and other profiling info
cbits/stub.cpp view
@@ -149,7 +149,7 @@             this->sock.write((char *) &status_payload, sizeof(uint16_t));             // then the body, usually empty             trace("responding with body of length %lu: ( ", len);-            for (int i = 0; i < len; i++)+            for (size_t i = 0; i < len; i++)             {                 trace("%02X", buf[i]);             }@@ -262,7 +262,7 @@   void collect_threads(std::function<void(StgTSO*)> f) {-    for (int g=0; g < RtsFlags.GcFlags.generations; g++) {+    for (uint32_t g=0; g < RtsFlags.GcFlags.generations; g++) {         StgTSO *tso = generations[g].threads;         while (tso != END_TSO_QUEUE) {             f(tso);@@ -295,7 +295,7 @@ // Size fields are always uint32_t in network-byte-order. static void write_size(Response& resp, StgWord size) {     uint32_t size_payload = htonl(size);-    trace("SIZE %llu", size);+    trace("SIZE %lu", size);     resp.write((uint32_t) size_payload); } @@ -315,8 +315,6 @@ }  static void write_small_bitmap(Response& resp, StgWord bitmap, StgWord size) {-    uint32_t i = 0;-     // Small bitmap     write_size(resp, size);     while (size > 0) {@@ -643,7 +641,7 @@         break;        case CMD_SAVED_OBJECTS:-        int i;+        StgWord i;         for (i = 0; i < g_savedObjectState.n_objects; i++) {           StgStablePtr v = g_savedObjectState.objects[i];           resp.write((uint64_t)(UNTAG_CLOSURE((StgClosure *)deRefStablePtr(v))));@@ -740,20 +738,20 @@           trace("ELT: %p\n", info_table);-#if MIN_VERSION_GLASGOW_HASKELL(9,11,20240401,0)+#if MIN_VERSION_GLASGOW_HASKELL(9,10,0,0)         InfoProvEnt elt;         int elt_res = lookupIPE(info_table, &elt); #else         InfoProvEnt * elt = lookupIPE(info_table);         int elt_res = (bool) elt; #endif-        uint32_t len_payload;+         if (!elt_res){           trace("NOT FOUND\n");           resp.write((uint32_t) 0);         }         else {-#if MIN_VERSION_GLASGOW_HASKELL(9,11,20240401,0)+#if MIN_VERSION_GLASGOW_HASKELL(9,10,0,0)           InfoProv ip = elt.prov; #else           InfoProv ip = elt->prov;@@ -764,7 +762,17 @@            //  Using the function just produces garbage.. no idea why           write_string(resp, ip.table_name);+#if MIN_VERSION_GLASGOW_HASKELL(9,10,2,0)+          // In 9.10, GHC changed the closure_desc to uint32_t.+          // To maintain the previous behaviour, we format the id as its string+          // representation. For example, the number 10 is represented as the+          // string "10".+          char closure_desc_buf[CLOSURE_DESC_BUFFER_SIZE] = {};+          formatClosureDescIpe(&elt, closure_desc_buf);+          write_string(resp, closure_desc_buf);+#else           write_string(resp, ip.closure_desc);+#endif           write_string(resp, ip.ty_desc);           write_string(resp, ip.label);           write_string(resp, ip.module);
cbits/trace.h view
@@ -1,4 +1,4 @@ #pragma once  void trace(const char *fmt, ...)-    __attribute__((format (PRINTF, 1, 2)));+    __attribute__((format (printf, 1, 2)));
ghc-debug-stub.cabal view
@@ -1,6 +1,6 @@ cabal-version:       2.4 name:                ghc-debug-stub-version:             0.6.0.0+version:             0.7.0.0 synopsis:            Functions for instrumenting your application so the heap                      can be analysed with ghc-debug-common. description:         Functions for instrumenting your application so the heap can@@ -31,8 +31,8 @@   build-depends:       base >=4.16 && < 5                      , directory ^>= 1.3                      , filepath >= 1.4 && < 1.6-                     , ghc-prim >= 0.8 && < 0.12-                     , ghc-debug-convention == 0.6.0.0+                     , ghc-prim >= 0.8 && < 0.14+                     , ghc-debug-convention == 0.7.0.0   default-language:    Haskell2010   cxx-sources:         cbits/stub.cpp, cbits/socket.cpp, cbits/trace.cpp   cxx-options:         -std=gnu++11 -pthread -O3 -g3 -DTHREADED_RTS