Commit f15f210b authored by Ian Lynagh's avatar Ian Lynagh
Browse files

Remove mention of -fno-method-sharing from comments and docs

parent 82c9f3f0
......@@ -1050,22 +1050,6 @@ Here's a concrete example that does this (test tc200):
Current solution: only do the "method sharing" thing for the first type/dict
application, not for the iterated ones. A horribly subtle point.
Note [No method sharing]
~~~~~~~~~~~~~~~~~~~~~~~~
The -fno-method-sharing flag controls what happens so far as the LIE
is concerned. The default case is that for an overloaded function we
generate a "method" Id, and add the Method Inst to the LIE. So you get
something like
f :: Num a => a -> a
f = /\a (d:Num a) -> let m = (+) a d in \ (x:a) -> m x x
If you specify -fno-method-sharing, the dictionary application
isn't shared, so we get
f :: Num a => a -> a
f = /\a (d:Num a) (x:a) -> (+) a d x x
This gets a bit less sharing, but
a) it's better for RULEs involving overloaded functions
b) perhaps fewer separated lambdas
\begin{code}
doStupidChecks :: TcId
-> [TcType]
......
......@@ -1396,13 +1396,6 @@
<entry><option>-fno-dicts-strict</option></entry>
</row>
<row>
<entry><option>-fmethod-sharing</option></entry>
<entry>Share specialisations of overloaded functions (default)</entry>
<entry>dynamic</entry>
<entry><option>-fno-method-sharing</option></entry>
</row>
<row>
<entry><option>-fdo-eta-reduction</option></entry>
<entry>Enable eta-reduction. Implied by <option>-O</option>.</entry>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment