The main problem I'm trying to solve is explained in my comment [1]. Basically when building .cmm files the new SRT algorithm re-order definitions in a way that breaks dependency ordering, which in turn breaks C backend, because in C we should declare before using. (see my comment for why we don't have this problem when building Haskell modules)
If we don't allow defining CAFFY things in Cmm files then I can simply not do SRT analysis on Cmm files and avoid the problem. Ömer [1]: https://gitlab.haskell.org/ghc/ghc/merge_requests/1304#note_248547 Ben Gamari <[email protected]>, 23 Oca 2020 Per, 15:17 tarihinde şunu yazdı: > > While it's true that in principle one could imagine a case where you would > want a CAFfy Cmm proc, I can't think of any stuck cases in the RTS today. > Consequently it wouldn't surprise me if this was broken. > > Frankly, I wouldn't worry too much about this if it's nontrivial to fix. > > Cheers, > > - Ben > > On January 23, 2020 1:54:04 AM EST, "Ömer Sinan Ağacan" > <[email protected]> wrote: >> >> Hi Simon, >> >> Currently CmmParse only generates CmmLabels for procs, and those are >> considered >> non-CAFFY by hasCAF (and thus CmmBuildInfoTables). >> >> As a result if I have two procs in a .cmm file: >> >> - p1, refers to a CAF in base >> - p2, refers to p1 >> >> I *think* (haven't checked) we don't consider p1 as CAFFY, and even if we >> do, we >> don't consider p2 as CAFFY becuase the reference from p2 to p1 won't be >> considered CAFFY by hasCAF. >> >> So we currently can't define a CAFFY Cmm proc in .cmm files as the SRT >> algorithm >> will never build SRTs for procs in .cmm files. >> >> Is this intentional? I'd expect this to be possible, because there's nothing >> preventing me from referring to a CAFFY definition in a library (e.g. base) >> in a >> .cmm file, but doing this would be a bug in runtime. >> >> Thanks, >> >> Ömer >> ________________________________ >> ghc-devs mailing list >> [email protected] >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > > > -- > Sent from my Android device with K-9 Mail. Please excuse my brevity. _______________________________________________ ghc-devs mailing list [email protected] http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
