diff options
author | Simon Marlow <marlowsd@gmail.com> | 2011-11-30 08:52:38 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2011-11-30 08:52:38 +0000 |
commit | b35a12aa910dcb90cfd7b40ca1fb6d89a0a63bc8 (patch) | |
tree | 5fe291a2da0949b1798025e58f24a1648e04fdfc | |
parent | 53055bb5023e8cc145ad8a9cd36ac56cee4695b0 (diff) | |
download | haskell-b35a12aa910dcb90cfd7b40ca1fb6d89a0a63bc8.tar.gz |
remove obsolete notes (#5660)
-rw-r--r-- | compiler/DLL-NOTES | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/compiler/DLL-NOTES b/compiler/DLL-NOTES deleted file mode 100644 index c710b14251..0000000000 --- a/compiler/DLL-NOTES +++ /dev/null @@ -1,58 +0,0 @@ - The DLL story - ------------- - -*** - -This file is intended to be a focal point for notes on how DLLs work. Please -add cross-references to source and other docs, especially when you don't -find something here that you need. - -*** - - -Introduction ------------- - -On Windows, DLLs are synonymous with packages (since 4.07; this change -simplified a rather horrible mess). Hence whenever a module is to be -compiled to go in a DLL, it must be compiled with -package-name dll-name. -Typically, failing to do this gives Windows error message boxes of the form -"The instruction at address <x> tried to read memory at address <x>". - - -Dependencies ------------- - -Because references in DLLs must be fully resolved when the DLL is compiled -(except for references to other DLLs), it is not possible for DLLs to call -the main program. This means that the parts of the RTS and standard package -which call the main program cannot be compiled into the relevant DLLs, and -must instead be compiled as standalone object files and linked in to each -executable. This gives the following picture of dependencies within a program: - - ___________ ___________ - | |------>| | GHC-land | Application-land -DLL-land | HSrts.dll | | HSstd.dll | | - |___________|<------|___________| | - | ^ | ------------------|-------------------|-------------------| - _____v_____ _____|______ | -.o-land | | | | | - | Main.o | | PrelMain.o |----------------------- - |___________| |____________| | | - | | ______v______ - | | | | - ------------------------------------------>| Main.o | - | |_____________| - -(The application's dependencies are not shown.) - - -Bits of the compiler that deal with DLLs ----------------------------------------- - -basicTypes/Module.lhs is the most important place, as it deals with which -modules identifiers are in. - -basicTypes/name.lhs, other bits of basicTypes/, nativeGen/, codeGen/, -abcCSyn/, and even profiling/ have other references. |