Improve error messsage when argument count varies
[ghc-hetmet.git] / ghc / includes / Closures.h
index 506592f..8487893 100644 (file)
@@ -189,11 +189,6 @@ typedef struct {
   StgHeader  header;
 } StgRetry;
 
-typedef struct _StgForeignObj {
-  StgHeader      header;
-  StgAddr        data;         /* pointer to data in non-haskell-land */
-} StgForeignObj;
-  
 typedef struct _StgStableName {
   StgHeader      header;
   StgWord        sn;
@@ -344,6 +339,11 @@ typedef struct {
  *   - In StgTRecHeader, it might be worthwhile having separate chunks
  *     of read-only and read-write locations.  This would save a
  *     new_value field in the read-only locations.
+ *
+ *   - In StgAtomicallyFrame, we could combine the waiting bit into
+ *     the header (maybe a different info tbl for a waiting transaction).
+ *     This means we can specialise the code for the atomically frame
+ *     (it immediately switches on frame->waiting anyway).
  */
 
 typedef struct StgTVarWaitQueue_ {
@@ -358,7 +358,7 @@ typedef struct {
   StgClosure                *volatile current_value;
   StgTVarWaitQueue          *volatile first_wait_queue_entry;
 #if defined(SMP)
-  struct StgTRecHeader_     *volatile last_update_by;
+  StgInt                     volatile num_updates;
 #endif
 } StgTVar;
 
@@ -369,11 +369,11 @@ typedef struct {
   StgClosure                *expected_value;
   StgClosure                *new_value; 
 #if defined(SMP)
-  struct StgTRecHeader_     *saw_update_by;
+  StgInt                     num_updates;
 #endif
 } TRecEntry;
 
-#define TREC_CHUNK_NUM_ENTRIES 256
+#define TREC_CHUNK_NUM_ENTRIES 16
 
 typedef struct StgTRecChunk_ {
   StgHeader                  header;
@@ -399,7 +399,6 @@ typedef struct StgTRecHeader_ {
 
 typedef struct {
     StgHeader   header;
-    StgBool     waiting;
     StgClosure *code;
 } StgAtomicallyFrame;