<div dir="ltr">relatedly: wont the source be preserved in the git history if we remove it? the CPP etc solution is no simpler than just keeping the code cached in the git history right? Or will having it in the repo, but CPP'd/commented out somehow preserve some invariant that cant be maintained by resuscitating it later from the git history? the mater branch doesn't allow rebasing or force pushes AFAIK anyways, so the history truly is immutable, right?<div><br></div><div>tl;dr our git repo is immutable, if we just deleted the dir, we still have it in the git history right? Esp if its not being maintained / type checked either way?<br><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 19, 2015 at 7:12 PM, Richard Eisenberg <span dir="ltr"><<a href="mailto:eir@cis.upenn.edu" target="_blank">eir@cis.upenn.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">With all due respect to Manuel's request, could I opt for a different resolution? I frequently (several times during most minutes of GHC programming) grep the GHC source code for this or that. If the vectorisation code is CPP'd away but still present in the compiler/ directory, these greps will find hits in the code. Furthermore, without the specific knowledge that there is a `#if 0` at the top of the file, the code will look quite active. Of course, I could modify my grep macro to skip the vectorise directory, but the next dev down the road might not know to do this.<br>
<br>
Here's an alternate suggestion: in SimplCore, keep the call to vectorise around, but commented out (not just with CPP, for better syntax highlighting). Include a Note explaining what `vectorise` does and why it's not there at the moment. However, move the actual vectorisation code somewhere else in the repo, outside of the source directories (`utils`? a new `attic` directory?).<br>
<br>
Manuel, is this acceptable to you? Other devs, thoughts? Perhaps we should also make a Trac ticket asking for some love to be given to this feature.<br>
<br>
Thanks,<br>
Richard<br>
<div class="HOEnZb"><div class="h5"><br>
On Jan 19, 2015, at 9:21 AM, Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com">simonpj@microsoft.com</a>> wrote:<br>
<br>
> Austin, (or anyone else)<br>
><br>
> Manuel says:<br>
><br>
> |  > Would it be ok if we left it in the repo, but CPP'd it out so that<br>
> |  we<br>
> |  > didn't compile everything?  (The DPH library is in the same state at<br>
> |  > the moment.)<br>
> |  ><br>
> |  > It might suffer bit-rot, but it’d still be there for resurrection.<br>
> |<br>
> |  Sure, that’s ok.<br>
><br>
> Could you action this?  Just avoid compiling anything in 'vectorise/', using (I suppose) cpp to create a stub where necessary.<br>
><br>
> Leave enough comments to explain!<br>
><br>
> Simon<br>
><br>
> |<br>
> |  I hope everything is fine in Cambridge!<br>
> |  Manuel<br>
> |<br>
> |  > |  -----Original Message-----<br>
> |  > |  From: ghc-devs [mailto:<a href="mailto:ghc-devs-bounces@haskell.org">ghc-devs-bounces@haskell.org</a>] On Behalf Of<br>
> |  > | Manuel M T Chakravarty<br>
> |  > |  Sent: 16 January 2015 02:58<br>
> |  > |  To: Richard Eisenberg<br>
> |  > |  Cc: <a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a> Devs<br>
> |  > |  Subject: Re: vectorisation code?<br>
> |  > |<br>
> |  > |  [Sorry, sent from the wrong account at first.]<br>
> |  > |<br>
> |  > |  We currently don’t have the resources to work on DPH. I would<br>
> |  > | obviously prefer to leave the code in, in the hope that we will be<br>
> |  > | able to return to it.<br>
> |  > |<br>
> |  > |  Manuel<br>
> |  > |<br>
> |  > |  > Richard Eisenberg <<a href="mailto:eir@cis.upenn.edu">eir@cis.upenn.edu</a>>:<br>
> |  > |  ><br>
> |  > |  > Hi devs,<br>
> |  > |  ><br>
> |  > |  > There's a sizable number of modules in the `vectorise`<br>
> |  > | subdirectory  of GHC. I'm sure these do all sorts of wonderful<br>
> |  > | things. But what,  exactly? And, does anyone make use of these<br>
> |  wonderful things?<br>
> |  > |  ><br>
> |  > |  > A quick poking through the code shows a tiny link between the<br>
> |  > | vectorise code and the rest of GHC -- the function `vectorise`<br>
> |  > | exported from the module `Vectorise`, which is named in exactly<br>
> |  one<br>
> |  > | place from SimplCore. From what I can tell, the function will be<br>
> |  > | called only when `-fvectorise` is specified, and then it seems to<br>
> |  > | interact with a {-# VECTORISE #-} pragma. However, `{-# VECTORISE<br>
> |  > | #-}`  doesn't appear in the manual at all, and `-fvectorise` is<br>
> |  > | given only a  cursory explanation. It seems these work with DPH...<br>
> |  > | which has been  disabled, no? Searching online finds several hits,<br>
> |  > | but nothing more  recent than 2012.<br>
> |  > |  ><br>
> |  > |  > I hope this question doesn't offend -- it seems that<br>
> |  > | vectorisation  probably has amazing performance gains. Yet, the<br>
> |  > | feature also seems  unloved. In the meantime, compiling (and<br>
> |  > | recompiling, and<br>
> |  > |  recompiling...) the modules takes time, as does going through<br>
> |  them<br>
> |  > | to  propagate changes from elsewhere. If this feature is truly<br>
> |  > | orphaned,  unloved, and unused at the moment, is it reasonable to<br>
> |  > | consider  putting it on furlough?<br>
> |  > |  ><br>
> |  > |  > Thanks,<br>
> |  > |  > Richard<br>
> |  > |  > _______________________________________________<br>
> |  > |  > ghc-devs mailing list<br>
> |  > |  > <a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
> |  > |  > <a href="http://www.haskell.org/mailman/listinfo/ghc-devs" target="_blank">http://www.haskell.org/mailman/listinfo/ghc-devs</a><br>
> |  > |<br>
> |  > |  _______________________________________________<br>
> |  > |  ghc-devs mailing list<br>
> |  > |  <a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
> |  > |  <a href="http://www.haskell.org/mailman/listinfo/ghc-devs" target="_blank">http://www.haskell.org/mailman/listinfo/ghc-devs</a><br>
><br>
> _______________________________________________<br>
> ghc-devs mailing list<br>
> <a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
> <a href="http://www.haskell.org/mailman/listinfo/ghc-devs" target="_blank">http://www.haskell.org/mailman/listinfo/ghc-devs</a><br>
><br>
<br>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/ghc-devs" target="_blank">http://www.haskell.org/mailman/listinfo/ghc-devs</a><br>
</div></div></blockquote></div><br></div>