<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <pre class="moz-quote-pre" wrap="">> By the time we do CorePrep, the hi files should already have been written.

I don't think so. When we generate real code we write the interface after the backend has generated the output object. See Note [Writing interface files] in GHC.Driver.Main

Cheers,
Sylvain

</pre>
    <div class="moz-cite-prefix">On 17/09/2020 12:17, Cheng Shao wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CALHrtFkp8PbHAu1SgLGr+59++zPRUOi_n3_bjaL6dxxkGB4x4A@mail.gmail.com">
      <pre class="moz-quote-pre" wrap="">Hi Ben,

The -ddump-if-trace output is attached here. The error is produced
when compiling GHC.Types in ghc-prim.

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Note that interface files are written after the Core pipeline is run.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
Sorry for the confusion, I didn't mean the Core simplifier pipeline. I
mean the "Core -> Iface -> Core" roundtrip I tried to perform using
the output of CorePrep. By the time we do CorePrep, the hi files
should already have been written.

On Wed, Sep 16, 2020 at 11:48 PM Ben Gamari <a class="moz-txt-link-rfc2396E" href="mailto:ben@smart-cactus.org"><ben@smart-cactus.org></a> wrote:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">
Cheng Shao <a class="moz-txt-link-rfc2396E" href="mailto:cheng.shao@tweag.io"><cheng.shao@tweag.io></a> writes:

</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">Hi all,

Following a short chat in #ghc last week, I did a first attempt of
reusing existing Iface logic to implement serialization for
codegen-related Core. The implementation is included in the attached
patch (~100 loc). As a quick and dirty validation of whether it works,
I also modified the codegen pipeline logic to do a roundtrip: after
CorePrep, the Core bits are converted to Iface, then we immediately
convert it back and use it for later compiling.

With the patch applied, stage-1 GHC would produce a "missing hi file"
error like:

: Bad interface file: _build/stage1/libraries/ghc-prim/build/GHC/Types.hi
      _build/stage1/libraries/ghc-prim/build/GHC/Types.hi:
openBinaryFile: does not exist (No such file or directory)

</pre>
        </blockquote>
        <pre class="moz-quote-pre" wrap="">Hi Cheng,

Which module is being compiled when this error is produced? Could you
provide -ddump-if-trace output for the failing compilation?

</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">The error surprises me, since by the time we perform the Core-to-Core
roundtrip, the .hi file should already have been written to disk. Is
there anything obviously wrong with the implementation? I'd appreciate
any pointers or further questions, thanks a lot!

</pre>
        </blockquote>
        <pre class="moz-quote-pre" wrap="">Note that interface files are written after the Core pipeline is run.

Cheers,

- Ben

</pre>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
ghc-devs mailing list
<a class="moz-txt-link-abbreviated" href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a>
<a class="moz-txt-link-freetext" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a>
</pre>
      </blockquote>
    </blockquote>
  </body>
</html>