• sof's avatar
    [project @ 1999-03-02 17:12:54 by sof] · 94ff1ec1
    sof authored
    Directories can now be flagged as containing interface files that have
    their corresponding object codes living in Win32 DLLs.
    
    The compiler needs to keep track of whether a name refers to something
    in a DLL or not, since Win32 DLLs forces you to distinguish between
    the two at the point of use. For example, the code generated for
    the following snippet
    
         return (x+2);
    
    will differ. If 'x' resides in a DLL, you need to perform an extra
    indirection to get at its value. Effectively, the generated code
    becomes
    
         return (*x+2);
    
    For functions, the distinction can be made transparent, but we
    can avoid jumping through an extra level of indirection if we
    do indicate that a label will be imported from a DLL.
    
    Back to the renamer and its scheme, directories that contain
    the file ".dLL_ifs.hi" (name chosen to lessen the risk of a clash..)
    are considered as containing 'DLL interface files'. There's two
    caveats to this scheme:
    
     - interface files found in "." are not considered to be referring
       to something in a DLL.
     - if the compiler has got -static on the command line, then all
       interface file in scope are considered to be 'normal'.
    94ff1ec1
RnIfaces.lhs 41.4 KB