From 301f1535d4bec8659ee6e62c96608156c36ceea2 Mon Sep 17 00:00:00 2001 From: simonpj Date: Fri, 21 Mar 2003 09:22:28 +0000 Subject: [PATCH] [project @ 2003-03-21 09:22:28 by simonpj] Notes about constructor info tables --- ghc/docs/comm/the-beast/data-types.html | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ghc/docs/comm/the-beast/data-types.html b/ghc/docs/comm/the-beast/data-types.html index 7e3a264..fef4852 100644 --- a/ghc/docs/comm/the-beast/data-types.html +++ b/ghc/docs/comm/the-beast/data-types.html @@ -220,7 +220,23 @@ that type, and that in turn depends on whether module M was compiled with -funbox-strict-fields. So when writing an interface file, GHC therefore records with each data type whether its strict fields (if any) should be unboxed. + +

Labels and info tables

+ +Quick rough notes: SLPJ March 2003.

+Every data constructor Chas two info tables: +

+Statically-allocated constructors are not moved by the garbage collector, and therefore have a different closure +type from dynamically-allocated constructors; hence they need +a distinct info table. +Both info tables share the same entry code, but since the entry code is phyiscally juxtaposed with the +info table, it must be duplicated (C_static_entry and C_con_entry respectively). + -- 1.7.10.4