Skip to content
  • Ben Gamari's avatar
    [iserv] Fixing the word size for RemotePtr and toWordArray · 7ae4a28f
    Ben Gamari authored and Ben Gamari's avatar Ben Gamari committed
    When we load non absolute pathed .so's this usually implies that we
    expect the system to have them in place already, and hence we should not
    need to ship them.  Without the absolute path to the library, we are
    also unable to open and send said library.  Thus we'll do library
    shipping only for libraries with absolute paths.
    
    When dealing with a host and target of different word size (say host
    hast 64bit, target has 32bit), we need to fix the RemotePtr size and the
    toWordArray function, as they are part of the iserv ResolvedBCO binary
    protocol.  This needs to be word size independent.  The choice for
    RemotePtr to 64bit was made to ensure we can store 64bit pointers when
    targeting 64bit. The choice for 32bit word arrays was made wrt.
    encoding/decoding on the potentially slower device.
    
    The efficient serialization code has been graciously provided by
    @bgamari.
    
    Reviewers: bgamari, simonmar, austin, hvr
    
    Reviewed By: bgamari
    
    Subscribers: Ericson2314, rwbarton, thomie, ryantrinkle
    
    Differential Revision: https://phabricator.haskell.org/D3443
    7ae4a28f