(no subject)
Lennart Augustsson <[email protected]> Sat, 20 Jan 2007 11:20:20 -0500
| Newsgroups | gmane.comp.lang.haskell.cvs.all |
|---|---|
| Message-ID | <1713967E-2686-47BA-AAB5-346EB945AD74__25484.7007607625$1169317310$gmane$org@augustsson.net> |
--Apple-Mail-2--123224419 Content-Transfer-Encoding: quoted-printable Content-Type: application/octet-stream; x-unix-mode=0644; name=ovl-str-doc Content-Disposition: attachment; filename=ovl-str-doc =0ANew=20patches:=0A=0A[Document=20the=20overloaded=20string=20= [email protected]**20070120161436]=20{=0Ahunk=20= ./docs/users_guide/flags.xml=20664=0A+=09=20=20=20=20<row>=0A+=09=20=20=20= =20=20=20<entry><option>-foverloaded-strings</option></entry>=0A+=09=20=20= =20=20=20=20<entry>Enable=20<link=20= linkend=3D"overloaded-strings">overloaded=20string=20literals</link>.=0A= +=09=20=20=20=20=20=20</entry>=0A+=09=20=20=20=20=20=20= <entry>dynamic</entry>=0A+=09=20=20=20=20=20=20= <entry><option>-fno-overloaded-strings</option></entry>=0A+=09=20=20=20=20= </row>=0Ahunk=20./docs/users_guide/glasgow_exts.xml=20243=0A+=20=20=20=20= =20=20<varlistentry>=0A+=09= <term><option>-foverloaded-strings</option></term>=0A+=09<listitem>=0A+=09= =20=20<para>Enables=20overloaded=20string=20literals=20(see=20<xref=0A+=09= =20=20linkend=3D"overloaded-strings"/>).</para>=0A+=09</listitem>=0A+=20=20= =20=20=20=20</varlistentry>=0A+=0Ahunk=20= ./docs/users_guide/glasgow_exts.xml=203824=0A+</sect2>=0A+=0A+<sect2=20= id=3D"overloaded-strings">=0A+<title>Overloaded=20string=20literals=0A= +</title>=0A+=0A+<para>=0A+GHC=20supports=20<emphasis>overloaded=20= string=20literals</emphasis>.=20=20Normally=20a=0A+string=20literal=20= has=20type=20<literal>String</literal>,=20but=20with=20overloaded=20= string=0A+literals=20enabled=20(with=20= <literal>-foverloaded-strings</literal>)=0A+=20a=20string=20literal=20= has=20type=20<literal>(IsString=20a)=20=3D>=20a</literal>.=0A+</para>=0A= +<para>=0A+This=20means=20that=20the=20usual=20string=20syntax=20can=20= be=20used,=20e.g.,=20for=20packed=20strings=0A+and=20other=20variations=20= of=20string=20like=20types.=20=20String=20literals=20behave=20very=20= much=0A+like=20integer=20literals,=20i.e.,=20they=20can=20be=20used=20in=20= both=20expressions=20and=20patterns.=0A+If=20used=20in=20a=20pattern=20= the=20literal=20with=20be=20replaced=20by=20an=20equality=20test,=20in=20= the=20same=0A+way=20as=20an=20integer=20literal=20is.=0A+</para>=0A= +<para>=0A+The=20class=20<literal>IsString</literal>=20is=20defined=20= as:=0A+<programlisting>=0A+class=20IsString=20a=20where=0A+=20=20=20=20= fromString=20::=20String=20->=20a=0A+</programlisting>=0A+And=20the=20= only=20predefined=20instance=20is=20the=20obvious=20one=20to=20make=20= strings=20work=20as=20usual:=0A+<programlisting>=0A+instance=20IsString=20= [Char]=20where=0A+=20=20=20=20fromString=20cs=20=3D=20cs=0A= +</programlisting>=0A+</para>=0A+<para>=0A+A=20small=20example:=0A= +<programlisting>=0A+newtype=20MyString=20=3D=20MyString=20String=20= deriving=20(Eq,=20Show)=0A+instance=20IsString=20MyString=20where=0A+=20=20= =20=20fromString=20=3D=20MyString=0A+=0A+greet=20::=20MyString=20->=20= MyString=0A+greet=20"hello"=20=3D=20"world"=0A+greet=20other=20=3D=20= other=0A+=0A+main=20=3D=20do=0A+=20=20=20=20print=20$=20greet=20"hello"=0A= +=20=20=20=20print=20$=20greet=20"fool"=0A+</programlisting>=0A+</para>=0A= +<para>=0A+Note=20that=20deriving=20<literal>Eq</literal>=20is=20= necessary=20for=20the=20pattern=20matching=0A+to=20work=20since=20it=20= gets=20translated=20into=20an=20equality=20comparison.=0A+</para>=0A}=0A=0A= Context:=0A=0A[Allow=20a=20word-sized=20argument=20for=20STKCHECK=0AIan=20= Lynagh=20<[email protected]>**20061221023825]=20=0A[Parse=20and=20use=20= ghci=20nofib=20output=0AIan=20Lynagh=20<[email protected]>**20061220220715]=20= =0A[Add=20hook=20to=20fam=20inst=20consistency=20check=20to=20= GHCi/--make=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061221004058]=20=0A[Fix=20import=20lists=0A= Pepe=20Iborra=20<[email protected]>**20061220042417]=20=0A[Deriving=20= for=20indexed=20newtypes=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061219213017=0A=20-=20The=20isomorphism-based=20= newtype-deriving=20isn't=20very=20useful=20for=20indexed=20types=0A=20=20= =20right=20now=20as=20it=20rejects=20all=20recursive=20declarations,=20= and=20we=20have=20to=20mark=0A=20=20=20all=20indexed=20type=20instances=20= as=20recurrsive=20as=20we=20can't=20guarantee=20that=20future=0A=20=20=20= instances=20aren't=20going=20to=20make=20them=20part=20of=20a=20= recursive=20group.=0A]=20=0A[Fixed=20uninitialised=20FunBind=20fun_tick=20= field=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061219192506]=20=0A[Add=20HscTypes.hi-boot-6=20= so=20builds=20with=20older=20GHCs=20succeed=0AIan=20Lynagh=20= <[email protected]>**20061219155954]=20=0A[Deriving=20for=20indexed=20data=20= types=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061218211205=0A=20-=20This=20patch=20= implements=20deriving=20clauses=20for=20data=20instance=20declarations=0A= =20=20=20(toplevel=20and=20associated)=0A=20-=20Doesn't=20support=20= standalone=20deriving.=20=20This=20could=20be=20easily=20supported,=0A=20= =20=20but=20requires=20an=20extension=20of=20the=20syntax=20of=20= standalone=20deriving=20clauses.=0A=20=20=20Bj=C3=B6rn,=20fancy=20adding=20= this?=0A=20-=20We=20cannot=20derive=20Typeable.=20=20This=20seems=20a=20= problem=20of=20notation,=20more=20than=20=0A=20=20=20anything=20else.=20=20= Why?=20=20For=20a=20binary=20vanilla=20data=20type=20"T=20a=20b",=20we=20= would=20=0A=20=20=20generate=20an=20instance=20Typeable2=20T;=20ie,=20= the=20instance=20is=20for=20the=20constructor=0A=20=20=20alone.=20=20In=20= the=20case=20of=20a=20family=20instance,=20such=20as=20(S=20[a]=20(Maybe=20= b)),=20we=0A=20=20=20simply=20have=20no=20means=20to=20denote=20the=20= associated=20constuctor.=20=20It=20appears=20to=0A=20=20=20require=20= type=20level=20lambda=20-=20something=20like=20(/\a=20b.=20S=20[a]=20= (Maybe=20b).=0A=20-=20Derivings=20are=20for=20*individual*=20family=20= *instances*,=20not=20for=20entire=20families.=0A=20=20=20Currently,=20I=20= know=20of=20no=20simple=20translation=20of=20class=20instances=20for=20= entire=20=0A=20=20=20families=20to=20System=20F_C.=20=20This=20actually=20= seems=20to=20be=20similar=20to=20implementing=0A=20=20=20open=20data=20= types=20=C3=A0=20la=20L=C3=B6h=20&=20Hinze.=0A=20-=20This=20patch=20only=20= covers=20data=20types,=20not=20newtypes.=0A]=20=0A[Don't=20overwrite=20= old=20memory=20with=200xaa=20when=20doing=20a=20realloc=0AIan=20Lynagh=20= <[email protected]>**20061218152423]=20=0A[Replace=20association=20list=20= in=20AddressEnv=20for=20a=20FiniteMap=0APepe=20Iborra=20= <[email protected]>**20061218141715]=20=0A[Remove=20uses=20of=20= Data.Traversable=20to=20fix=20stage1=20on=20pre=20ghc-6.6=20systems=0A= Pepe=20Iborra=20<[email protected]>**20061218095343]=20=0A[Propagate=20= the=20DEBUGGER=20flag=20to=20the=20Makefile=20for=20stage=202=0APepe=20= Iborra=20<[email protected]>**20061217001150]=20=0A[TAG=202006-12-17=0A= Ian=20Lynagh=20<[email protected]>**20061217233747]=20=0A[Merge=20DynFlags=20= changes=0AIan=20Lynagh=20<[email protected]>**20061216173957]=20=0A[Fix=20= an=20overlapping=20of=20uniques=20in=20PrelNames=0APepe=20Iborra=20= <[email protected]>**20061216114624]=20=0A[Fix=20the=20build=0AIan=20= Lynagh=20<[email protected]>**20061216022535]=20=0A[Toggle=20whether=20the=20= RTS=20gets=20build=20with=20debugger=20support=20for=20ghci=0APepe=20= Iborra=20<[email protected]>**20061211181307=0A=20=0A=20Specifically,=20= this=20disables=20the=20special=20support=20in=20the=20RTS=20for=20= looking=20up=20the=20datacon=20name=20corresponding=20to=20an=20address.=20= =0A=20Correspondingly,=20the=20debugging=20commads=20in=20GHCi=20will=20= not=20be=20available,=20and=20neither=20will=20the=20'-fdebugging'=20= flag=0A=20=0A]=20=0A[Adjust=20code=20from=20manual=20merges=0APepe=20= Iborra=20<[email protected]>**20061211162027]=20=0A[Fix=20an=20issue=20= with=20lazyness=20in=20the=20closure=20viewer=0APepe=20Iborra=20= <[email protected]>**20061211153453]=20=0A[Closure=20inspection=20in=20= GHCi=0APepe=20Iborra=20<[email protected]>**20061210232018=0A=20=0A=20= The=20:print,=20:sprint=20and=20:force=20commands=20for=20GHCi.=0A=20= This=20set=20of=20commands=20allows=20inspection=20of=20heap=20= structures=20of=20the=20bindings=20in=20the=20interactive=20environment.=0A= =20This=20is=20useful=20to=20observe=20lazyness=20and=20specially=20to=20= inspect=20things=20with=20undespecified=20polymorphic=20types,=20as=20= happens=20often=20in=20breakpoints.=0A=20=0A]=20=0A[Dynamic=20= breakpoints=20in=20GHCi=0APepe=20Iborra=20= <[email protected]>**20061210231551=0A=20=0A=20This=20patch=20adds=20= dynamic=20breakpoints=20to=20GHCi=0A=20=0A=20=0A=20There=20is=20a=20new=20= ':breakpoint'=20command=20to=20manage=20breakpoints.=0A=20GHCi=20simply=20= uses=20the=20breakpoint=20api=20functions=20in=20ghc-api=20to=20install=20= itself=20as=20a=20client.=0A=20The=20mechanism=20used=20by=20GHCi=20to=20= keep=20track=20of=20enabled=20breakpoints=20is=20a=20simple=20table.=0A=20= =0A=20When=20a=20breakpoint=20is=20hit,=20a=20new=20interactive=20= session=20is=20launched=20and=20the=20bindings=20in=20the=20breakpoint=20= are=20injected.=20Some=20commands=20are=20disabled=20in=20this=20sub=20= session=0A=20=0A]=20=0A[Split=20the=20GHCi=20monad=20apart=20from=20= InteractiveUI,=20together=20with=20some=20related=20functions=20=0APepe=20= Iborra=20<[email protected]>**20061210230553=0A=20=0A=20I=20found=20= this=20convenient=20while=20I=20was=20extending=20ghci=20with=20the=20= debugger.=20I=20wanted=20to=20put=20all=20the=20debugger=20stuff=20in=20= a=20separate=20module,=20but=20I=20would=20need=20a=20huge=20hs-boot=20= file=20to=20break=20the=20circular=20dependencies.=20This=20option=20= seemed=20better=0A=20=0A]=20=0A[Add=20the=20debugger=20related=20modules=20= to=20package.conf=0APepe=20Iborra=20= <[email protected]>**20061210223217]=20=0A[Prevent=20breakpoint=20= instrumentation=20of=20spliced=20code=0APepe=20Iborra=20= <[email protected]>**20061210223102]=20=0A[Capturing=20and=20keeping=20= track=20of=20local=20bindins=20in=20the=20desugarer=0APepe=20Iborra=20= <[email protected]>**20061210222540=0A=20=0A=20Used=20in=20the=20= desugaring=20of=20the=20breakpoint=20primitive=0A=20=0A]=20=0A[Handle=20= breakpoint=20jumps=20while=20splicing=20TH=20functions=20in=20ghci=0A= Pepe=20Iborra=20<[email protected]>**20061210222424=0A=20=0A=20The=20= dynamic=20linker=20has=20been=20modified=20so=20that=20it=20won't=20= panic=20if=20one=20of=20the=20breakpointJump=20functions=20fails=20to=20= resolve.=0A=20Now,=20if=20the=20dynamic=20linker=20fails=20to=20find=20a=20= HValue=20for=20a=20Name,=20before=20looking=20for=20a=20static=20symbol=20= it=20will=20ask=20to=0A=20=0A=20Breakpoints.lookupBogusBreakpointVal=20= ::=20Name=20->=20Maybe=20HValue=0A=20=0A=20which=20returns=20an=20= identity=20function=20for=20the=20Jump=20names=20or=20Nothing=20else.=0A=20= =0A=20A=20TH=20function=20might=20contain=20a=20call=20to=20a=20= breakpoint=20function.=20So=20if=20it=20is=20compiled=20to=20bytecodes,=20= the=20breakpoints=20will=20be=20desugared=20to=20'jumps'.=20Whenever=20= this=20code=20is=20spliced,=20the=20linker=20will=20fail=20to=20find=20= the=20jumpfunctions=20unless=20there=20is=20a=20default.=0A=20=0A]=20=0A= [Breakpoint=20code=20instrumentation=0APepe=20Iborra=20= <[email protected]>**20061210204934=0A=20=0A=20Instrumentation=20gets=20= activated=20by=20the=20'-fdebugging'=20dynflag.=0A=20=0A=20All=20the=20= instrumentation=20occurrs=20in=20the=20desugarer;=20it=20consists=20of=20= inserting=20'breakpoint'=20combinators=20at=20a=20number=20of=20places=20= in=20the=20AST,=20namely:=20=0A=20=20-=20Binding=20sites=0A=20=20-=20= Do-notation=20statements=20=0A=20These=20'breakpoint'=20combinators=20= will=20later=20be=20further=20desugared=20(at=20DsExpr)=20into=20___Jump=20= functions.=0A=20For=20more=20info=20about=20this=20and=20all=20the=20= ghci.debugger=20see=20the=20page=20at=20the=20GHC=20wiki:=0A=20=0A=20= http://hackage.haskell.org/trac/ghc/wiki/GhciDebugger=0A=20=0A]=20=0A= [The=20breakpoint=20primitive=0APepe=20Iborra=20= <[email protected]>**20061210203729]=20=0A[GHCi=20debugger=20= documentation=0APepe=20Iborra=20<[email protected]>**20061210184123]=20=0A= [Extend=20the=20GHC=20API=20with=20breakpoints=20and=20breakpoint=20= handlers=0APepe=20Iborra=20<[email protected]>**20061210184027=0A=20=0A=20= The=20entry=20point=20is:=0A=20setBreakpointHandler=20::=20Session=20->=20= BkptHandler=20Module=20->=20IO=20()=0A=20=0A=20=0A]=20=0A[Playing=20with=20= closures=0APepe=20Iborra=20<[email protected]>**20061210173005=0A=20=0A=20= RtClosureInspect=20includes=20a=20bunch=20of=20stuff=20for=20playing=20= with=20closures:=0A=20=0A=20-=20the=20datatype=20Closure=20is=20the=20= low=20level=20representation=20type=0A=20-=20the=20datatype=20Term=20is=20= the=20high=20level=20representation=20type=0A=20-=20cvObtainTerm=20is=20= the=20main=20entry=20point,=20providing=20the=20Term=20representation=20= of=20an=20arbitrary=20closure=0A=20=0A]=20=0A[Retrieving=20the=20datacon=20= of=20an=20arbitrary=20closure=0APepe=20Iborra=20= <[email protected]>**20061210112944=0A=20=0A=20This=20patch=20extends=20= the=20RTS=20linker=20and=20the=20dynamic=20linker=20so=20that=20it=20is=20= possible=20to=20find=20out=20the=20datacon=20of=20a=20closure=20in=20= heap=20at=20runtime:=0A=20-=20The=20RTS=20linker=20now=20carries=20a=20= hashtable=20'Address->Symbol'=20for=20data=20constructors=0A=20-=20The=20= Persistent=20Linker=20State=20in=20the=20dynamic=20linker=20is=20= extended=20in=20a=20similar=20way.=0A=20=0A=20Finally,=20these=20two=20= sources=20of=20information=20are=20consulted=20by:=0A=20=0A=20>=20= Linker.recoverDataCon=20::=20a=20->=20TcM=20Name=0A=20=0A]=20=0A[Two=20= new=20prim=20ops=20to=20access=20the=20Info=20Table=20and=20Payload=20of=20= a=20closure:=0APepe=20Iborra=20<[email protected]>**20061209173823=0A=20= =0A=20-=20infoPtr#=20::=20a=20->=20Addr#=0A=20-=20closurePayload#=20::=20= a=20->=20(#=20Array=20b,=20ByteArr#=20#)=0A=20=0A=20These=20prim=20ops=20= provide=20the=20magic=20behind=20the=20':print'=20command=20=0A=20=0A]=20= =0A[TAG=202006-12-16=0AIan=20Lynagh=20<[email protected]>**20061216174100]=20= =0A[Free=20more=20things=20that=20we=20allocate=0AIan=20Lynagh=20= <[email protected]>**20061215214430]=20=0A[Free=20all=20tasks=20on=20exit,=20= not=20just=20those=20on=20the=20task_free_list=0AIan=20Lynagh=20= <[email protected]>**20061215172617]=20=0A[Give=20cap=20its=20correct=20= type,=20rather=20than=20void=0AIan=20Lynagh=20= <[email protected]>**20061215172558]=20=0A[Put=20the=20task=20on=20the=20= free=20list=20in=20workerTaskStop=0AIan=20Lynagh=20= <[email protected]>**20061215164210]=20=0A[Free=20various=20things=20we=20= allocate=0AIan=20Lynagh=20<[email protected]>**20061215134507]=20=0A= [Updating=20rix=20output=20to=20new=20standard.=0A= [email protected]**20061214235210]=20=0A[update,=20and=20add=20some=20more=20= build=20flavours=20(inc.=20dons's=20fast=20build)=0ASimon=20Marlow=20= <[email protected]>**20061214110947]=20=0A[Rework=20the=20block=20= allocator=0ASimon=20Marlow=20<[email protected]>**20061214110901=0A=20= =0A=20The=20main=20goal=20here=20is=20to=20reduce=20fragmentation,=20= which=20turns=20out=20to=20be=0A=20the=20case=20of=20#743.=20=20While=20= I=20was=20here=20I=20found=20some=20opportunities=20to=0A=20improve=20= performance=20too.=20=20The=20code=20is=20rather=20more=20complex,=20but=20= it=20also=0A=20contains=20a=20long=20comment=20describing=20the=20= strategy,=20so=20please=20take=20a=20look=0A=20at=20that=20for=20the=20= details.=0A]=20=0A[fix=20wibble=20in=20memory=20leak=20error=20dump=0A= Simon=20Marlow=20<[email protected]>**20061214101102]=20=0A= [Removing=20explicit=20Binary=20Tick=20Boxes;=20using=20Case=20instead.=0A= [email protected]**20061213184502]=20=0A[Add=20left-to-right=20= [email protected]**20061213162915=0A=20= =0A=20People=20keep=20complaining,=20with=20some=20justification,=20that=0A= =20=0A=20=09runST=20$=20foo=0A=20=0A=20doesn't=20work.=20=20So=20I've=20= finally=20caved=20in.=20=20The=20difficulty=20with=20the=20above=0A=20is=20= that=20we=20need=20to=20decide=20how=20to=20instantiate=20($)'s=20type=20= arguments=20based=20=0A=20on=20the=20first=20argument=20(runST),=20and=20= then=20use=20that=20info=20to=20check=20the=20second=0A=20argumnent.=20=20= There=20is=20a=20left-to-right=20flow=20of=20information.=0A=20=0A=20= It's=20not=20hard=20to=20implement=20this,=20and=20it's=20clearly=20= useful.=20=20The=20main=20=0A=20change=20is=20in=20TcExpr.tcArgs,=20with=20= some=20knock-on=20effects=20elsewhere.=0A=20=0A=20I=20was=20finally=20= provoked=20into=20this=20by=20Trac=20#981,=20which=20turned=20out,=20= after=20some=0A=20head-scratching,=20to=20be=20another=20instance=20of=20= the=20same=20problem.=0A=20=0A=20(There=20was=20some=20bug-fixing=20too;=20= a=20type=20like=20((?x::Int)=20=3D>=20...)=20is=20a=20polytype=0A=20even=20= though=20it=20has=20no=20leading=20for-alls,=20but=20the=20new=20TcUnify=20= code=20was=20not=20=0A=20treating=20it=20right.)=0A=20=0A=20Test=20for=20= this=20is=20tc222=0A=20=0A=20=0A]=20=0A[Removing=20unused=20argument=20= [email protected]**20061213160651]=20=0A[fixing=20= obvious=20typo=20in=20darwin_HOST_OS=20code=20(currently=20does=20not=20= compile)[email protected]**20061213160601]=20=0A[PowerPC=20NCG:=20= support=20conditional=20branches=20outside=20+-32KB=0A= [email protected]**20061213133808=0A=20=0A=20Work=20around=20the=20= PowerPC=20architecture's=20+-32KB=20limitation=20for=20conditional=0A=20= branches=20by=20conditionally=20skipping=20an=20unconditional=20branch=20= instead=0A=20(unconditional=20branches=20have=20a=20+-32MB=20range).=0A=20= =0A=20This=20requires=20an=20extra=20pass=20over=20the=20basic=20blocks=20= for=20each=20CmmTop=20after=0A=20block=20sequencing,=20to=20determine=20= which=20branches=20are=20"far".=0A=20=0A=20Fixes=20ticket=20#709,=20= "Fixup=20too=20large"=20error=20with=20-fasm=20on=20PowerPC=0A]=20=0A= [Fix=20allocation=20debugger=20to=20handle=20allocations=20in=20= con/destructors=0AIan=20Lynagh=20<[email protected]>**20061213133518=0A=20= conc021=20is=20an=20example=20of=20a=20program=20that=20broke.=0A=20It=20= doesn't=20handle=20them=20particularly=20well=20still,=20but=20it=20= doesn't=20crash=20at=0A=20least.=0A]=20=0A[Don't=20free=20sched_mutex=20= until=20freeTaskManager=20has=20finished=20with=20it=0ASimon=20Marlow=20= <[email protected]>**20061212153353=0A=20Also=20move=20closeMutex()=20= etc.=20into=20freeTaskManager,=20this=20is=20a=20free-ish=20thing=0A]=20=0A= [Give=20a=20better=20panic=20if=20the=20allocation=20debugger=20is=20= used=20uninitialised=0AIan=20Lynagh=20<[email protected]>**20061213122602]=20= =0A[Misc=20Hpc=20improvement=20to=20dynamic=20tracer=20output=0A= [email protected]**20061213001917=0A=20=0A=20=20-=20Added=20HPCRIX=20= support=20for=20passing=20tracer=20filename.=0A=20=20-=20Added=20thread=20= tracing=20support.=0A=20=20-=20Cleaned=20up=20use=20of=20HsFFI.h=0A=20=0A= ]=20=0A[[email protected]**20061209050334]=20=0A= [Misc=20unsigned=20printing=20issues;=20adding=20magicTixNumber.=0A= [email protected]**20061130003024]=20=0A[Turn=20-Wall=20on=0AIan=20Lynagh=20= <[email protected]>**20061212201127]=20=0A[Fix=20more=20warnings=0AIan=20= Lynagh=20<[email protected]>**20061212200422]=20=0A[Fix=20whitespace=0AIan=20= Lynagh=20<[email protected]>**20061212182215]=20=0A[Silence=20some=20= warnings=0AIan=20Lynagh=20<[email protected]>**20061212182044]=20=0A[Fix=20= more=20warnings=0AIan=20Lynagh=20<[email protected]>**20061212174310]=20=0A= [Remove=20trailing=20white=20space=0AIan=20Lynagh=20= <[email protected]>**20061212173705]=20=0A[Detab=0AIan=20Lynagh=20= <[email protected]>**20061212173625]=20=0A[Fix=20thd3=0AIan=20Lynagh=20= <[email protected]>**20061212173427]=20=0A[Silence=20some=20warnings=0AIan=20= Lynagh=20<[email protected]>**20061212173404]=20=0A[Silence=20more=20= warnings=0AIan=20Lynagh=20<[email protected]>**20061212172756]=20=0A[More=20= warning=20fixes=0AIan=20Lynagh=20<[email protected]>**20061212164651]=20=0A= [Fix=20more=20warnings=0AIan=20Lynagh=20= <[email protected]>**20061212162624]=20=0A[More=20warning=20fixes=20and=20= some=20code=20rejigging=0AIan=20Lynagh=20= <[email protected]>**20061212161754]=20=0A[Fix=20more=20warnings=0AIan=20= Lynagh=20<[email protected]>**20061212161026]=20=0A[Fix=20some=20warnings=0A= Ian=20Lynagh=20<[email protected]>**20061212160020]=20=0A[Beautify=20a=20= bit=0AIan=20Lynagh=20<[email protected]>**20061212154801]=20=0A[Remove=20= trailing=20spaces=0AIan=20Lynagh=20<[email protected]>**20061212154307]=20=0A= [Detab=0AIan=20Lynagh=20<[email protected]>**20061212154211]=20=0A[Missed=20= a=20stage-2=20problem=20in=20the=20TcSimplify=20refactoring=0A= [email protected]**20061212132813]=20=0A[Comments=20only=0A= [email protected]**20061212132802]=20=0A[MERGE:=20Fix=20Windows=20= DEP=20violations=20(bug=20#885)=0ASimon=20Marlow=20= <[email protected]>**20061212103623=0A=20Original=20patch=20by=20= [email protected]=0A]=20=0A[Fix=20the=20pattern=20for=20_hpc=20= symbols:=20it=20incorrectly=20matched=20the=20_hp=20suffix=20too=0ASimon=20= Marlow=20<[email protected]>**20061212103237=0A=20This=20has=20the=20= undesitrable=20effect=20that=20stg_gc_gen_hp=20in=20the=20RTS=20was=0A=20= caught=20as=20an=20HPC=20symbol=20and=20put=20in=20the=20data=20segment.=0A= =20=0A]=20=0A[Fix=20up=20yesterdays=20commit=20to=20TcSimplify;=20fixes=20= [email protected]**20061212092556]=20=0A[Add=20= comments,=20plus=20fix=20zapFragileInfo=20to=20zap=20worker=20info=0A= [email protected]**20061211165141=0A=20=0A=20This=20is=20a=20minor=20= fix=20up=20to=20the=20patch=0A=20=20*=20retain=20arity=20for=20let-bound=20= vars=20in=20simplifier=0A=20=0A]=20=0A[Add=20comments=20about=20pruning=20= [email protected]**20061211164333]=20=0A= [Unbreak=20x86_64=20PIC=20patch,=20part=203=0A= [email protected]**20061211222635=0A=20=0A=20This=20time,=20the=20= PowerPC=20NCG=20suffered=20from=20a=20typo.=0A=20=0A=20(I've=20really=20= grown=20to=20hate=20all=20those=20#if=20foo_TARGET_ARCH=0A=20=20lines.=20= I=20need=20to=20build=20GHC=20for=20at=20least=20four=20different=0A=20=20= platforms=20just=20to=20make=20sure=20that=20there=20are=20no=20= typos...)=0A]=20=0A[Support=20MO_WriteBarrier=20in=20PowerPC=20NCG=20= (lwsync=20instruction)[email protected]**20061211222534]=20=0A= [Fix=20allocate=20name=20clash=20in=20the=20HEAD=0AIan=20Lynagh=20= <[email protected]>**20061211192103]=20=0A[Add=20= freeScheduler/freeTaskManager=20and=20call=20it=20later=20than=20= exitScheduler=0AIan=20Lynagh=20<[email protected]>**20061211131004=0A=20We=20= were=20freeing=20the=20tasks=20in=20exitScheduler=20(stopTaskManager)=20= before=0A=20exitStorage=20(stat_exit),=20but=20the=20latter=20needs=20to=20= walk=20down=20the=20list=0A=20printing=20stats.=20Resulted=20in=20= segfaults=20with=20commands=20like=0A=20=20=20=20=20ghc=20-v0=20-e=20= main=20q.hs=20-H32m=20-H32m=20+RTS=20-Sstderr=0A=20(where=20q.hs=20is=20= trivial),=20but=20very=20sensitive=20to=20exact=20commandline=20and=0A=20= libc=20version=20or=20something.=0A]=20=0A[When=20debugging,=20have=20= the=20allocator=20help=20us=20a=20bit=0AIan=20Lynagh=20= <[email protected]>**20061211124950=0A=20We=20now=20check=20for=20freeing=20= memory=20that=20isn't=20allocated,=20and=20overwrite=20memory=0A=20we=20= are=20about=20to=20free=20with=200xaa.=0A=20It=20might=20be=20nice=20to=20= also=20have=20a=20flag=20to=20control=20whether=20the=20memory=0A=20= actually=20gets=20free'd.=0A]=20=0A[More=20refactoring=20of=20constraint=20= [email protected]**20061211160732=0A=20=0A=20This=20= patch=20fixes=20several=20bugs=20in=20the=20handling=20of=20impliciation=0A= =20constraints,=20thereby=20fixing=20several=20regression-suite=20= failures.=0A=20=0A=20On=20the=20way=20I=20managed=20to=20further=20= simplify=20the=20code=20in=20TcSimplify;=0A=20the=20extra=20lines=20are=20= comments.=0A=20=0A]=20=0A[Improve=20origin=20of=20constraints=20in=20= [email protected]**20061211160557]=20=0A= [Suggests=20-fglasgow-exts=20for=20contexts-differ-in-length=20error=0A= [email protected]**20061211160517]=20=0A[Comments=20and=20layout=20= [email protected]**20061211160409]=20=0A[Remove=20strange=20= extra=20print=20(a=20temporary=20debug?)=0A= [email protected]**20061211155035]=20=0A[Fix=20typo=0A= [email protected]**20061208134807]=20=0A[Improve=20parsing=20for=20= bang=20patterns=20(fixes=20Trac=20#1041)=0A= [email protected]**20061208134629]=20=0A[Unbreak=20x86_64=20PIC=20= patch,[email protected]**20061210132712=0A=20=0A=20= Continue=20repairing=20breakage=20from=20patch=0A=20"x86_64:=20support=20= PIC=20and=20therefore,=20Mac=20OS=20X=20in=20the=20NCG",=0A=20this=20= time=20something=20affecting=20(linux=20&&=20!i386)=0A=20=0A]=20=0A[Use=20= System.IO.stderr=20rather=20than=20IO.stderr=20in=20GHCi.=20Fixes=20trac=20= #1001.=0AIan=20Lynagh=20<[email protected]>**20061209185152=0A=20GHCi=20= evaluates=20a=20command=20to=20flush=20the=20stdout/stderr=20buffers,=20= but=20this=0A=20command=20can=20only=20use=20names=20that=20are=20in=20= scope.=20It=20used=20to=20need=20IO.stderr=0A=20from=20the=20haskell98=20= package,=20but=20this=20patch=20means=20it=20only=20needs=20things=0A=20= from=20the=20base=20package.=0A]=20=0A[Add=20PowerPC=20to=20the=20list=20= of=20SMP=20arches=0AIan=20Lynagh=20<[email protected]>**20061209174203]=20=0A= [Make=20'./darcs-all=20get=20--complete'=20work=0A= [email protected]**20061209125154]=20=0A[fix=20for=20#1013.=20=20=0A= Simon=20Marlow=20<[email protected]>**20061207151644=0A=20We=20= weren't=20getting=20the=20bitmap=20right=20for=20the=20continuation=20= BCO=20in=20a=20case-of-case.=0A]=20=0A[Unbreak=20previous=20x86_64=20PIC=20= [email protected]**20061207133108=0A=20=0A=20Make=20= things=20compile=20on=20Linux=20again=0A]=20=0A[Tell=20the=20NCG=20that=20= XOR=20foo,=20foo=20does=20*not*=20read=20foo=0A= [email protected]**20061207131721=0A=20=0A=20On=20x86[-64],=20= MachCodeGen=20uses=20the=20old=20XOR=20trick=20to=20zero=20a=20register.=0A= =20This=20patch=20makes=20regUsage=20not=20list=20the=20register=20as=20= an=20input=20in=20this=0A=20case.=0A=20Listing=20the=20register=20as=20= an=20input=20for=20the=20instruction=20could=20make=20it=20=0A=20appear=20= like=20an=20unitialised=20value,=20which=20is=20bad=20because=20= unitialised=0A=20values=20can=20cause=20the=20register=20allocator=20to=20= panic=20(at=20least=20in=20the=0A=20presence=20of=20a=20loop).=0A=20=0A]=20= =0A[x86_64:=20support=20PIC=20and=20therefore,=20Mac=20OS=20X=20in=20the=20= [email protected]**20061207131607=0A=20=0A=20Supporting=20= x86_64-apple-darwin=20in=20the=20NCG=20basically=20boils=20down=20to=20= supporting=0A=20position-independent=20code=20in=20the=20NCG.=0A=20PIC=20= code=20works=20almost=20exactly=20the=20same=20as=20on=20x86_64-linux,=20= while=20position-dependent=0A=20code=20is=20not=20supported=20at=20all.=0A= =20This=20patch=20implements=20-fPIC=20for=20x86_64-linux,=20too,=20but=20= that=20is=20untested.=0A=20=0A=20=0A]=20=0A[Fix=20family=20instance=20= consistency=20check=20for=20home=20package=20modules=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20061207014118=0A=20*=20So=20far,=20= family=20instance=20modules=20was=20only=20available=20for=20external=20= modules.=0A=20*=20This=20fixes=20the=20"Over"=20test=20in=20the=20= testsuite=20under=20indexed-types/=0A]=20=0A[Kind=20sigs=20in=20= associated=20data/newtype=20family=20decls=20may=20be=20omitted=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20061206223320=0A=20*=20= This=20is=20only=20a=20slight=20generalisation=20of=20the=20parser,=20so=20= that=20family=0A=20=20=20declarations=20on=20the=20toplevel=20and=20in=20= classes=20are=20uniform.=0A=20*=20I=20didn't=20allow=20that=20right=20= away=20as=20it=20is=20a=20bit=20tricky=20to=20avoid=20reduce/reduce=20=0A= =20=20=20conflicts.=0A]=20=0A[Add=20release=20note=20that=20= Network.CGI.Compat=20uses=20XHtml=20rather=20than=20Html=0AIan=20Lynagh=20= <[email protected]>**20061206144946]=20=0A[Improve=20dependency=20analysis;=20= makes=20more=20dictionaries=20inlinable=0A= [email protected]**20061206071845=0A=20=0A=20I=20recentl=20changed=20= the=20scoring=20system=20used=20by=20dependency=20analysis=20for=0A=20= recursive=20bindings,=20that=20it=20used=20the=20*form*=20of=20the=20RHS=20= of=20a=20binding,=0A=20rather=20than=20just=20its=20type.=20In=20doing=20= so=20I=20inadvertently=20made=20recursive=0A=20dictionary=20bindings=20= unravel=20less=20well,=20because=20I'd=20missed=20the=20case=0A=20of=20=09= c=20=3D=20/\a.=20C=20(...)=20(...)=0A=20=0A=20This=20patch=20fixes=20the=20= problem.=20=20A=20good=20example=20is=20the=20instance=20for=0A=20Monad=20= (ST=20s)=20or=20Show=20(ST=20s=20a)=20in=20GHC.ST.=20=20It's=20vital=20= for=20these=0A=20dictionaries=20to=20be=20inlinable.=0A=20=0A]=20=0A[Add=20= [email protected]**20061204013116]=20=0A= [[email protected]**20061204013040]=20=0A[Make=20a=20= ghc/ghci=20manpage=0AIan=20Lynagh=20<[email protected]>**20061205235244=0A=20= Set=20GhcManpages=3DYES=20in=20mk/build.mk=20if=20you=20want=20to=20= build=20the=20manpage.=0A]=20=0A[we=20need=20= GHC.Conc.ensureIOManagerIsRunning=20on=20Windows=20too=0ASimon=20Marlow=20= <[email protected]>**20061205162435]=20=0A[add=20Windows-specific=20= GHCi=20information,=20and=20a=20FAQ=20about=20^C=20in=20GHCi=20on=20= Windows=0ASimon=20Marlow=20<[email protected]>**20061205161140]=20=0A= [update=20the=20question=20about=20concurrent=20threads=20&=20GHCi=0A= Simon=20Marlow=20<[email protected]>**20061205153947]=20=0A[fix=20= Windows=20GHCi=20=0ASimon=20Marlow=20= <[email protected]>**20061204164326]=20=0A[MERGE:=20In=20hashExpr,=20= use=20Word32=20rather=20than=20relying=20on=20wrapping=20behaviour=20of=20= Int=0AIan=20Lynagh=20<[email protected]>**20061203223337=0A=20Fixes=20#952,=20= as=20it=20turns=20out.=0A=20=0A=20When=20compiling=20via=20C,=20we=20are=20= at=20the=20mercy=20of=20C's=20undefined=20behaviour=0A=20with=20respect=20= to=20overflow=20of=20signed=20integer=20operations,=20and=20this=20was=0A= =20biting=20us=20here.=0A=20=0A=20Perhaps=20we=20should=20always=20add=20= the=20-fwrapv=20flag=20to=20gcc,=20but=20since=0A=20Haskell=20doesn't=20= define=20overflow=20on=20Int=20either,=20it=20seemed=20the=20right=0A=20= thing=20to=20do=20to=20fix=20this=20code=20anyway.=0A]=20=0A[Fixed=20and=20= simplified=20repository=20calculation,=20works=20via=20SSH=20now,=20too=0A= [email protected]**20061203134824]=20=0A[Add=20support=20for=20the=20= IO=20manager=20thread=20on=20Windows=0ASimon=20Marlow=20= <[email protected]>**20061201144823=0A=20Fixes=20#637.=0A=20The=20= implications=20of=20this=20change=20are:=0A=20=20=20-=20threadDelay=20on=20= Windows=20no=20longer=20creates=20a=20new=20OS=20thread=20each=20time,=0A= =20=20=20=20=20instead=20it=20communicates=20with=20the=20IO=20manager=20= thread=20in=20the=20same=20way=20as=0A=20=20=20=20=20on=20Unix.=0A=20=20=20= -=20deadlock=20detection=20now=20works=20the=20same=20way=20on=20Windows=20= as=20on=20Unix;=20that=0A=20=20=20=20=20is=20the=20timer=20interrupt=20= wakes=20up=20the=20IO=20manager=20thread,=20which=20causes=0A=20=20=20=20= =20the=20scheduler=20to=20check=20for=20deadlock.=0A=20=20=20-=20Console=20= events=20now=20get=20sent=20to=20the=20IO=20manager=20thread,=20in=20the=20= same=20way=20as=0A=20=20=20=20=20signals=20do=20on=20Unix.=20=20This=20= means=20that=20console=20events=20should=20behave=20more=0A=20=20=20=20=20= reliably=20with=20-threaded=20on=20Windows.=0A=20=0A=20All=20this=20= applies=20only=20with=20-threaded.=20=20Without=20-threaded,=20the=20old=0A= =20ConsoleEvent=20code=20is=20still=20used.=0A=20=0A=20After=20some=20= testing,=20this=20could=20be=20pushed=20to=20the=206.6=20branch.=0A]=20=0A= [Remove=20the=20Windows=20Async=20IO=20Manager=20completely=20in=20= THREADED_RTS=20mode=0ASimon=20Marlow=20= <[email protected]>**20061201140753=0A=20It=20isn't=20used=20here=20= anyway,=20just=20making=20sure=20the=20code=20doesn't=20get=20compiled=20= in.=0A=20=0A]=20=0A[Decouple=20-O=20from=20-fvia-C=0A= [email protected]**20061201125304=0A=20=0A=20Nowadays,=20there=20= are=20situations=20where=20-fvia-C=20is=20definitely=20unwanted,=20such=0A= =20as=20when=20-fPIC=20is=20used=20on=20some=20platforms,=20so=20we=20do=20= not=20want=20implicit=20-fvia-C=0A=20any=20more.=0A]=20=0A[q=0A= [email protected]**20061201034207]=20=0A[cas():=20modify=20assembly=20= syntax=20to=20make=20it=20work=20everywhere=20(hopefully)=0ASimon=20= Marlow=20<[email protected]>**20061121132646]=20=0A[use=20"lock=20= cmpxchg"=20instead=20of=20"lock/cmpxchg"=0ASimon=20Marlow=20= <[email protected]>**20061117114429=0A=20I'm=20not=20sure=20where=20= the=20latter=20version=20came=20from,=20but=20it=20apparently=0A=20= doesn't=20generate=20a=20legal=20instruction=20on=20Solaris.=0A]=20=0A= [Update=20library=20version=20numbers=20in=20release=20notes=0AIan=20= Lynagh=20<[email protected]>**20061009120243]=20=0A[Fix=20= _module_registered=20bug=20for=20sparc=20linux.=0ASimon=20Marlow=20= <[email protected]>**20061006104534=0A=20Patch=20by=20Ferris=20= McCormick=20<[email protected]>=0A=20This=20patch=20has=20been=20tested=20= with=20GHC-6.4.2=20where=20it=20fixes=20a=0A=20huge=20number=20of=20= testsuite=20failures=20(down=20from=20406=20to=2017)=0A]=20=0A[Remove=20= [email protected]**20061129225243]=20=0A[Remove=20bogus=20= [email protected]**20061129225223]=20=0A[Teach=20= SpecConstr=20how=20to=20handle=20mutually-recursive=20functions=0A= [email protected]**20061129213931=0A=20=0A=20Roman=20found=20cases=20= where=20it=20was=20important=20to=20do=20SpecConstr=20for=0A=20= mutually-recursive=20definitions.=20=20Here=20is=20one:=0A=20=09foo=20::=20= Maybe=20Int=20->=20Int=0A=20=09foo=20Nothing=20=20=3D=200=0A=20=09foo=20= (Just=200)=20=3D=20foo=20Nothing=0A=20=09foo=20(Just=20n)=20=3D=20foo=20= (Just=20(n-1))=0A=20By=20the=20time=20SpecConstr=20gets=20to=20it,=20it=20= looks=20like=20this:=0A=20=09lvl=20=3D=20foo=20Nothing=0A=20=09foo=20= Nothing=20=20=3D=200=0A=20=09foo=20(Just=200)=20=3D=20lvl=0A=20=09foo=20= (Just=20n)=20=3D=20foo=20(Just=20(n-1))=0A=20=0A=20Happily,=20it=20turns=20= out=20to=20be=20rather=20straightforward=20to=20generalise=20the=0A=20= transformation=20to=20mutually-recursive=20functions.=20=20Look,=20ma,=20= only=204=20=0A=20extra=20lines=20of=20ocde!=0A=20=0A=20=0A=20=0A]=20=0A= [Improve=20the=20loop-breaking=20heuristics=0A= [email protected]**20061129212440=0A=20=0A=20The=20loop-breaking=20= heuristics=20were=20making=20it=20a=20high=20priority=20to=0A=20avoid=20= choosing=20a=20variable=20as=20a=20loop=20breaker=20if=20its=20*type*=20= was=20a=20=0A=20data=20type.=20=20The=20reason=20is=20that=20it's=20very=20= good=20to=20be=20able=20to=20"see"=0A=20constructor=20applications.=0A=20= =0A=20But=20it's=20only=20good=20if=20the=20constructor=20application=20= is=20*visible*,=20=0A=20so=20that=20is=20what=20I=20test=20for=20now.=20=20= I=20found=20a=20case=20(when=20testing=20=0A=20SpecConstr)=20where=20I=20= had=20a=20Rec=20like=20this:=0A=20=09rec=20{=20lvl=20=3D=20foo=20Nothing=0A= =20=09=20=20=20=20=20=20foo=20=3D=20...=0A=20=09=20=20=20=20=20=20=20=20= RULE=20foo=20Nothing=20=3D=20...=0A=20=20=20=20=09=20=20=20=20}=0A=20=0A=20= Even=20if=20lvl=20has=20a=20data=20type,=20it's=20much=20better=20to=20= make=20lvl=20the=20loop=0A=20breaker,=20not=20foo,=20so=20that=20foo's=20= RULE=20is=20visible=20in=20lvl's=20RHS.=0A=20=0A]=20=0A[Comments=20only=0A= [email protected]**20061129194212]=20=0A[Make=20SpecConstr=20work=20= right=20for=20nullary=20constructors=0A= [email protected]**20061129192421=0A=20=0A=20For=20totally=20stupid=20= reasons,=20SpecConstr=20didn't=20work=20for=20the=20(particularly=0A=20= easy)=20case=20of=20nullary=20constructors=20like=20True=20and=20False.=20= =20I=20just=20had=20some=0A=20equations=20in=20the=20wrong=20order,=20so=20= that=20a=20Var=20case=20came=20first,=20which=20=0A=20matches=20a=20= nullary=20constructor,=20with=20the=20constructor-application=20case=0A=20= afterwards.=0A=20=0A=20The=20fix=20is=20easy.=20=20I=20did=20a=20bit=20= of=20refactoring=20at=20the=20same=20time.=0A=20=0A]=20=0A[x86_64=20NCG:=20= fix=20register=20usage=20for=20CALLs=0A= [email protected]**20061129013429=0A=20=0A=20For=20varargs=20= calls,=20CALL=20reads=20the=20%al=20register;=20record=20that=20fact=20= for=20the=20benefit=20of=20the=0A=20register=20allocator.=0A=20(There=20= was=20a=20previous=20attempt=20to=20do=20this,=20but=20it=20was=20= broken.)=0A=20=0A]=20=0A[Add=20Win32/configure.ac=20to=20the=20mix=0A= [email protected]**20061129222513]=20=0A[TickBox=20representation=20change=0A= [email protected]**20061129220957=0A=20=0A=20This=20changes=20the=20= internal=20representation=20of=20TickBoxes,=0A=20from=0A=20=20=20=20=20=20= =20=20=20Note=20(TickBox=20"module"=20n)=20=20<expr>=0A=20into=0A=20=0A=20= =20=20=20=20=20=20=20=20case=20tick<module,n>=20of=0A=20=20=20=20=20=20=20= =20=20=20=20_=20->=20<expr>=0A=20=0A=20tick=20has=20type=20::=20#State=20= #World,=20when=20the=20module=20and=20tick=20numbe=0A=20are=20stored=20= inside=20IdInfo.=0A=20=0A=20Binary=20tick=20boxes=20change=20from=0A=20=0A= =20=20=20=20=20=20=20=20=20=20Note=20(BinaryTickBox=20"module"=20t=20f)=20= <expr>=0A=20=0A=20into=0A=20=0A=20=20=20=20=20=20=20=20=20=20=20= btick<module,t,f>=20<expr>=0A=20=0A=20btick=20has=20type=20::=20Bool=20= ->=20Bool,=20with=20the=20module=20and=20tick=20number=0A=20stored=20= inside=20IdInfo.=0A=20=0A]=20=0A[Fixing=20Alts=20to=20reflect=20= Alternatives,=20rather=20than=20every=20pattern=20match=20in=20Hpc.=0A= [email protected]**20061101230827]=20=0A[fix=20to=20isNormalComment=20for=20= non-Haddock=20mode,=20and=20some=20cleanup=0ASimon=20Marlow=20= <[email protected]>**20061129093221=0A=20=0A=20Haddock=20= documentation=20comments=20weren't=20being=20treated=20as=20comments=20= even=0A=20without=20the=20-haddock=20flag.=20=20Fixes=20= nofib/spectral/simple,=20and=20probably=0A=20others.=0A]=20=0A[Make=20= the=20non-threaded-RTS=20threadDelay=20wait=20at=20least=20as=20long=20= as=20asked=0AIan=20Lynagh=20<[email protected]>**20061128210516]=20=0A= [retain=20arity=20for=20let-bound=20vars=20in=20simplifier=0AKirsten=20= Chevalier=20<[email protected]>**20061128135143]=20=0A[Initial=20= [email protected]**20061127130602=0A= =20=0A=20Basic=20-fvia-C=20code=20generation=20is=20there,=20not=20much=20= testing.=0A]=20=0A[Support=20I64->I32=20casts=20in=20the=20NCG,=20and=20= use=20them=20for=20I64->Integer=20conversions=0A= [email protected]**20061124094129=0A=20=0A=20We=20can=20avoid=20= using=20any=20other=20long=20long=20operations=20in=20PrimOps.cmm.=0A=20= One=20more=20step=20towards=20compiling=20the=20RTS=20using=20the=20NCG.=0A= ]=20=0A[NCG:=20Really=20avoid=20the=20need=20for=20memory-to-memory=20= moves=20in=20the=20register=20allocator=0A= [email protected]**20061124093536=0A=20=0A=20This=20is=20a=20= follow-up=20to=20"NCG:=20Handle=20loops=20in=20register=20allocator".=0A=20= The=20newly-introduced=20invariant=20that=20every=20virtual=20register=20= is=20always=20assigned=20to=0A=20the=20same=20spill=20slot=20wasn't=20= kept=20under=20all=20circumstances.=0A=20*Now*=20memory-to-memory=20= moves=20should=20never=20be=20required=20when=20compiling=20hand-written=0A= =20cmm=20code.=0A]=20=0A[i386-darwin:=20disable=20use=20of=20code=20= stubs=20for=20dynamic=20linking=0A= [email protected]**20061120172516=0A=20=0A=20We=20can't=20use=20= lazy=20binding=20for=20tail-calls=20accross=20shared=20libraries,=20= because=20dyld=0A=20will=20crash=20due=20to=20incorrect=20stack=20= layout.=20We=20can't=20get=20the=20stack=20alignment=20right=20for=0A=20= both=20cross-library=20tailcalls=20and=20foreign=20calls,=20so=20we=20= have=20to=20bypass=20the=20stub=20code=20altogether=0A=20and=20load=20= the=20address=20to=20branch=20to=20from=20the=20non-lazy=20pointer=20= table.=0A=20=0A]=20=0A[Support=20RelocatableReadOnlyData=20section=20= type=20in=20CmmParse,=20and=20use=20it=20where=20needed=20in=20AutoApply=0A= [email protected]**20061022160650=0A=20=0A=20This=20is=20needed=20= for=20position-independent=20code=20on=20Mac=20OS=20X=0A=20(both=20i386=20= and=20powerpc),=20when=20compiling=20the=20RTS=20with=20-fasm.=0A]=20=0A= [Cast=20switch=20scrutinees=20to=20W_=20in=20AutoApply.cmm=0A= [email protected]**20061022160507=0A=20=0A=20...=20and=20make=20= CmmLint=20check=20for=20this=20problem.=0A=20This=20doesn't=20matter=20= for=20-fvia-C,=20but=20passing=20a=20halfword=20to=20a=20switch=0A=20= will=20make=20the=20NCG=20generate=20crashing=20code.=0A]=20=0A[Add=20= some=20Outputable=20instances=0AIan=20Lynagh=20= <[email protected]>**20061125152307]=20=0A[Change=20a=20comma=20to=20a=20= colon=0AIan=20Lynagh=20<[email protected]>**20061125003444]=20=0A[ghc-pkg:=20= New=20command=20'check'=20and=20made=20'list'=20indicate=20broken=20= packages=0ALennart=20Kolmodin=20= <[email protected]>**20061105183851=0A=20Command=20'check':=20= print=20a=20list=20of=20all=20packages=20that=20are=20broken=20and=0A=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20which=20dependencies=20= they=20are=20missing.=0A=20Command=20'list':=20updated=20by=20making=20= it=20put=20brackets=20around=20broken=0A=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20packages.=0A]=20=0A[Fix=20constraint=20handling=20for=20= [email protected]**20061124230548=0A=20=0A=20Lazy=20= patterns=20are=20quite=20tricky!=20=20Consider=0A=20=09f=20~(C=20x)=20=3D=20= 3=0A=20Can=20the=20Num=20constraint=20from=20the=203=20be=20discharged=20= by=20a=20Num=20dictionary=0A=20bound=20by=20the=20pattern?=20=20= Definitely=20not!=20=20=0A=20=0A=20See=20Note=20[Hopping=20the=20LIE=20= in=20lazy=20patterns]=20in=20TcPat=0A=20=0A=20The=20type=20checker=20= wasn't=20ensuring=20this,=20and=20that=20was=20causing=20all=0A=20manner=20= of=20strange=20things=20to=20happen.=20=20It=20actually=20manifested=20= as=20a=0A=20strictness=20bug=20reported=20by=20Sven=20Panne.=0A=20=0A=20= I've=20added=20his=20test=20case=20as=20tcrun040.=0A=20=0A]=20=0A= [Warning=20police:=20Removed=20unused=20variable=0A= [email protected]**20061124175900]=20=0A[small=20stats=20fix=0ASimon=20= Marlow=20<[email protected]>**20061124162512]=20=0A[Make=20= SpecConstr=20more=20aggressive,=20by=20neglecting=20reboxing=0A= [email protected]**20061124132054=0A=20=0A=20SpecConstr=20was=20= conservative=20about=20avoiding=20reboxing=20(see=20Note=20[Reboxing])=0A= =20but=20that=20meant=20it=20lost=20useful=20opportunities.=20=20This=20= patch=20makes=20it=20much=0A=20more=20aggressive,=20but=20at=20the=20= risk=20of=20doing=20some=20reboxing.=0A=20=0A=20Actually,=20the=20= strictness=20analyser=20has=20the=20same=20property=20(it's=20possible=0A= =20for=20it=20to=20generate=20reboxing=20code,=20and=20thus=20increase=20= allocation),=20but=20we=0A=20don't=20worry=20so=20much=20about=20that.=20= =20Maybe=20we=20should.=0A=20=0A=20Ideally,=20one=20would=20do=20some=20= more=20sophisticated=20analysis=20that=20spotted=0A=20the=20reboxing=20= cases=20without=20excluding=20the=20useful=20ones.=20=20=0A=20=0A=20But=20= meanwhile,=20let's=20try=20this.=20=0A=20=0A]=20=0A[Drop=20redundant=20= [email protected]**20061124131813]=20= =0A[Improve=20handling=20of=20implicit=20parameters=0A= [email protected]**20061124122120=0A=20=0A=20A=20message=20to=20= Haskell=20Cafe=20from=20Grzegorz=20Chrupala=20made=20me=20realise=20that=0A= =20GHC=20was=20not=20handling=20implicit=20parameters=20correctly,=20= when=20it=20comes=20to=0A=20choosing=20the=20variables=20to=20quantify,=20= and=20ambiguity=20tests.=20=20Here's=20the=20=0A=20note=20I=20added=20to=20= TcSimplify:=0A=20=0A=20Note=20[Implicit=20parameters=20and=20ambiguity]=20= =0A=20~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=0A=20What=20type=20= should=20we=20infer=20for=20this?=0A=20=09f=20x=20=3D=20(show=20?y,=20= x::Int)=0A=20Since=20we=20must=20quantify=20over=20the=20?y,=20the=20= most=20plausible=20type=20is=0A=20=09f=20::=20(Show=20a,=20?y::a)=20=3D>=20= Int=20->=20(String,=20Int)=0A=20But=20notice=20that=20the=20type=20of=20= the=20RHS=20is=20(String,Int),=20with=20no=20type=20=0A=20varibables=20= mentioned=20at=20all!=20=20The=20type=20of=20f=20looks=20ambiguous.=20=20= But=0A=20it=20isn't,=20because=20at=20a=20call=20site=20we=20might=20= have=0A=20=09let=20?y=20=3D=205::Int=20in=20f=207=0A=20and=20all=20is=20= well.=20=20In=20effect,=20implicit=20parameters=20are,=20well,=20= parameters,=0A=20so=20we=20can=20take=20their=20type=20variables=20into=20= account=20as=20part=20of=20the=0A=20"tau-tvs"=20stuff.=20=20This=20is=20= done=20in=20the=20function=20'FunDeps.grow'.=0A=20=0A=20=0A=20The=20= actual=20changes=20are=20in=20FunDeps.grow,=20and=20the=20tests=20are=0A=20= =09tc219,=20tc219=0A=20=0A]=20=0A[Fix=20name-capture=20bug=20in=20rule=20= [email protected]**20061124111158=0A=20=0A=20The=20= matching=20algorithm=20for=20RULES=20should=20respect=20= alpha-conversion,=20but=20it=0A=20wasn't=20doing=20so.=20=20In=20= particular,=20if=20the=20names=20of=20the=20template=20variables=0A=20= clashed=20with=20a=20variable=20in=20scope=20at=20the=20call=20site,=20= bad=20things=20could=20happen=0A=20(it=20showed=20up=20as=20a=20CoreLint=20= failure=20when=20compiling=20nofib/real/parser)=0A=20=0A=20This=20patch=20= fixes=20the=20problem;=20see=20Note=20[Template=20binders]=0A=20=0A=20= Test=20is=20in=20simplCore/should_compile/spec002,=20but=20nofib=20-O2=20= in=0A=20=09real/parser,=20real/fulsom=0A=20=0A=20=0A]=20=0A[Improve=20= [email protected]**20061124110926=0A=20=0A= =20We=20were=20getting=20too=20many=20cases=20where=20different=20= expressions=20map=20to=20the=0A=20same=20hash=20code=20(which=20shows=20= up=20in=20CSE).=20This=20patch=20tries=20to=20improve=0A=20the=20hash=20= algorithm=20a=20bit.=0A=20=0A]=20=0A[Use=20existing=20Ord=20instance=20= on=20Int,[email protected]**20061124110830]=20=0A= [Use=20existing=20function=20uniqAway=20instead=20of=20duplicating=20= [email protected]**20061124110750]=20=0A[Gather=20constraints=20= [email protected]**20061124084011=0A=20=0A=20= Provoked=20by=20a=20suggestion=20of=20Simon's,=20this=20patch=20makes=20= a=20half-hearted=20attempt=0A=20to=20gather=20constraints=20in=20program=20= order,=20so=20that=20we=20tend=20to=20report=20an=20error=0A=20at=20its=20= first=20occurrence,=20rather=20than=20its=20last.=20=20Examples:=0A=20=09= mdofail001,=20tcfail015=0A=20=0A=20It's=20"half-hearted"=20because=20= generally-speaking=20the=20typechecker=20does=20not=0A=20guaranteed=20to=20= keep=20constraints=20in=20order;=20it=20treats=20them=20as=20a=20set.=20=20= Nevertheless=0A=20this=20very=20small=20change=20seems=20to=20improve=20= matters,=20so=20it=20seems=20a=20good=20one.=0A=20=0A]=20=0A[Simplify=20= TcSimplify,=20by=20removing=20Free=0A= [email protected]**20061123171602=0A=20=0A=20For=20a=20long=20time=20= TcSimplify=20used=20a=20three-way=20classification=20of=20constraints,=20= =0A=20into=20=09Free=0A=20=09Irred=0A=20=09ReduceMe=0A=20(see=20the=20= data=20type=20WhatToDo).=20=20In=20the=20new=20world=20of=20implication=20= constraints,=0A=20the=20Free=20case=20does=20not=20make=20so=20much=20= sense,=20and=20I=20managed=20to=20elminate=20it=0A=20altogether,=20thus=20= simplifying=20the=20story=20somewhat.=20=20Now=20WhatToDo=20has=20= constructors=0A=20=09Stop=0A=20=09ReduceMe=0A=20=0A=20There=20should=20= be=20no=20change=20in=20behaviour.=0A=20=0A]=20=0A[fix=20failing=20= assertion=0ASimon=20Marlow=20<[email protected]>**20061123135825]=20= =0A[Improve=20recovery=20in=20hptRules=0A= [email protected]**20061122173415]=20=0A[Refactoring=20of=20where=20= [email protected]**20061122135121=0A=20=0A=20= We=20want=20to=20do=20tcSimplifyTop=20after=20checkMain,=20because=20= checkMain=20can=20add=0A=20useful=20type=20information=20that=20= eliminates=20ambiguity.=20=20E.g.=0A=20=09main=20=3D=20return=20= undefined=0A=20=0A=20This=20is=20the=20way=20it=20used=20to=20be=20in=20= 6.6,=20and=20I=20think=20I=20mistakenly=20moved=20it=0A=20when=20doing=20= implication=20constraints.=20This=20patch=20effectively=20puts=20it=20= back=0A=20the=20way=20it=20was.=0A=20=0A=20Cures=20the=20cg053=20= failure.=0A=20=0A]=20=0A[Retain=20simplifications=20of=20implication=20= [email protected]**20061122132844=0A=20=0A=20When=20= simplifying=20an=20implication=20constraint=20(reduceImplication),=20if=20= we=20make=0A=20progress,=20make=20a=20new=20implication=20constraint=20= for=20the=20result.=20=20If=20we=20don't=0A=20do=20this,=20we=20get=20a=20= constraint=20that=20can=20be=20simplified=20in=20a=20unique=20way,=0A=20= and=20that=20in=20turn=20confuses=20reportNoInstance=0A=20=0A]=20=0A= [Improve=20error=20messages=20slightly=0A= [email protected]**20061122132821]=20=0A[refactor=20code=20for=20= memInventory()=0ASimon=20Marlow=20= <[email protected]>**20061122101906]=20=0A[allocatePinned():=20fix=20= n_large_blocks=20count=20after=20allocating=20a=20new=20block=0ASimon=20= Marlow=20<[email protected]>**20061122101808]=20=0A[fix=20bug=20in=20= memInventory()=20giving=20false=20memory=20leak=20errors=0ASimon=20= Marlow=20<[email protected]>**20061122101604=0A=20fixes=20= ffi009(threaded1)=0A]=20=0A[Remove=20the=20concept=20of=20stableRoots.=0A= Lemmih=20<[email protected]>**20061121193701=0A=20=0A=20StableRoots=20= opened=20new=20possibilities=20in=20the=20world=0A=20of=20plugins=20with=20= their=20ability=20to=20link=20partially=0A=20applied=20closures=20= against=20object=20code.=0A=20Exporting=20'(fn=20pluginwideState)'=20= severely=20reduced=0A=20the=20complexity=20of=20HIDE's=20plugin=20= system.=20The=20previous=0A=20system=20of=20global=20variables=20was=20= both=20fragile=20and=20hard=0A=20to=20scale.=0A=20=0A=20Good=20bye,=20= StableRoots.=20We=20sure=20had=20some=20fun.=0A=20=0A]=20=0A[small=20fix=20= to=20DEBUG=20case=20in=20coalesce/freeGroup=20patch=0ASimon=20Marlow=20= <[email protected]>**20061121163416]=20=0A[optimisation=20to=20= freeGroup()=20to=20avoid=20an=20O(N^2)=20pathalogical=20case=0ASimon=20= Marlow=20<[email protected]>**20061121134551=0A=20In=20the=20free=20= list,=20we=20don't=20strictly=20speaking=20need=20to=20have=20every=20= block=0A=20in=20a=20coalesced=20group=20point=20to=20the=20head=20block,=20= although=20this=20is=20an=0A=20invariant=20for=20non-free=20blocks.=20=20= Dropping=20this=20invariant=20for=20the=20free=0A=20list=20means=20that=20= coalesce()=20is=20O(1)=20rather=20than=20O(N),=20and=20freeGroup()=0A=20= is=20therefore=20O(N)=20not=20O(N^2).=0A=20=0A=20The=20bad=20case=20= probably=20didn't=20happen=20most=20of=20the=20time,=20indeed=20it=20has=0A= =20never=20shown=20up=20in=20a=20profile=20that=20I've=20seen.=20=20I=20= had=20a=20report=20from=20a=0A=20while=20back=20that=20this=20was=20a=20= problem=20with=20really=20large=20heaps,=20though.=0A=20Fortunately=20= the=20fix=20is=20easy.=0A]=20=0A[Fix=20":i=20Maybe",=20noticed=20by=20= Claus=20Reinke=0AIan=20Lynagh=20<[email protected]>**20061121132132=0A=20It=20= looks=20like=20this=20was=20just=20commented=20out=20while=20FC=20was=20= being=20developed.=0A]=20=0A[put=20the=20unsafeCoerce=20trace=20inside=20= DEBUG,=20to=20avoid=20test=20failures=0ASimon=20Marlow=20= <[email protected]>**20061121093748]=20=0A[Fix=20printf$LDBLStub=20= [email protected]**20061121004953=0A=20= =0A=20Apparently,=20the=20original=20fix=20never=20really=20worked=20due=20= to=20typos=20and=20oversights.=0A]=20=0A[Mac=20OS=20X=20mangler:=20= follow=20some=20minor=20gcc=20changes=0A= [email protected]**20061120171553]=20=0A[Add=20ppr=20for=20the=20= MKPAP=20case,=20and=20rearrange=20the=20other=20cases=20to=20match=20the=20= datatype=0AIan=20Lynagh=20<[email protected]>**20061120155352]=20=0A[Avoid=20= problems=20with=20unaligned=20loads=20on=20alpha/mips/mipsel/arm=0AIan=20= Lynagh=20<[email protected]>**20061120154914=0A=20This=20is=20overly=20= conservative,=20but=20it=20works.=0A]=20=0A[reorganise=20PAPI=20= configuration:=20off=20by=20default,=20even=20if=20library=20is=20found=0A= Simon=20Marlow=20<[email protected]>**20061120143657=0A=20Add=20= GhcRtsWithPapi=3DYES=20to=20mk/build.mk=20to=20turn=20it=20on=0A]=20=0A= [No=20special=20Papi=20measurements=20taken=20by=20default=0A= [email protected]**20061109081120]=20=0A[whitespace=0ASimon=20Marlow=20= <[email protected]>**20061120142550]=20=0A[Cosmetic=20improvements,=20= no=20change=20in=20Papi=20functionality.=0A= [email protected]**20061109080400]=20=0A[better=20error=20messages=20= when=20PAPI_library_init()=20fails=0ASimon=20Marlow=20= <[email protected]>**20061120142738]=20=0A[alter=20PAPI=20help=20= message=20slightly=0ASimon=20Marlow=20= <[email protected]>**20061120142722]=20=0A[Added=20configure=20= gadgets=20to=20detect=20Papi,=20and=20fixed=20build=20problems=0A'Alexey=20= Rodriguez=20<[email protected]>'**20061109120414]=20=0A[Selection=20of=20= PAPI=20events=20via=20RTS=20command=20line=0A= [email protected]**20061109075746]=20=0A[Addition=20of=20PAPI=20to=20= [email protected]**20061108171452=0A=20This=20patch=20still=20= requires=20the=20addition=20of=20the=20USE_PAPI=0A=20define=20to=20= compile=20with=20PAPI.=20Also,=20programs=20must=20be=0A=20compiled=20= and=20linked=20with=20the=20appropriate=20library=20flags=0A=20for=20= papi.=0A]=20=0A[Don't=20force=20-static=20on=20mips=0AIan=20Lynagh=20= <[email protected]>**20061120122305]=20=0A[Don't=20make=20ghc=20threaded=20= if=20GhcNotThreaded=20is=20YES=0AIan=20Lynagh=20= <[email protected]>**20061120121631]=20=0A[Cope=20with=20big=20endian=20= float=20word=20order=20on=20little=20endian=20machines=0AIan=20Lynagh=20= <[email protected]>**20061120121309]=20=0A[Emit=20.bat=20versions=20of=20= -inplace=20scripts=20on=20Windows=20platforms=20(Cabal-friendlier)=0A= [email protected]**20061117012343]=20=0A[Emit=20.bat=20version=20of=20= -inplace=20script=20on=20Windows=20platforms=0A= [email protected]**20061117012239]=20=0A[restore=20compilation=20with=20= 5.04=0ASimon=20Marlow=20<[email protected]>**20061115104322]=20=0A= [remove=20unused=20includes,=20now=20that=20Storage.h=20&=20Stable.h=20= are=20included=20by=20Rts.h=0ASimon=20Marlow=20= <[email protected]>**20061115104111]=20=0A[move=20newSpark()=20= prototype=20to=20RtsExternal.h=20to=20avoid=20warnings=0ASimon=20Marlow=20= <[email protected]>**20061107115430]=20=0A[mark=20stop=20event=20= handle=20as=20invalid=20once=20closed,=20making=20shutdowns=20more=20= [email protected]**20061016223516]=20=0A[simplify=20the=20= generated=20C=20a=20little=20by=20removing=20some=20casts.=0ASimon=20= Marlow=20<[email protected]>**20061114162846]=20=0A[fix=20types=20= in=20generated=20C=20for=20comparison=20MachOps=0ASimon=20Marlow=20= <[email protected]>**20061114160027=0A=20C=20comparisons=20have=20= type=20'int',=20but=20our=20generated=20code=20assumed=20they=20had=0A=20= type=20'StgWord',=20leading=20to=20(very)=20occasional=20warnings=20from=20= gcc.=0A]=20=0A[Remove=20unused=20Name=20imort,=20and=20add=20a=20comment=20= explaining=20why=20pragmas=20are=20disabled=0AIan=20Lynagh=20= <[email protected]>**20061114131459]=20=0A[Document=20new=20-L=20RTS=20flag=0A= Ian=20Lynagh=20<[email protected]>**20061114113542]=20=0A[Be=20compatible=20= with=20older=20C=20standards=0AIan=20Lynagh=20= <[email protected]>**20061114112514]=20=0A[hp2ps_config_mk=0ARavi=20= Nanavati=20<[email protected]>**20060929225418=0A=20=0A=20Add=20= variables=20for=20hp2ps=20to=20config.mk.in=0A=20=0A]=20=0A[hp_slash_fix=0A= Ravi=20Nanavati=20<[email protected]>**20060929225324=0A=20=0A=20Fix=20= output=20of=20cost-centre=20stacks=20so=20that=20the=20slashes=20appear=20= in=20the=20correct=20place=0A=20=0A=20Please=20include=20this=20patch=20= in=20the=206.6=20branch=20as=20well=20as=20HEAD=0A=20=0A]=20=0A= [rts_ccs_length=0ARavi=20Nanavati=20<[email protected]>**20060929225115=0A= =20=0A=20Add=20the=20-L=20RTS=20flag=20to=20control=20the=20length=20of=20= the=20cost-centre=20stacks=20reported=20in=20=0A=20a=20heap=20profile.=0A= =20=0A=20Please=20include=20this=20change=20in=20the=206.6=20branch=20as=20= well=20as=20HEAD=0A=20=20=0A]=20=0A[multipage_hp2ps=0ARavi=20Nanavati=20= <[email protected]>**20060929224739=0A=20=0A=20Add=20support=20for=20= splitting=20the=20key=20index=20over=20multiple=20pages=20in=20hp2ps=0A=20= Multipage=20support=20can=20be=20requested=20with=20the=20-M=20= command-line=20flag=0A=20or=20inferred=20if=20the=20number=20of=20bands=20= requested=20is=20greater=20than=2020=0A=20(the=20limit=20on=20the=20= number=20of=20bands=20displayed=20has=20been=20removed)=0A=20=0A=20= Please=20include=20this=20change=20in=20the=206.6=20branch=20as=20well=20= as=20HEAD=0A=20=0A]=20=0A[Fix=20(yet=20another)=20odd=20interaction=20= between=20selector=20thunks=20and=20compacting=20GC=0ASimon=20Marlow=20= <[email protected]>**20061114123157=0A=20This=20should=20fix=20= errors=20of=20the=20form=0A=20=0A=20=20=20internal=20error:=20= scavenge_mark_stack:=20unimplemented/strange=20closure=0A=20=20=20=20=20= type=2028=20@=200x2b92e5f79960=0A=20=0A=20But=20since=20it's=20quite=20= difficult=20to=20reproduce=20the=20error,=20I=20can't=20be=20100%=0A=20= certain=20it's=20gone.=20=20I=20certainly=20can't=20reproduce=20it=20= again=20after=20the=0A=20fix,=20anyway.=0A]=20=0A[Add=20literal-shift=20= [email protected]**20061113093501=0A=20=0A=20This=20= is=20a=20re-factored=20version=20of=20Sam=20Bronson's=20patch=0A=20=0A=20= Need=20to=20take=20care=20with=20logical=20shifts.=0A=20=0A]=20=0A= [Fixups=20to=20PelRules=20(esp=20using=20intResult,=20wordResult)=0A= [email protected]**20061113090517=0A=20=0A=20In=20PrelRules=20we=20= carefully=20use=20'intResult'=20to=20trim=20off=20the=20overflow=20in=0A=20= compile-time=20calculations,=20but=20we=20were=20not=20doing=20so=20= consistently.=20=20This=0A=20patch=20fixes=20that,=20I=20think,=20and=20= adds=20type=20signatures=0A=20=0A]=20=0A[Fix=20typo=20"comand"=20(trac=20= #965)=0AIan=20Lynagh=20<[email protected]>**20061112170946]=20=0A[Zap=20= stray=20whitespace=20in=20lhs=20formatting=0ASamuel=20Bronson=20= <[email protected]>**20061110183633]=20=0A[Fix=20up=20.lhs=20delimiters=20= a=20bit=0ASamuel=20Bronson=20<[email protected]>**20061104015642]=20=0A= [[email protected]**20061109164054=0A=20=0A=20the=20= fop=20bundle=20contains=20fop.bat=20and=20fop.sh,=20but=20not=20fop;=0A=20= let=20configuration=20find=20the=20latter.=0A=20=0A]=20=0A[Doc=20nit=20= in=20OccName=0ASamuel=20Bronson=20<[email protected]>**20061108192115]=20= =0A[Remove=20STANDALONE_PACKAGE=20bits=20that=20had=20escaped=20the=20= removal=0AIan=20Lynagh=20<[email protected]>**20061110182050]=20=0A[Make=20= StablePtr=20and=20friends=20visible,=20this=20seems=20to=20be=20= necessary=20for=2064bit=20architectures=0A= [email protected]**20061110171626]=20=0A[Make=20all=20needed=20= prototypes=20visible=20to=20avoid=20warnings=0A= [email protected]**20061110162743]=20=0A[Added=20a=20comment=20about=20= se.info.type=20being=20used=20uninitialized=0A= [email protected]**20061110162654]=20=0A[Added=20a=20workaround=20for=20= [email protected]**20061110162616]=20=0A= [Use=20implication=20constraints=20to=20improve=20type=20inference=0A= [email protected]**20061110133123]=20=0A[Cosmetics=20and=20debug=20= [email protected]**20061110131513]=20=0A[Cosmetics=20= [email protected]**20061110131345]=20=0A[Add=20= HsUtils.unguardedGRHSs,=20and=20use=20it=0A= [email protected]**20061110131250]=20=0A[Comments=20and=20cosmetics=20= [email protected]**20061110131036]=20=0A[Add=20new=20utility=20= function,[email protected]**20061110130836]=20=0A= [[email protected]**20061110130814]=20=0A[Patch=20= to=20demand=20analyser,=20to=20handle=20polymorphism=20in=20zipWithDmds=0A= [email protected]**20061110130726]=20=0A[Do=20not=20print=20HsDoc=20= field=20when=20pretty-printing=20patterns=20(messes=20up=20error=20= message)[email protected]**20061108094813]=20=0A[use=20the=20= right=20$(HC)=20for=20stage=203=0ASimon=20Marlow=20= <[email protected]>**20061109101753]=20=0A[remove=20unused=20= STANDALONE_PACKAGE=20stuff=0ASimon=20Marlow=20= <[email protected]>**20061109101729]=20=0A[update=20flag=20settings=20= after=20files=20were=20relocated=0ASimon=20Marlow=20= <[email protected]>**20061108103806]=20=0A[Comment=20out=20deeply=20= suspicious=20(and=20unused)=20function=20insertStableSymbol=0A= [email protected]**20061107171336=0A=20=0A=20The=20function=20= insertStableSymbol=20looks=20utterly=20wrong,=20because=20it=0A=20= coerces=20a=20value=20of=20type=20'a'=20to=20an=20Addr#!=20=20That=20was=20= in=20turn=20making=20the=0A=20code=20generator=20get=20confused=20(now=20= improved),=20but=20since=20insertStableSymbol=0A=20isn't=20used=20at=20= all,=20I'm=20just=20commenting=20it=20out.=0A=20=0A=20Meanwhile,=20this=20= patch=20also=20enhances=20CoreToStg=20to=20report=20the=20most=20= egregious=0A=20cases=20where=20an=20unsafe=20coerce=20is=20going=20to=20= confuse=20the=20code=20generator.=0A=20=0A]=20=0A[Layout=20and=20= [email protected]**20061107171040]=20=0A[Warn=20= only=20of=20explicit=20imports=20that=20are=20unused=20(test=20is=20= mod177)[email protected]**20061106161212=0A=20=0A=20This=20is=20= really=20a=20long-standing=20bug.=20=20See=20test=20mod177.=0A=20=0A]=20=0A= [Various=20debugging=20print=20changes;=20nothing=20exciting=0A= [email protected]**20061106160244]=20=0A[Tidy=20up=20substitutions=0A= [email protected]**20061106155901=0A=20=0A=20The=20new=20simplifer=20= stuff=20exposed=20the=20fact=20that=20the=20invariants=20on=20the=0A=20= TvSubstEnv=20and=20IdSubstEnv=20were=20insufficiently=20explicit.=20=20= (Resulted=20in=0A=20a=20bug=20found=20by=20Sam=20Brosnon.)=0A=20=0A=20= This=20patch=20fixes=20the=20bug,=20and=20tries=20to=20document=20the=20= invariants=20pretty=0A=20thoroughly.=20See=20=0A=20=09Note=20[Extending=20= the=20TvSubst]=20in=20Type=0A=20=09Note=20[Extenting=20the=20Subst]=20=20= =20in=20CoreSubst=0A=20=0A=20(Most=20of=20the=20new=20lines=20are=20= comments.)=0A=20=0A]=20=0A[Get=20External=20Core=20(-fext-core)=20= working=20with=20readline=0ASamuel=20Bronson=20= <[email protected]>**20061101003649=0A=20Had=20to=20add=20support=20for=20= dynamic=20C=20calls=20and=20for=20foreign=20labels=20(Addr#=0A=20= constants).=20Actually=20I=20only=20did=20the=20printing=20side=20--=20= parsing=20is=20not=0A=20done=20yet.=20But=20at=20least=20now=20you=20can=20= build=20the=20libraries=20with=20-fext-core.=0A=20=0A=20I=20also=20got=20= the=20function=20arrow=20to=20print=20out=20properly=20again=20(it=20was=0A= =20printing=20fully-qualified=20and=20z-coded!)=0A=20=0A=20I=20also=20= added=20a=20field=20for=20calling=20convention=20name=20to=20the=20= External=0A=20data=20constructor=20in=20ExternalCore.Exp=20(for=20static=20= C=20calls).=0A=20=0A=20I'm=20not=20exactly=20sure=20where=20to=20= document=20all=20of=20this,=20so=20I=20haven't=20done=0A=20that,=20= though=20I=20did=20comment=20the=20code=20a=20bit.=0A]=20=0A[Remove=20= pre-5.04=20code=0AIan=20Lynagh=20<[email protected]>**20061024011026]=20=0A= [Major=20overhaul=20of=20the=20Simplifier=0A= [email protected]**20061101164329=0A=20=0A=20This=20big=20patch=20= completely=20overhauls=20the=20Simplifier.=20=20The=20simplifier=0A=20= had=20grown=20old=20and=20crufty,=20and=20was=20hard=20to=20understand=20= and=20maintain.=0A=20This=20new=20version=20is=20still=20quite=20= complicated,=20because=20the=20simplifier=0A=20does=20a=20lot,=20but=20= it's=20much=20easier=20to=20understand,=20for=20me=20at=20least.=0A=20=0A= =20It=20does=20mean=20that=20I=20have=20touched=20almost=20every=20line=20= of=20the=20simplifier,=0A=20so=20the=20diff=20is=20a=20large=20one.=0A=20= =0A=20Big=20changes=20are=20these=0A=20=0A=20*=20When=20simplifying=20an=20= Expr=20we=20generate=20a=20simplified=20Expr=20plus=20a=20=0A=20=20=20= bunch=20of=20"floats",=20which=20are=20bindings=20that=20have=20floated=20= out=0A=20=20=20of=20the=20Expr.=20=20Before,=20this=20float=20stuff=20= was=20returned=20separately,=0A=20=20=20but=20not=20they=20are=20= embedded=20in=20the=20SimplEnv,=20which=20makes=20the=0A=20=20=20= plumbing=20much=20easier=20and=20more=20robust.=20=20In=20particular,=20= the=0A=20=20=20SimplEnv=20already=20meaintains=20the=20"in-scope=20set",=20= and=20making=0A=20=20=20that=20travel=20with=20the=20floats=20helps=20to=20= ensure=20that=20we=20always=20=0A=20=20=20use=20the=20right=20in-scope=20= set.=0A=20=0A=20=20=20This=20change=20has=20a=20pervasive=20effect.=0A=20= =0A=20*=20Rather=20than=20simplifying=20the=20args=20of=20a=20call=20= before=20trying=20rules=0A=20=20=20and=20inlining,=20we=20now=20defer=20= simplifying=20the=20args=20until=20both=0A=20=20=20rules=20and=20= inlining=20have=20failed,=20so=20we're=20going=20to=20leave=20a=0A=20=20=20= call=20in=20the=20result.=20=20This=20avoids=20the=20risk=20of=20= repeatedly=20=0A=20=20=20simplifying=20an=20argument,=20which=20was=20= handled=20by=20funny=20ad-hoc=0A=20=20=20flags=20before.=20=20=0A=20=20=20= =0A=20=20=20The=20downside=20is=20that=20we=20must=20apply=20the=20= substitution=20to=20the=20args=20before=0A=20=20=20rule-matching;=20and=20= if=20thep=20rule=20doesn't=20match=20that=20is=20wasted=20work.=0A=20=20=20= But=20having=20any=20rules=20at=20all=20is=20the=20exception=20not=20the=20= rule,=20and=20the=0A=20=20=20substitution=20is=20lazy,=20so=20we=20only=20= substitute=20until=20a=20no-match=20is=20found.=0A=20=20=20The=20code=20= is=20much=20more=20elegant=20though.=0A=20=0A=20*=20A=20SimplCont=20is=20= now=20more=20zipper-like.=20It=20used=20to=20have=20an=20embedded=0A=20=20= =20function,=20but=20that=20was=20a=20bit=20hard=20to=20think=20about,=20= and=20now=20it's=0A=20=20=20nice=20and=20consistent.=20The=20relevant=20= constructors=20are=20StrictArg=0A=20=20=20and=20StrictBind=0A=20=0A=20*=20= Each=20Rule=20now=20has=20an=20*arity*=20(gotten=20by=20= CoreSyn.ruleArity),=20which=20=0A=20=20=20tells=20how=20many=20arguments=20= it=20matches=20against.=20=20This=20entailed=20adding=0A=20=20=20a=20= field=20ru_nargs=20to=20a=20BuiltinRule.=20=20And=20that=20made=20me=20= look=20at=20=0A=20=20=20PrelRules;=20I=20did=20quite=20a=20bit=20of=20= refactoring=20in=20the=20end,=20so=20the=0A=20=20=20diff=20in=20= PrelRules=20looks=20much=20biggger=20than=20it=20really=20is.=0A=20=0A=20= *=20A=20little=20refactoring=20in=20OccurAnal.=20=20The=20key=20change=20= is=20that=20in=20=0A=20=20=20the=20RHS=20of=09x=20=3D=20y=20`cast`=20co=0A= =20=20=20we=20regard=20'y'=20as=20"many",=20so=20that=20it=20doesn't=20= get=20inlined=20into=20=0A=20=20=20the=20RHS=20of=20x.=20=20This=20= allows=20x=20to=20be=20inlined=20elsewhere.=20=20It's=20=0A=20=20=20very=20= like=20the=20existing=20situation=20for=0A=20=09=09x=20=3D=20Just=20y=0A=20= =20=20where=20we=20treat=20'y'=20as=20"many".=0A=20=0A]=20=0A[Improve=20= error=20message=20from=20ghc=20--make=20when=20filename=20and=20= [email protected]**20061102123111]=20=0A= [Improve=20handling=20of=20unused=20imports=20(test=20is=20mod75)=0A= [email protected]**20061102120441]=20=0A[Remove=20unused=20= [email protected]**20061102120402]=20=0A= [Fix=20handling=20of=20non-in-scope=20exports=20(fixes=20test=20mod7)=0A= [email protected]**20061102120304]=20=0A[Comments=20and=20layout=20= [email protected]**20061102093954]=20=0A[import=20Maybes=20= [email protected]**20061101221108]=20=0A[add=20a=20few=20#includes=20= [email protected]**20061101220950]=20=0A[Trim=20= [email protected]**20061101173439]=20=0A[Default=20the=20= kind=20of=20unconstrained=20meta-type=20variables=20before=20= [email protected]**20061101173325=0A=20=0A=20This=20= patch=20fixes=20a=20long=20standing=20bug,=20Trac=20#179,=20=0A=20and=20= a=20recently=20reported=20one,=20Trac=20#963.=0A=20=0A=20The=20problem=20= in=20both=20cases=20was=20an=20unconstrained=20type=20variable=20'a',=20= of=20kind=0A=20argTypeKind=20(printed=20"??")=20or=20openTypeKind=20= ("?").=20=20At=20top=20level=20we=20now=20default=0A=20the=20kind=20of=20= such=20variables=20to=20liftedTypeKind=20("*").=20=20This=20is=20= important=20because=0A=20then=20instance=20declarations=20can=20match=20= it.=20The=20defaulting=20function=20is=20called=0A=20= TcMType.zonkTopTyVar,=20and=20is=20commented.=20=20(Most=20of=20the=20= extra=20lines=20in=20the=0A=20patch=20are=20comments!)=0A=20=0A]=20=0A= [[email protected]**20061101170448]=20= =0A[[email protected]**20061101143416]=20=0A= [[email protected]**20061101142550]=20=0A= [[email protected]**20061101142343]=20=0A[Make=20= idInfo=20fail=20more=20informatively=20on=20TyVars=0A= [email protected]**20061101142246]=20=0A[Improve=20error=20message=20= (push=20to=206.6=20branch)[email protected]**20061101123727]=20=0A= [Fix=20error=20reporting=20for=20contexts=20during=20deriving=20(Trac=20= 958)[email protected]**20061101122120=0A=20=0A=20When=20doing=20= the=20fixpoint=20iteration=20for=20'deriving'=20we=20have=20to=20be=20= careful=0A=20not=20to=20end=20up=20in=20a=20loop,=20even=20if=20we=20= have=20-fallow-undecidable-instances.=0A=20=0A=20Test=20is=20tcfail169=0A= =20=0A]=20=0A[Fix=20a=20long-standing=20but=20obscure=20bug=20in=20= [email protected]**20061101110442=0A=20= =0A=20Worker/wrapper=20generation=20sometimes=20has=20to=20add=20a=20= dummy=20void=20(State#)=20argument=0A=20to=20retain=20laziness.=20=20But=20= when=20generating=20the=20strictness=20signature=20for=20the=0A=20= worker,=20I=20forgot=20to=20take=20account=20of=20the=20extra=20= argument,=20resulting=20in=20a=0A=20bogus=20strictness=20signature.=0A=20= =0A=20Result,=20chaos.=20=20Trac=20317=20shows=20this=20up,=20and=20this=20= patch=20fixes=20it.=0A=20=0A]=20=0A[Move=20--help,=20--version=20etc=20= to=204.4=20(modes)=20because=20that=20is=20what=20they=20really=20are=0A= [email protected]**20061030135204]=20=0A[remove=20the=20*.raw=20= files=0ASimon=20Marlow=20<[email protected]>**20061027152129]=20=0A= [improve=20the=20diagnostic=20generated=20by=20memInventory()=20for=20a=20= memory=20leak=0ASimon=20Marlow=20= <[email protected]>**20061027133611]=20=0A[count=20mut-list=20= bytes,=20not=20words=0ASimon=20Marlow=20= <[email protected]>**20061027133445]=20=0A[fix=20calculation=20of=20= GC=20Work=20for=206.6+=0ASimon=20Marlow=20= <[email protected]>**20061027103439]=20=0A[copyright=20updates=20= and=20add=20Commentary=20links=0ASimon=20Marlow=20= <[email protected]>**20061026092536]=20=0A[rename=20spin=20lock=20= functions,=20and=20use=20macros=20for=20non-THREADED_RTS=0ASimon=20= Marlow=20<[email protected]>**20061026091814]=20=0A[Remove=20= PAR/GRAN=20code=20from=20the=20storage=20manager=0ASimon=20Marlow=20= <[email protected]>**20061025111114=0A=20=0A]=20=0A= [markRootPtrTable:=20write=20out=20type=20in=20full=20instead=20of=20= using=20evac_fn=20typedef=0ASimon=20Marlow=20= <[email protected]>**20061026085418=0A=20Fixes=20stage=202=20build=20= with=20-fvia-C=0A]=20=0A[an=20expression=20with=20a=20TickBox=20round=20= [email protected]**20061025203829]=20=0A= [Adding=20arrows=20to=20the=20acceptable=20code=20for=20hpc=0A= [email protected]**20061025201514]=20=0A[fixing=20type=20error=20inside=20= Hpc=20inc;=20we=20had=20a=2032=20bit=20'1'.=0A= [email protected]**20061025201422]=20=0A[Improving=20error=20message=20in=20= [email protected]**20061025201338]=20=0A[Changing=20Main.tix=20= to=20<prog_name>.tix=20in=20the=20Hpc=20RTS=0A= [email protected]**20061025201229]=20=0A[Add=20pointer=20to=20coding=20= conventions=20to=20HACKING=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061025164331]=20=0A[6.4=20compatiblity=0A= [email protected]**20061025075900]=20=0A[Haskell=20Program=20Coverage=0A= [email protected]**20061024212907=0A=20=0A=20This=20large=20checkin=20is=20= the=20new=20ghc=20version=20of=20Haskell=0A=20Program=20Coverage,=20an=20= expression-level=20coverage=20tool=20for=20Haskell.=0A=20=0A=20Parts:=0A=20= =0A=20=20-=20Hpc.[ch]=20-=20small=20runtime=20support=20for=20Hpc;=20= reading/writing=20*.tix=20files.=0A=20=20-=20Coverage.lhs=20-=20= Annotates=20the=20HsSyn=20with=20coverage=20tickboxes.=0A=20=20=20-=20= New=20Note's=20in=20Core,=0A=20=20=20=20=20=20=20-=20TickBox=20=20=20=20=20= =20--=20ticked=20on=20entry=20to=20sub-expression=0A=20=20=20=20=20=20=20= -=20BinaryTickBox=20=20--=20ticked=20on=20exit=20to=20sub-expression,=20= depending=0A=20=09=20=20=20=20=20=20=20=09=20=20=20=20=20--=20on=20the=20= boolean=20result.=0A=20=0A=20=20=20-=20New=20Stg=20level=20TickBox=20(no=20= BinaryTickBoxes,=20though)=20=0A=20=0A=20You=20can=20run=20the=20= coverage=20tool=20with=20-fhpc=20at=20compile=20time.=20=0A=20Main=20= must=20be=20compiled=20with=20-fhpc.=20=0A=20=09=09=09=09=20=20=20=20=20=20= =0A]=20=0A[fix=205.04=20compile=0ASimon=20Marlow=20= <[email protected]>**20061024133943]=20=0A[fix=20indentation=20= wibble=20to=20make=20it=20compile=20with=205.04=0ASimon=20Marlow=20= <[email protected]>**20061024122800]=20=0A[Re-enable=20= TABLES_NEXT_TO_CODE=20for=20powerpc=20(was=20accidentally=20disabled)=0A= [email protected]**20061023203321]=20=0A[Split=20GC.c,=20and=20= move=20storage=20manager=20into=20sm/=20directory=0ASimon=20Marlow=20= <[email protected]>**20061024091357=0A=20In=20preparation=20for=20= parallel=20GC,=20split=20up=20the=20monolithic=20GC.c=20file=20into=0A=20= smaller=20parts.=20=20Also=20in=20this=20patch=20(and=20difficult=20to=20= separate,=0A=20unfortunatley):=0A=20=20=20=0A=20=20=20-=20Don't=20= include=20Stable.h=20in=20Rts.h,=20instead=20just=20include=20it=20where=0A= =20=20=20=20=20necessary.=0A=20=20=20=0A=20=20=20-=20consistently=20use=20= STATIC_INLINE=20in=20source=20files,=20and=20INLINE_HEADER=0A=20=20=20=20= =20in=20header=20files.=20=20STATIC_INLINE=20is=20now=20turned=20off=20= when=20DEBUG=20is=20on,=0A=20=20=20=20=20to=20make=20debugging=20easier.=0A= =20=20=20=0A=20=20=20-=20The=20GC=20no=20longer=20takes=20the=20= get_roots=20function=20as=20an=20argument.=0A=20=20=20=20=20We=20weren't=20= making=20use=20of=20this=20generalisation.=0A=20=0A]=20=0A[fix=20a=20= printf=20format=20warning=0ASimon=20Marlow=20= <[email protected]>**20061024091323]=20=0A[add=20prototypes=20for=20= exitHashTable()=0ASimon=20Marlow=20= <[email protected]>**20061020102934]=20=0A[remove=20^Ms=0ASimon=20= Marlow=20<[email protected]>**20061019141218]=20=0A[add=20pure=20= spin=20locks=0ASimon=20Marlow=20= <[email protected]>**20061019135620]=20=0A[comments=20only:=20= document=20allocateLocal()=0ASimon=20Marlow=20= <[email protected]>**20061019101200]=20=0A[rename=20= allocated_bytes()=20to=20allocatedBytes()=0ASimon=20Marlow=20= <[email protected]>**20061019101129]=20=0A[remove=20= performGCWithRoots()=0ASimon=20Marlow=20= <[email protected]>**20061019101102=0A=20I=20don't=20think=20this=20= can=20ever=20be=20useful,=20because=20to=20add=20more=20roots=20you=0A=20= need=20to=20do=20it=20consistently=20for=20every=20GC.=20=20The=20right=20= way=20to=20add=20roots=0A=20is=20to=20use=20newStablePtr.=0A=20=0A]=20=0A= [Bump=20the=20HEAD=20to=206.7=0AIan=20Lynagh=20= <[email protected]>**20061024003553]=20=0A[Clean=20up=20debugging=20code=20= in=20RnNames=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061023180503]=20=0A[wibble=20in=20= parseStaticFlags=0ASimon=20Marlow=20= <[email protected]>**20061023145817=0A=20should=20fix=20profiling=20= and=20unreg=20in=20HEAD=0A]=20=0A[Improve=20error=20messages=20for=20= indexed=20types=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061022171212]=20=0A[A=20little=20abstraction=0A= [email protected]**20061019152328]=20=0A[Fix=20handling=20of=20family=20= instances=20in=20the=20presense=20of=20this=20doc=20stuff=0AManuel=20M=20= T=20Chakravarty=20<[email protected]>**20061022004904=0A=20-=20Not=20= sure=20whether=20I=20do=20the=20right=20thing,=20because=20I=20don't=20= understand=20the=0A=20=20=20doc=20stuff.=20=20However,=20the=20original=20= code=20was=20definitely=20wrong=20and=0A=20=20=20breaking=20the=20= renaming=20of=20family=20instance=20declarations.=0A=20-=20The=20= important=20point=20is=20that=20in=0A=20=0A=20=20=20=20=20data=20= instance=20T=20pats=20=3D=20rhs=0A=20=0A=20=20=20T=20is=20*not*=20a=20= defining=20occurence=20of=20T=20(similarly=20as=20C=20is=20not=20a=20= defining=0A=20=20=20occurence=20in=20"instance=20C=20Int").=0A]=20=0A= [TAG=202006-10-22=0AIan=20Lynagh=20<[email protected]>**20061022003640]=20=0A= [Fix=20parent=20position=20in=20RnNames.nubAvails=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20061021035829=0A=20-=20= `RnNames.nubAvails',=20which=20amalgamates=20AvailInfo=20items=20that=20= belong=20to=20the=20=0A=20=20=20same=20parent,=20needs=20to=20be=20= careful=20that=20the=20parent=20name=20occurs=20first=20if=20it=20is=0A=20= =20=20in=20the=20list=20of=20subnames=20at=20all.=20=20(Otherwise,=20we=20= can=20get=20funny=20export=20items=0A=20=20=20in=20ifaces.)=0A=20-=20I=20= discovered=20this=20while=20debugging=20family=20import/exports,=20but=20= I=20am=20pretty=20=0A=20=20=20sure=20the=20bug=20would=20also=20have=20= shown=20up=20without=20using=20families=20under=20the=20=0A=20=20=20= right=20circumstances.=0A]=20=0A[Fix=20export=20of=20associated=20= families=20with=20new=20name=20parent=20story=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20061021002813=0A=20=0A=20Given=0A=20= =0A=20=20=20module=20Exp=20(T)=0A=20=20=20where=0A=20=0A=20=20=20class=20= C=20a=20where=0A=20=20=20=20=20data=20T=20a=20::=20*=0A=20=0A=20we=20= need=20the=20AvailInfo=20for=20the=20export=20item=20to=20be=20C|{T},=20= not=20just=20T.=0A=20This=20patch=20achieves=20that=20under=20the=20new=20= name=20parent=20scheme.=0A=20=0A]=20=0A[Fix=20processing=20of=20imports=20= involving=20ATs=20with=20the=20new=20name=20parent=20code=0AManuel=20M=20= T=20Chakravarty=20<[email protected]>**20061020180442=0A=20=0A=20= Associated=20types=20in=20import=20lists=20require=20special=20care=20= and=20the=20new=20name=0A=20parent=20code=20broke=20that.=20=20What's=20= the=20problem?=20=20in=20the=20presence=20of=20ATs=0A=20the=20name=20= parent=20relation=20can=20have=20a=20depth=20of=20two=20(not=20just=20= one=20as=20in=20H98).=0A=20Here=20is=20an=20example:=0A=20=0A=20=20=20= class=20GMapKey=20a=20where=0A=20=20=20=20=20data=20GMap=20a=20::=20*=20= ->=20*=0A=20=20=20instance=20GMapKey=20Int=20where=0A=20=20=20=20=20data=20= GMap=20Int=20v=20=3D=20GMapInt=20...=0A=20=0A=20The=20data=20constructor=20= GMapInt's=20parent=20is=20GMap=20whose=20parent=20in=20turn=20is=20the=20= =0A=20class=20GMapKey;=20ie,=20GMapKey=20is=20GMapInt's=20grand=20= parent.=20=20In=20H98,=20data=20types=20=0A=20have=20no=20parents=20= (which=20is=20in=20some=20places=20in=20the=20code=20represented=20by=20= making=20=0A=20them=20their=20own=20parent).=0A=20=0A=20I=20fixed=20this=20= by=20extending=20the=20information=20in=20filterImport's=20occ_env=20and=0A= =20taking=20the=20case=20of=20associated=20types=20explicitly=20in=20= consideration=20when=20=0A=20processing=20the=20various=20forms=20of=20= IE=20items.=0A=20=0A]=20=0A[Fix=20family=20instance=20bug=20due=20to=20= the=20name=20parent=20elimination=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061019180103=0A=20-=20Its=20important=20that=20= `isImplicitTyCon'=20considers=0A=20=20=20(a)=20associated=20families=20= to=20be=20implicit,=20but=0A=20=20=20(b)=20considers=20family=20= instances=20*not*=20to=20be=20implicit=20(for=20the=20same=20reasons=20=0A= =20=20=20=20=20=20=20that=20a=20dfun=20is=20not=20implicit).=0A]=20=0A= [Fix=20show-iface=20for=20family=20instances=20&=20add=20debug=20ppr=20= for=20type=20declarations=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061019165840]=20=0A[Run=20dos2unix=20on=20all=20= the=20outputs,=20and=20don't=20let=20it=20eat=20stderr=0AIan=20Lynagh=20= <[email protected]>**20061019134818]=20=0A[Fix=20stage1=20build=20with=20= 6.2.1=20(from=20Andy=20Gill)=0AIan=20Lynagh=20= <[email protected]>**20061019000807]=20=0A[Fix=20the=20build=20with=20GHC=20= 6.2.2=0AIan=20Lynagh=20<[email protected]>**20061018230555]=20=0A= [Cross-module=20consistency=20check=20for=20family=20instances=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20061018221300]=20=0A= [Fixed=20spelling=20error=20in=20compiler/ghci/InteractiveUI.hs=20and=20= docs/users_guide/[email protected]**20061011204301]=20=0A= [Fix=20a=20bug=20in=20Lint=20(which=20wrongly=20complained=20when=20= compiling=20Data.Sequence=20with=20-02)=0A= [email protected]**20061018120500]=20=0A[Add=20the=20primitive=20= type=20Any,=20and=20use=20it=20for=20Dynamics=0A= [email protected]**20061018115658=0A=20=0A=20GHC's=20code=20= generator=20can=20only=20enter=20a=20closure=20if=20it's=20guaranteed=0A=20= not=20to=20be=20a=20function.=20=20In=20the=20Dynamic=20module,=20we=20= were=20using=20the=20=0A=20type=20(forall=20a.a)=20as=20the=20type=20to=20= which=20the=20dynamic=20type=20was=20unsafely=0A=20cast:=0A=20=09type=20= Obj=20=3D=20forall=20a.a=0A=20=0A=20Gut=20alas=20this=20polytype=20was=20= sometimes=20instantiated=20to=20(),=20something=20=0A=20like=20this=20= (it=20only=20bit=20when=20profiling=20was=20enabled)=0A=20=09let=20y::()=20= =3D=20dyn=20()=0A=20=09in=20(y=20`cast`=20..)=20p=20q=0A=20As=20a=20= result,=20an=20ASSERT=20in=20ClosureInfo=20fired=20(hooray).=0A=20=0A=20= I've=20tided=20this=20up=20by=20making=20a=20new,=20primitive,=20lifted=20= type=20Any,=20and=0A=20arranging=20that=20Dynamic=20uses=20Any,=20thus:=0A= =20=09type=20Obj=20=3D=20ANy=0A=20=0A=20While=20I=20was=20at=20it,=20I=20= also=20arranged=20that=20when=20the=20type=20checker=20instantiates=20=0A= =20un-constrained=20type=20variables,=20it=20now=20instantiates=20them=20= to=20Any,=20not=20()=0A=20=09e.g.=20=20length=20Any=20[]=0A=20=0A=20= [There=20remains=20a=20Horrible=20Hack=20when=20we=20want=20Any-like=20= things=20at=20arbitrary=20=0A=20kinds.=20=20This=20essentially=20never=20= happens,=20but=20see=20comments=20with=20=0A=20TysPrim.mkAnyPrimTyCon.]=0A= =20=0A=20Anyway,=20this=20fixes=20Trac=20#905=0A=20=0A]=20=0A[Add=20= [email protected]**20061018112418=0A=20=0A=20= I'm=20not=20sure=20what=20the=20significance=20of=20the=20"arity"=20of=20= a=20primtive=0A=20TyCon=20is.=20=20They=20aren't=20necessarily=20= saturated,=20so=20it's=20not=20that.=0A=20=0A=20I=20rather=20think=20= that=20arity=20is=20only=20relevant=20for=20=0A=20=09SynTyCon=20=0A=20=09= AlgTyCon=0A=20=09CoercionTyCon=0A=20=0A=20This=20comment=20(and=20commit=20= message)=20is=20just=20an=20aide=20memoire.=0A=20=0A]=20=0A[Spelling=20= [email protected]**20061018112351]=20=0A[Minor=20= [email protected]**20061018112320]=20=0A[Comments=20= [email protected]**20061018112235]=20=0A[fix=20build=20for=20= 6.4.x=20and=206.6.x=0ASimon=20Marlow=20= <[email protected]>**20061018080526]=20=0A[compensate=20for=20= gmp/configure=20sometimes=20not=20being=20executable=0ASimon=20Marlow=20= <[email protected]>**20061017132215]=20=0A[Rejig=20= TABLES_NEXT_TO_CODE:=20the=20-unreg=20flag=20was=20broken=20by=20earlier=20= changes=0ASimon=20Marlow=20<[email protected]>**20061017094435=0A=20= A=20GHC=20binary=20can=20generally=20build=20either=20registerised=20or=20= unregisterised=0A=20code,=20unless=20it=20is=20unregisterised=20only.=20=20= =0A=20=0A=20The=20previous=20changes=20broke=20this,=20but=20I=20think=20= I've=20now=20restored=20it.=0A=20=0A]=20=0A[Stage=202=20fix=20to=20"Keep=20= track=20of=20family=20instance=20modules"=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061016194048]=20=0A[remove=20use=20of=20= FiniteMap,=20use=20Text.Printf=0ASimon=20Marlow=20= <[email protected]>**20061016151935]=20=0A[fix=20a=20regular=20= expression=20in=20banner_re=0ASimon=20Marlow=20= <[email protected]>**20061016150802]=20=0A[Try=20to=20get=20the=20= right=20output=20for=20nofib-analyse=0ASamuel=20Bronson=20= <[email protected]>**20061014175855]=20=0A[Get=20nofib-analyse=20to=20= build=20with=206.4=20at=20least...=0ASamuel=20Bronson=20= <[email protected]>**20061014163442]=20=0A[Don't=20squish=20"Inlined=20= fn"=20into=20the=20right=20margin=20quite=20as=20much=20in=20trace=20= output=0ASamuel=20Bronson=20<[email protected]>**20061016130004]=20=0A= [Fix=20build=20on=20x86_64=0ASimon=20Marlow=20= <[email protected]>**20061016112045=0A=20=0A]=20=0A[Fix=20deadlock=20= on=20second=20call=20to=20newSession=0ASimon=20Marlow=20= <[email protected]>**20061016111741=0A=20Tracked=20down=20by=20= Krasimir=20Angelov=0A]=20=0A[Build=20the=20GHC=20package=20in=20stage=20= 3=20too=0ASimon=20Marlow=20<[email protected]>**20061016110926=0A=20= This=20fixes=20the=20problem=20with=20the=20nightly=20builds=20not=20= including=20the=20GHC=0A=20package.=0A]=20=0A[more=20fixups=20to=20make=20= a=20stage=203=20build=20do=20the=20right=20thing=20with=20the=20ghc=20= package=0ASimon=20Marlow=20<[email protected]>**20061013135318]=20=0A= [use=20the=20correct=20$(HC)=0ASimon=20Marlow=20= <[email protected]>**20061013134443]=20=0A[remove=20unused=20= origPkgIdMap=20field=20from=20PackageState=0ASimon=20Marlow=20= <[email protected]>**20061006105148]=20=0A[Cache=20the=20package=20= database=20the=20first=20time=20it=20is=20read=0ASimon=20Marlow=20= <[email protected]>**20061006104221=0A=20This=20was=20a=20slight=20= oversight=20on=20my=20part,=20I=20intended=20to=20store=20the=0A=20= pristine=20database=20in=20the=20pkgDatabase=20of=20DynFlags,=20but=20= managed=20to=0A=20forget=20to=20do=20it.=0A]=20=0A[fix=20non-DEBUG=20= build=20(probably=20my=20fault,=20sorry)=0ASimon=20Marlow=20= <[email protected]>**20061016105852]=20=0A[Add=20assertion=20checks=20= for=20mkCoVar/[email protected]**20061013162434=0A=20=0A=20= A=20type=20variable=20has=20a=20flag=20saying=20whether=20it=20is=20a=20= *type*=20variable=20or=0A=20a=20*coercion*=20variable.=20=20This=20patch=20= adds=20assertions=20to=20check=20the=20flag.=0A=20=0A=20And=20it=20adds=20= fixes=20to=20places=20which=20were=20Wrong=20(and=20hence=20fired=20the=0A= =20assertion)!=20=0A=20=0A=20Also=20removed=20isCoVar=20from=20Coercion,=20= since=20it's=20done=20by=20Var.isCoVar.=0A=20=0A=20=0A=20=0A]=20=0A= [Uncomment=20code=20to=20emit=20a=20space=20in=20place=20of=20a=20'>'=20= in=20literate=20scripts=0AIan=20Lynagh=20= <[email protected]>**20061013131514=0A=20This=20fixes=20trac=20#210.=20Test=20= is=20read041.=0A]=20=0A[Change=20type=20of=20TcGadt.refineType,=20plus=20= [email protected]**20061013115801]=20=0A[More=20= [email protected]**20061013094230=0A=20=0A= =20I=20rather=20self-indulgently=20spent=20a=20chunk=20of=20yesterday=20= working=20on=20=0A=20refactoring=20RnNames=20further.=20=20The=20result=20= is=20significantly=20simpler:=0A=20=0A=20*=20A=20GlobalRdrElt=20gets=20= an=20extra=20field,=20gre_par,=20which=20records=0A=20=20=20the=20parent=20= (if=20any)=20of=20the=20name=0A=20=0A=20*=20ImportAvails=20has=20two=20= fields=20deleted:=20imp_env=20and=20imp_parent.=0A=20=20=20The=20= information=20provided=20by=20these=20fields=20was=20only=20used=20when=0A= =20=20=20processing=20the=20export=20list;=20and=20the=20same=20= information=20is=20now=20readily=0A=20=20=20generated=20from=20the=20= GlobalRdrElts=20in=20the=20GlobalRdrEnv=0A=20=0A=20I=20also=20did=20some=20= tidying=20up;=20notably=20moving=20AvailEnv=20stuff=20from=0A=20= TcRnTypes=20to=20RnNames.=0A=20=0A=20The=20result=20is=20tha=20the=20= compiler=20is=20some=20130=20lines=20shorter=20than=20before=0A=20=0A]=20= =0A[Keep=20track=20of=20family=20instance=20modules=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20061013004223=0A=20-=20Now=20each=20= modules=20carries=0A=20=20=20(1)=20a=20flag=20saying=20whether=20it=20= contains=20family=20instance=20declarations=20and=0A=20=20=20(2)=20a=20= list=20of=20all=20modules=20further=20down=20in=20the=20import=20tree=20= that=20contain=0A=20=20=20=20=20=20=20family=20instance=20declarations.=0A= =20=20=20(The=20information=20is=20split=20into=20these=20two=20parts=20= for=20the=20exact=20same=20reasons=20why=0A=20=20=20the=20info=20about=20= orphan=20modules=20is=20split,=20too.)=0A=20-=20This=20is=20the=20first=20= step=20to=20*optimised*=20overlap=20checking=20of=20family=20instances=0A= =20=20=20coming=20from=20imported=20modules.=0A=20=0A=20***=20WARNING:=20= This=20patch=20changes=20the=20interface=20file=20format!=20***=0A=20***=20= =20=20=20=20=20=20=20=20=20Recompile=20libraries=20and=20stage2=20from=20= scratch!=20=20***=0A]=20=0A[Overlap=20check=20for=20family=20instances=20= def'd=20in=20current=20module=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061012203737=0A=20-=20All=20family=20instances=20= are=20checked=20for=20overlap=20when=20entered=20into=20TcGblEnv.=0A=20=20= =20Their=20are=20checked=20against=20all=20instances=20in=20the=20EPS=20= and=20those=20currently=20in=0A=20=20=20the=20TcGblEnv.=0A]=20=0A= [[email protected]**20061012160254]=20=0A[Make=20= Inst=20into=20a=20record=20type=20to=20ease=20subsequent=20changes=0A= [email protected]**20061011112305]=20=0A[Improve=20pretty-printing=20= [email protected]**20061011112242]=20=0A[Add=20comments=20= [email protected]**20061011112224]=20=0A= [fix=20definition=20of=20fib=20in=20example=20code=0ASimon=20Marlow=20= <[email protected]>*-20061012110711]=20=0A[Track=20changes=20in=20= [email protected]**20061012121213]=20=0A= [fix=20definition=20of=20fib=20in=20example=20code=0ASimon=20Marlow=20= <[email protected]>**20061012110711]=20=0A[Partially=20fix=20GHCi=20= when=20unregisterised=0AIan=20Lynagh=20<[email protected]>**20061012013901=0A= =20We=20were=20constructing=20info=20tables=20designed=20for=20= TABLES_NEXT_TO_CODE,=0A=20but=20were=20building=20without=20= TABLES_NEXT_TO_CODE.=0A=20=0A=20This=20patch=20also=20fixes=20a=20bug=20= when=20we=20are=20unregisterised=20on=20amd64=20and=0A=20have=20code=20= with=20an=20address=20above=202^32.=0A]=20=0A[More=20import=20tidying=20= and=20fixing=20the=20stage=202=20build=0ASimon=20Marlow=20= <[email protected]>**20061011200110]=20=0A[Use=20relative=20URLs=20= when=20referring=20to=20libraries;=20push=20to=206.6=20branch=0A= [email protected]**20061011142502]=20=0A[Improve=20documentation=20= of=20concurrent=20and=20parallel=20Haskell;=20push=20to=20branch=0A= [email protected]**20061010155834]=20=0A[Correct=20id=20to=20linkend=0A= [email protected]**20061010155814]=20=0A[Fix=20trac=20#921:=20= generate=20*q=20instructions=20for=20int-float=20conversions=0AIan=20= Lynagh=20<[email protected]>**20061011140007=0A=20We=20need=20to=20= generate,=20e.g.,=20cvtsi2sdq=20rather=20than=20cvtsi2sd=20on=20amd64=20= in=0A=20order=20to=20have=20int-float=20conversions=20work=20correctly=20= for=20values=20not=0A=20correctly=20representable=20in=2032=20bits.=0A]=20= =0A[Module=20header=20tidyup=20#2=0ASimon=20Marlow=20= <[email protected]>**20061011143523=0A=20Push=20this=20further=20= along,=20and=20fix=20build=20problems=20in=20the=20first=20patch.=0A]=20=0A= [remove=20BitSet,=20it=20isn't=20used=0ASimon=20Marlow=20= <[email protected]>**20061011131614]=20=0A[Module=20header=20= tidyup,=20phase=201=0ASimon=20Marlow=20= <[email protected]>**20061011120517=0A=20This=20patch=20is=20a=20= start=20on=20removing=20import=20lists=20and=20generally=20tidying=0A=20= up=20the=20top=20of=20each=20module.=20=20In=20addition=20to=20removing=20= import=20lists:=0A=20=0A=20=20=20=20-=20Change=20DATA.IOREF=20->=20= Data.IORef=20etc.=0A=20=20=20=20-=20Change=20List=20->=20Data.List=20= etc.=0A=20=20=20=20-=20Remove=20$Id$=0A=20=20=20=20-=20Update=20= copyrights=0A=20=20=20=20-=20Re-order=20imports=20to=20put=20non-GHC=20= imports=20last=0A=20=20=20=20-=20Remove=20some=20unused=20and=20= duplicate=20imports=0A]=20=0A[Interface=20file=20optimisation=20and=20= removal=20of=20nameParent=0ASimon=20Marlow=20= <[email protected]>**20061011120518=0A=20=0A=20This=20large=20= commit=20combines=20several=20interrelated=20changes:=0A=20=0A=20=20=20-=20= IfaceSyn=20now=20contains=20actual=20Names=20rather=20than=20the=20= special=0A=20=20=20=20=20IfaceExtName=20type.=20=20The=20binary=20= interface=20file=20contains=0A=20=20=20=20=20a=20symbol=20table=20of=20= Names,=20where=20each=20entry=20is=20a=20(package,=0A=20=20=20=20=20= ModuleName,=20OccName)=20triple.=20=20Names=20in=20the=20IfaceSyn=20= point=0A=20=20=20=20=20to=20entries=20in=20the=20symbol=20table.=0A=20=0A= =20=20=20=20=20This=20reduces=20the=20size=20of=20interface=20files,=20= which=20should=0A=20=20=20=20=20hopefully=20improve=20performance=20(not=20= measured=20yet).=0A=20=0A=20=20=20=20=20The=20toIfaceXXX=20functions=20= now=20do=20not=20need=20to=20pass=20around=0A=20=20=20=20=20a=20function=20= from=20Name=20->=20IfaceExtName,=20which=20makes=20that=0A=20=20=20=20=20= code=20simpler.=0A=20=0A=20=20=20-=20Names=20now=20do=20not=20point=20= directly=20to=20their=20parents,=20and=20the=0A=20=20=20=20=20nameParent=20= operation=20has=20gone=20away.=20=20It=20turned=20out=20to=20be=20hard=20= to=0A=20=20=20=20=20keep=20this=20information=20consistent=20in=20= practice,=20and=20the=20parent=20info=0A=20=20=20=20=20was=20only=20= valid=20in=20some=20Names.=20=20Instead=20we=20made=20the=20following=0A=20= =20=20=20=20changes:=0A=20=0A=20=20=20=20=20*=20ImportAvails=20contains=20= a=20new=20field=20=0A=20=20=20=20=20=20=20=20=20=20=20imp_parent=20::=20= NameEnv=20AvailInfo=0A=20=20=20=20=20=20=20which=20gives=20the=20family=20= info=20for=20any=20Name=20in=20scope,=20and=0A=20=20=20=20=20=20=20is=20= used=20by=20the=20renamer=20when=20renaming=20export=20lists,=20amongst=0A= =20=20=20=20=20=20=20other=20things.=20=20This=20info=20is=20thrown=20= away=20after=20renaming.=0A=20=0A=20=20=20=20=20*=20The=20mi_ver_fn=20= field=20of=20ModIface=20now=20maps=20to=0A=20=20=20=20=20=20=20= (OccName,Version)=20instead=20of=20just=20Version,=20where=20the=0A=20=20= =20=20=20=20=20OccName=20is=20the=20parent=20name.=20=20This=20mapping=20= is=20used=20when=0A=20=20=20=20=20=20=20constructing=20the=20usage=20= info=20for=20dependent=20modules.=0A=20=20=20=20=20=20=20There=20may=20= be=20entries=20in=20mi_ver_fn=20for=20things=20that=20are=20not=20in=0A=20= =20=20=20=20=20=20scope,=20whereas=20imp_parent=20only=20deals=20with=20= in-scope=20things.=0A=20=0A=20=20=20=20=20*=20The=20md_exports=20field=20= of=20ModDetails=20now=20contains=0A=20=20=20=20=20=20=20[AvailInfo]=20= rather=20than=20NameSet.=20=20This=20gives=20us=0A=20=20=20=20=20=20=20= family=20info=20for=20the=20exported=20names=20of=20a=20module.=0A=20=0A=20= Also:=0A=20=0A=20=20=20=20-=20ifaceDeclSubBinders=20moved=20to=20= IfaceSyn=20(seems=20like=20the=0A=20=20=20=20=20=20right=20place=20for=20= it).=0A=20=0A=20=20=20=20-=20heavily=20refactored=20renaming=20of=20= import/export=20lists.=0A=20=0A=20=20=20=20-=20Unfortunately=20external=20= core=20is=20now=20broken,=20as=20it=20relied=20on=0A=20=20=20=20=20=20= IfaceSyn.=20=20It=20requires=20some=20attention.=0A]=20=0A[add=20= extendNameEnvList_C=0ASimon=20Marlow=20= <[email protected]>**20061010153137]=20=0A[getMainDeclBinder=20= should=20return=20Nothing=20for=20a=20binding=20with=20no=20variables=0A= Simon=20Marlow=20<[email protected]>**20061010153023=0A=20See=20= test=20rn003=0A=20=0A]=20=0A[Use=20":Co",=20not=20"Co"=20to=20prefix=20= coercion=20TyCon=20names=0ASimon=20Marlow=20= <[email protected]>**20061010134449=0A=20Avoid=20possibility=20of=20= name=20clash=0A]=20=0A[Fix=20another=20hi-boot=20file=0AIan=20Lynagh=20= <[email protected]>**20061010235157]=20=0A[Removed=20unused=20= unwrapFamInstBody=20from=20MkId=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061010205843]=20=0A[Rejig=20the=20auto-scc=20= [email protected]**20061010164116]=20=0A[Do=20not=20= filter=20the=20type=20envt=20after=20each=20GHCi=20stmt=0A= [email protected]**20061010143225=0A=20=0A=20Fixes=20Trac=20#925=0A=20= =0A=20A=20new=20comment=20in=20TcRnDriver=20in=20tcRnStmt=20reads=20= thus:=20=0A=20=0A=20At=20one=20stage=20I=20removed=20any=20shadowed=20= bindings=20from=20the=20type_env;=0A=20they=20are=20inaccessible=20but=20= might,=20I=20suppose,=20cause=20a=20space=20leak=20if=20we=20leave=20= them=20there.=0A=20However,=20with=20Template=20Haskell=20they=20aren't=20= necessarily=20inaccessible.=20=20Consider=20this=0A=20GHCi=20session=0A=20= =09=20Prelude>=20let=20f=20n=20=3D=20n=20*=202=20::=20Int=0A=20=09=20= Prelude>=20fName=20<-=20runQ=20[|=20f=20|]=0A=20=09=20Prelude>=20= $(return=20$=20AppE=20fName=20(LitE=20(IntegerL=207)))=0A=20=09=2014=0A=20= =09=20Prelude>=20let=20f=20n=20=3D=20n=20*=203=20::=20Int=0A=20=09=20= Prelude>=20$(return=20$=20AppE=20fName=20(LitE=20(IntegerL=207)))=0A=20= In=20the=20last=20line=20we=20use=20'fName',=20which=20resolves=20to=20= the=20*first*=20'f'=0A=20in=20scope.=20If=20we=20delete=20it=20from=20= the=20type=20env,=20GHCi=20crashes=20because=0A=20it=20doesn't=20expect=20= that.=0A=20=0A=20=0A]=20=0A[Fail=20more=20informatively=20when=20a=20= global=20isn't=20in=20the=20type=20environment=0A= [email protected]**20061010143145]=20=0A[Rough=20matches=20for=20= family=20instances=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20061010044656=0A=20-=20Class=20and=20type=20= family=20instances=20just=20got=20a=20lot=20more=20similar.=0A=20-=20= FamInst,=20like=20Instance,=20now=20has=20a=20rough=20match=20signature.=20= =20The=20idea=20is=20the=0A=20=20=20same:=20if=20the=20rough=20match=20= doesn't=20match,=20there=20is=20no=20need=20to=20pull=20in=20the=20while=0A= =20=20=20tycon=20describing=20the=20instance=20(from=20a=20lazily=20read=20= iface).=0A=20-=20IfaceFamInst=20changes=20in=20a=20similar=20way=20and=20= the=20list=20of=20all=20IFaceFamInsts=20is=0A=20=20=20now=20written=20= into=20the=20binary=20iface=20(as=20for=20class=20instances),=20as=20= deriving=20it=0A=20=20=20from=20the=20tycon=20(as=20before)=20would=20= render=20the=20whole=20rough=20matching=20useless.=0A=20-=20As=20a=20= result=20of=20this,=20the=20plumbing=20of=20class=20instances=20and=20= type=20instances=20=0A=20=20=20through=20the=20various=20environments,=20= ModIface,=20ModGuts,=20and=20ModDetails=20is=20now=0A=20=20=20almost=20= the=20same.=20=20(The=20remaining=20difference=20are=20mostly=20because=20= the=20dfun=20of=20a=0A=20=20=20class=20instance=20is=20an=20Id,=20but=20= type=20instance=20refer=20to=20a=20TyCon,=20not=20an=20Id.)=0A=20=0A=20= ***=20WARNING:=20The=20interface=20file=20format=20changed!=20***=0A=20= ***=09=20=20=20=20=20Rebuild=20from=20scratch.=09=09***=0A]=20=0A[Tweaks=20= and=20missing=20case=20in=20disassembler=0AIan=20Lynagh=20= <[email protected]>**20061009230539]=20=0A[Update=20hi-boot=20files=20to=20= fix=20building=20with=20old=20GHCs=0AIan=20Lynagh=20= <[email protected]>**20061009193218]=20=0A[STM=20invariants=0A= [email protected]**20061007122907]=20=0A[Fix=20unregisterised=20= alpha=20builds=0AIan=20Lynagh=20<[email protected]>**20061004125857]=20=0A= [Comments=20and=20an=20import-trim=0A= [email protected]**20061006161403]=20=0A[Mention=20that=20the=20= module=20sub-directory=20structure=20for=20.o=20and=20.hi=20files=20is=20= created=20automatically=20by=20GHC=0A= [email protected]**20061006151234]=20=0A[Bale=20out=20before=20= renamer=20errors=20are=20duplicated=0A= [email protected]**20061006140250=0A=20=0A=20With=20the=20new=20= Haddock=20patch,=20renamer=20errors=20can=20be=20duplicated;=0A=20so=20= we=20want=20to=20bale=20out=20before=20doing=20the=20Haddock=20stuff=20= if=20errors=0A=20are=20found.=0A=20=0A=20(E.g=20test=20mod67=20shows=20= this=20up.)=0A=20=0A]=20=0A[Avoid=20repeatedly=20loading=20GHC.Prim=0A= [email protected]**20061006140102=0A=20=0A=20This=20patch=20changes=20= HscTypes.lookupIfaceByModule.=20=20The=20problem=20was=20that=0A=20when=20= compiling=20the=20'base'=20package,=20we'd=20repeatedly=20reload=20= GHC.Prim.=0A=20This=20is=20easily=20fixed=20by=20looking=20in=20the=20= PIT=20too.=20A=20comment=20with=0A=20lookupIfaceByModule=20explains=0A=20= =0A]=20=0A[Print=20the=20'skipping'=20messages=20at=20verbosity=20level=20= [email protected]**20061006140034]=20=0A[Fix=20up=20the=20= typechecking=20of=20interface=20files=20during=20--make=0A= [email protected]**20061006131932=0A=20=0A=20This=20patch=20fixes=20= Trac=20#909.=20=20The=20problem=20was=20that=20when=20compiling=20=0A=20= the=20base=20package,=20the=20handling=20of=20wired-in=20things=20wasn't=20= right;=0A=20in=20TcIface.tcWiredInTyCon=20it=20repeatedly=20loaded=20= GHC.Base.hi=20into=20the=0A=20PIT,=20even=20though=20that=20was=20the=20= very=20module=20it=20was=20compiling.=0A=20=0A=20The=20main=20fix=20is=20= by=20introducing=20TcIface.ifCheckWiredInThing.=0A=20=0A=20But=20I=20did=20= some=20minor=20refactoring=20as=20well.=0A=20=0A]=20=0A[Import=20= [email protected]**20061006131830]=20=0A[Figure=20out=20= where=20the=20rest=20of=20the=20repositories=20are,=20based=20on=20= defaultrepo=0ASimon=20Marlow=20<[email protected]>**20061006100049=0A= =20This=20is=20a=20slight=20improvement=20over=20the=20patch=20sent=20by=20= [email protected],=0A=20we=20now=20do=20it=20properly=20if=20the=20= source=20repo=20was=20a=20GHC=20tree=20on=20the=20local=0A=20filesystem=20= too.=0A=20=0A=20Merge=20post=206.6.=0A]=20=0A[Yet=20another=20fix=20to=20= mkAtomicArgs=20(for=20floating=20of=20casts)=0A= [email protected]**20061006075213=0A=20=0A=20Comment=20Note=20[Take=20= care]=20explains.=0A=20=0A=20mkAtomicArgs=20is=20a=20mess.=20=20A=20= substantial=20rewrite=20of=20Simplify=20is=20needed.=0A=20=0A]=20=0A= [Improve=20comments=20and=20error=20tracing=0A= [email protected]**20061006075058]=20=0A[Improve=20error=20message=0A= [email protected]**20061006072002]=20=0A[Undo=20an=20= accidentally-committed=20=20patch=20by=20Audrey=0A= [email protected]**20061006071925]=20=0A[Merge=20Haddock=20comment=20= support=20from=20ghc.haddock=20--=20big=20patch=0A= [email protected]**20061005220258]=20=0A[Remove=20casts=20from=20= lvalues=20to=20allow=20compilation=20under=20GCC=204.0=0A= [email protected]**20060929185931]=20=0A[Correct=20the=20= float-coercions-out-of-let=20patch=0A= [email protected]**20061005161819]=20=0A[Merge=20changes=0AIan=20= Lynagh=20<[email protected]>**20061005150630]=20=0A[Improve=20the=20= correlation=20betweens=20documented=20and=20existent=20options=0AIan=20= Lynagh=20<[email protected]>**20061003220354]=20=0A[Document=20= -dfaststring-stats=0AIan=20Lynagh=20<[email protected]>**20061003154147]=20=0A= [Rearrange=20docs=20to=20have=20all=20the=20-ddump-*=20options=20= together=0AIan=20Lynagh=20<[email protected]>**20061003153422]=20=0A[Remove=20= unused=20option=20-femit-extern-decls=0AIan=20Lynagh=20= <[email protected]>**20061003145854]=20=0A[Documentation=20updates=0AIan=20= Lynagh=20<[email protected]>**20061003142658]=20=0A[Fix=20typo=0AIan=20= Lynagh=20<[email protected]>**20061003121926]=20=0A[More=20bootstrapping=20= updates=0AIan=20Lynagh=20<[email protected]>**20061005145629]=20=0A[TAG=20= 2006-10-05=0ALemmih=20<[email protected]>**20061005150234]=20=0A[Teach=20= [email protected]**20061005143624=0A=20=0A= =20This=20patch=20teaches=20SpecConstr=20about=20casts;=20see=20Note=20= [SpecConstr=20for=20casts]=0A=20=0A]=20=0A[Float=20coercions=20out=20of=20= [email protected]**20061005132437=0A=20=0A=20Note=20[Float=20= coercions]=0A=20~~~~~~~~~~~~~~~~~~~~~~=0A=20When=20we=20find=20the=20= binding=0A=20=09x=20=3D=20e=20`cast`=20co=0A=20we'd=20like=20to=20= transform=20it=20to=0A=20=09x'=20=3D=20e=0A=20=09x=20=3D=20x=20`cast`=20= co=09=09--=20A=20trivial=20binding=0A=20There's=20a=20chance=20that=20e=20= will=20be=20a=20constructor=20application=20or=20function,=20or=20= something=0A=20like=20that,=20so=20moving=20the=20coerion=20to=20the=20= usage=20site=20may=20well=20cancel=20the=20coersions=0A=20and=20lead=20= to=20further=20optimisation.=20=20Example:=0A=20=0A=20=20=20=20=20=20= data=20family=20T=20a=20::=20*=0A=20=20=20=20=20=20data=20instance=20T=20= Int=20=3D=20T=20Int=0A=20=0A=20=20=20=20=20=20foo=20::=20Int=20->=20Int=20= ->=20Int=0A=20=20=20=20=20=20foo=20m=20n=20=3D=20...=0A=20=20=20=20=20=20= =20=20=20where=0A=20=20=20=20=20=20=20=20=20=20=20x=20=3D=20T=20m=0A=20=20= =20=20=20=20=20=20=20=20=20go=200=20=3D=200=0A=20=20=20=20=20=20=20=20=20= =20=20go=20n=20=3D=20case=20x=20of=20{=20T=20m=20->=20go=20(n-m)=20}=0A=20= =09=09--=20This=20case=20should=20optimise=0A=20=0A=20=0A]=20=0A[Remove=20= unused=20argument=20to=20mkAtomicArgs=0A= [email protected]**20061005130752]=20=0A[Comments=20and=20layout=0A= [email protected]**20061005130723]=20=0A[Remove=20unused=20OccInfo=20= (simplification)[email protected]**20061005130327=0A=20=0A=20The=20= substitution=20used=20to=20carry=20"fragile"=20OccInfo=20to=20call=20= sites=20via=20the=0A=20DoneId=20constructor=20of=20SimplEnv.SimplSR.=20=20= This=20was=20always=20a=20tricky=20thing=20=0A=20to=20do,=20and=20for=20= some=20time=20I've=20been=20removing=20the=20need=20for=20it.=0A=20=0A=20= Now=20at=20last=20I=20think=20we=20can=20nuke=20it=20altogether.=20=20= Hooray.=0A=20=0A=20I=20did=20a=20full=20nonfib=20run,=20and=20got=20zero=20= perf=20changes.=0A=20=0A]=20=0A[Take=202=20on=20the=20recursive-rule=20= [email protected]**20061005121023=0A=20=0A=20This=20is=20= another=20attempt=20to=20fix=20the=20interaction=20between=20recursion=20= and=0A=20RULES.=20=20I=20just=20had=20it=20wrong=20before!=20=20Now=20= the=20significance=20of=20the=0A=20flag=20on=20IAmALoopBreaker=20is=20= given=20in=20BasicTypes=0A=20=0A=20=20=20|=20IAmALoopBreaker=09--=20Used=20= by=20the=20occurrence=20analyser=20to=20mark=20loop-breakers=0A=20=09=09=09= --=20in=20a=20group=20of=20recursive=20definitions=0A=20=09!RulesOnly=09= --=20True=20<=3D>=20This=20loop=20breaker=20mentions=20the=20other=20= binders=0A=20=09=09=09--=09=20=20=20=20in=20its=20recursive=20group=20= only=20in=20its=20RULES,=20not=0A=20=09=09=09--=09=20=20=20=20in=20its=20= rhs=0A=20=09=09=09--=20=20See=20OccurAnal=20Note=20[RulesOnly]=0A=20=0A]=20= =0A[Take=20advantage=20of=20non-rec-ness=20in=20occurrence=20analysis=20= (minor)[email protected]**20061005105721]=20=0A[Spelling=20in=20= [email protected]**20061005105640]=20=0A[Add=20= [email protected]**20061005105615]=20=0A[Made=20= 'for'=20a=20special=20ID=20in=20the=20grammar.=0A= [email protected]**20060921052053]=20=0A[Merged=20stand-alone=20= [email protected]**20060920223917]=20=0A= [First=20documentation=20on=20stand-alone=20instance=20deriving.=0A= [email protected]**20060919010606]=20=0A[Fixed=20source=20location=20= and=20instance=20origin=20in=20stand-alone=20deriving=20error=20= [email protected]**20060919010535]=20=0A[Added=20type=20= [email protected]**20060918230925]=20= =0A[New=20syntax=20for=20stand-alone=20deriving.=20Implemented=20fully.=0A= [email protected]**20060918230854]=20=0A[Renamer=20part=20of=20= stand-alone=20deriving=20extension.=0A= [email protected]**20060917215420]=20=0A[Added=20parser=20and=20= abstract=20syntax=20support=20for=20stand-alone=20deriving=20= [email protected]**20060917000956]=20=0A[Comments=20= [email protected]**20061004211015]=20=0A[Fix=20comment=20in=20= [email protected]**20061004210845]=20=0A[Improve=20= [email protected]**20061004152705=0A= =20=0A=20Note=20[Recursive=20unboxing]=0A=20~~~~~~~~~~~~~~~~~~~~~~~~~=0A=20= Be=20careful=20not=20to=20try=20to=20unbox=20this!=0A=20=09data=20T=20=3D=20= MkT=20!T=20Int=0A=20But=20it's=20the=20*argument*=20type=20that=20= matters.=20This=20is=20fine:=0A=20=09data=20S=20=3D=20MkS=20S=20!Int=0A=20= because=20Int=20is=20non-recursive.=0A=20=0A=20=0A=20Before=20this=20= patch,=20we=20were=20only=20doing=20the=20unboxing=20if=20the=20*parent*=0A= =20data=20type=20was=20non-recursive=20(eg=20that=20meant=20S=20was=20= not=20unboxed),=20but=0A=20that=20is=20over-conservative.=20=0A=20=0A=20= This=20showed=20up=20with=20indexed=20data=20types=20(thanks=20to=20= Roman=20for=20finding=20it)=0A=20because=20indexed=20data=20types=20are=20= conservatively=20regarded=20as=20always=20recursive.=0A=20=0A]=20=0A= [[email protected]**20061004152614]=20=0A= [[email protected]**20061004152521]=20=0A[Improve=20= liberate-case=20to=20take=20account=20of=20coercions=0A= [email protected]**20061004135155=0A=20=0A=20Note=20[Scrutinee=20= with=20cast]=0A=20~~~~~~~~~~~~~~~~~~~~~~~~~~=0A=20Consider=20this:=0A=20=20= =20=20=20f=20=3D=20\=20t=20->=20case=20(v=20`cast`=20co)=20of=0A=20=09=20= =20=20=20=20=20=20=20=20V=20a=20b=20->=20a=20:=20f=20t=0A=20=0A=20= Exactly=20the=20same=20optimistaion=20(unrolling=20one=20call=20to=20f)=20= will=20work=20here,=20=0A=20despite=20the=20cast.=20=20See=20mk_alt_env=20= in=20the=20Case=20branch=20of=20libCase.=0A=20=0A=20This=20patch=20does=20= the=20job.=20=20For=20a=20change,=20it=20was=20really=20easy.=0A=20=0A]=20= =0A[Remvove=20totally=20unused=20static=20flags=0A= [email protected]**20061004124826]=20=0A[Remove=20ILX=20from=20the=20= GHC=20altogether=20(although=20I=20left=20the=20source=20file=20IlxGen=20= in=20case=20anyone=20wants=20to=20see=20it)=0A= [email protected]**20061004123242]=20=0A[-frule-check=20is=20not=20a=20= [email protected]**20061004123222]=20=0A[Tidy=20= tyvar=20OccNames=20in=20TcTyClDecl=0A= [email protected]**20061004121239=0A=20=0A=20We=20want=20the=20= universal=20and=20existential=20tyvars=20of=20a=20data=20constructor=20= to=0A=20have=20distinct=20OccNames.=20=20It's=20confusing=20if=20they=20= don't=20(in=20error=20messages,=0A=20for=20example),=20and=20with=20the=20= current=20way=20of=20generating=20IfaceSyn,=20it=20actally=0A=20= generates=20bogus=20interface=20files.=20=20(Which=20bit=20Roman.)=0A=20=0A= =20When=20IfaceSyn=20is=20full=20of=20Names,=20this=20won't=20matter=20= so=20much,=20but=20it=20still=0A=20seems=20cleaner.=0A=20=0A=20This=20= patch=20adds=20a=20'tidy'=20step=20to=20the=20generation=20of=20DataCon=20= type=20=0A=20variables=20in=20TcTyClDecls.tcResultType=20=0A=20=0A]=20=0A= [Improve=20pretty=20printing=20slightly=0A= [email protected]**20061004121224]=20=0A[Second=20bite=20at=20the=20= [email protected]**20061004111000=0A=20=0A=20= This=20is=20part=202=20of=20the=20patch=20that=20improved=20the=20= interaction=20of=20RULES=20and=0A=20recursion.=20=20It's=20vital=20that=20= all=20Ids=20that=20may=20be=20referred=20to=20from=20later=20in=0A=20the=20= module=20are=20marked=20'IAmALoopBreaker'=20because=20otherwise=20we=20= may=20do=0A=20postInlineUnconditionally,=20and=20lose=20the=20binding=20= altogether.=20=0A=20=0A=20So=20I've=20added=20a=20boolean=20rules-only=20= flag=20to=20IAmALoopBreaker.=20=20Now=20we=20can=0A=20do=20inlining=20= for=20rules-only=20loop-breakers.=20=0A=20=0A]=20=0A[Eliminate=20= [email protected]**20061004110741=0A=20=0A=20Note=20= [Case=20of=20cast]=0A=20~~~~~~~~~~~~~~~~~~~=0A=20Consider=20=09case=20(v=20= `cast`=20co)=20of=20x=20{=20I#=20->=0A=20=09=09...=20(case=20(v=20`cast`=20= co)=20of=20{...})=20...=0A=20We'd=20like=20to=20eliminate=20the=20inner=20= case.=20=20We=20can=20get=20this=20neatly=20by=20=0A=20arranging=20that=20= inside=20the=20outer=20case=20we=20add=20the=20unfolding=0A=20=09v=20|->=20= x=20`cast`=20(sym=20co)=0A=20to=20v.=20=20Then=20we=20should=20inline=20= v=20at=20the=20inner=20case,=20cancel=20the=20casts,=20=0A=20and=20away=20= we=20go=0A=20=09=0A=20This=20patch=20does=20the=20job,=20fixing=20a=20= performance=20hole=20reported=20by=20Roman.=0A=20=0A]=20=0A[Fixes=20for=20= the=20porting=20process=20for=206.6=0AIan=20Lynagh=20= <[email protected]>**20061003124232]=20=0A[Make=20recursion=20and=20RULES=20= [email protected]**20061003153057=0A=20=0A=20See=20= Trac=20#683=0A=20=0A=20This=20patch=20improves=20the=20interaction=20of=20= recursion=20and=20RULES;=20at=20least=20I=0A=20hope=20it=20does.=20=20=20= The=20problem=20was=20that=20a=20RULE=20was=20being=20treated=20= uniformly=20like=0A=20an=20"extra=20RHS".=20This=20worked=20badly=20when=20= you=20have=20a=20non-recursive=20definition=0A=20that=20is=20made=20= recursive=20only=20by=20RULE.=0A=20=0A=20This=20patch=20maeks=20the=20= occurrence=20analyser=20know=20whether=20a=20binder=20is=20referred=20to=0A= =20only=20from=20RULES=20(the=20RulesOnly=20constructor=20in=20OccInfo).=20= =20Then=20we=20can=20ignore=0A=20such=20edges=20when=20deciding=20on=20= the=20order=20of=20bindings=20in=20a=20letrec,=20and=20when=0A=20setting=20= the=20LoopBreaker=20flag.=0A=20=0A=20The=20remaining=20potential=20= problem=20is=20this:=0A=20=09rec{=20f=20=3D=20...g...=0A=20=09=20=20=20;=20= g=20=3D=20...f...=0A=20=09=20=20=20=20=20RULE=20g=20True=20=3D=20...=0A=20= =09=20=20=20}=0A=20=0A=20The=20RULE=20for=20g=20may=20not=20be=20visible=20= in=20f's=20rhs.=20=20This=20is=20fixable,=20but=20not=0A=20today.=0A=20=0A= =20=0A]=20=0A[Warning=20police=20only=0A= [email protected]**20061003134414]=20=0A[Fix=20scoped=20type=20= variables=20for=20expression=20type=20signatures=0A= [email protected]**20061003134056=0A=20=0A=20I=20had=20forgotten=20= to=20bring=20scoped=20type=20variables=20into=20scope=20at=20an=20= expression=0A=20type=20signature,=20such=20as=0A=20=09e=20::=20forall=20= s.=20<type>=0A=20where=20's'=20should=20scope=20over=20the=20expression=20= e.=0A=20=0A=20Like=20everything=20to=20do=20with=20scoped=20type=20= variables,=20fixing=20this=20took=20an=20=0A=20unreasonable=20amount=20= of=20work.=20=20I'm=20sure=20there=20must=20be=20a=20better=20way=20to=20= =0A=20achitect=20this!=0A=20=0A=20I=20updated=20the=20user=20manual=20= too.=0A=20=0A=20A=20test=20is=20tc213.=0A=20=0A=20It=20would=20be=20good=20= to=20push=20this=20into=206.6.1=0A=20=0A]=20=0A[Trim=20imports=0A= [email protected]**20061003133845]=20=0A[Add=20error=20check=20for=20= [email protected]**20061003082805=0A=20=0A=20= Fixes=20Trac=20#919=0A=20=0A]=20=0A[Add=20a=20C++=20phase.=20Fixes=20bug=20= #800=0ALemmih=20<[email protected]>**20060727080023]=20=0A= [Latin-1-to-UTF8=20pre-processor=20example=20for=20docs=20from=20= Christian=20Maeder=0AIan=20Lynagh=20<[email protected]>**20061001010700]=20=0A= [add=20:edit=20to=20the=20release=20notes,=20and=20improve=20the=20docs=20= a=20bit=0ASimon=20Marlow=20<[email protected]>**20060929112108]=20=0A= [Simplify=20the=20way=20in=20which=20the=20coKindFun=20in=20= [email protected]**20060929222845=0A=20= =0A=20Before=20the=20coKindFun=20could=20be=20applied=20to=20too=20many=20= arguments;=0A=20now=20it=20expects=20exactly=20the=20right=20number=20of=20= arguments.=20=20That=0A=20makes=20it=20easier=20to=20write=20the=20= coKindFuns,=20and=20localises=20the=20work.=0A=20=0A]=20=0A[Match=20let=20= before=20lambda=20in=20rule-matching=20(see=20comment=20with=20Lam=20= case=20of=20Rules.match)[email protected]**20060929222645]=20=0A= [Fix=20bug=20in=20SCRIPT_SHELL=20patch=20(|=20should=20be=20||)=0A= [email protected]**20060929222433]=20=0A[Add=20missing=20case=20for=20= [email protected]**20060929165118]=20=0A[Amplify=20scoped=20= [email protected]**20060929165038]=20=0A[Update=20= [email protected]**20060929122855]=20=0A[Remove=20= Linear=20Implicit=20Parameters,=20and=20all=20their=20works=0A= [email protected]**20060929160717=0A=20=0A=20Linear=20implicit=20= parameters=20have=20been=20in=20GHC=20quite=20a=20while,=0A=20but=20we=20= decided=20they=20were=20a=20mis-feature=20and=20scheduled=20them=20for=0A= =20removal.=20=20This=20patch=20does=20the=20job.=0A=20=0A]=20=0A[Global=20= [email protected]**20060929143910]=20=0A= [Improve=20pretty-printing=20of=20Core=0A= [email protected]**20060929133549]=20=0A[Another=20correction=20to=20= the=20(subtle)=20exprIsConApp_maybe=0A= [email protected]**20060929133512]=20=0A[Spelling=20correction=0A= [email protected]**20060929123644]=20=0A[Improve=20pretty=20printing=20= [email protected]**20060929123355]=20=0A[Improve=20= unification=20error=20messages=20(again)=20(push=20to=206.6=20branch)=0A= [email protected]**20060929122010]=20=0A[:edit=20runs=20notepad=20by=20= default=20on=20Windows=0ASimon=20Marlow=20= <[email protected]>**20060929102739]=20=0A[unbreak=20:edit=20patch=20= on=20Windows=0ASimon=20Marlow=20= <[email protected]>**20060928155951]=20=0A[Fix=20#906,=20and=20do=20= #914=20while=20I'm=20in=20here=20(it=20wasn't=20too=20hard)=0ASimon=20= Marlow=20<[email protected]>**20060928151705]=20=0A[Add=20basic=20= :edit=20support=0ASimon=20Marlow=20= <[email protected]>**20060928135156=0A=20Without=20jumping=20to=20= line=20numbers=20or=20%-expansion,=20we=20could=20add=20that=20later.=0A= ]=20=0A[tiny=20fix=20in=20porting=20docs=20I=20just=20spotted=0ASimon=20= Marlow=20<[email protected]>**20060928105611]=20=0A[only=20make=20= stdin/stdout=20unbuffered=20in=20GHCi,=20not=20runghc=20or=20ghc=20-e.=0A= Simon=20Marlow=20<[email protected]>**20060928105403]=20=0A= [testsuite=20*is*=20boring=0ASimon=20Marlow=20= <[email protected]>**20060928105342]=20=0A[fix=20typo=20in=20= comment=0AAndres=20Loeh=20<[email protected]>**20060914235648]=20=0A= [remove=20non-boring=20directories=0ANorman=20Ramsey=20= <[email protected]>**20060915234902]=20=0A[Modify=20toArgs=20to=20= parse=20quotes/escapes=20like=20/bin/sh=0A= [email protected]**20060917003641=0A=20Addresses=20ticket=20#197,=20= which=20asks=20for=20escape=20sequences=20to=20be=20supported=20directly=20= (i.e.=0A=20not=20only=20in=20dquoted=20strings)=20on=20:load=20commands=20= in=20GHCI.=20=20Fix=20modifies=20the=20toArgs=0A=20function=20to=20parse=20= its=20input=20like=20/bin/sh=20does,=20i.e.=20recognizing=20escapes=20= anywhere=0A=20and=20treating=20quoted=20strings=20as=20atomic=20chunks.=20= =20Thus:=0A=20=20=20:load=20a\=20b=20c\"d=20e"=20"f=0A=20would=20parse=20= with=20three=20arguments,=20namely=20'a=20b',=20'c"d',=20and=20'e=20f'.=0A= =20=0A=20toArgs=20is=20used=20to=20parse=20arguments=20for=20both=20= :load=20and=20:main,=20but=20doesn't=20appear=20to=0A=20be=20used=20= elsewhere.=20=20I=20see=20no=20harm=20in=20modifying=20both=20to=20be=20= consistent=20--=20in=20fact,=0A=20the=20functionality=20is=20probably=20= more=20useful=20for=20:main=20than=20for=20:load.=0A]=20=0A[Fix=20= mulIntMayOflo=20on=2064-bit=20arches;=20fixes=20trac=20#867=0AIan=20= Lynagh=20<[email protected]>**20060928004806=0A=20We=20were=20assuming=20we=20= could=20multiply=202=2032-bit=20numbers=20without=20overflowing=0A=20a=20= 64-bit=20number,=20but=20we=20can't=20as=20the=20top=20bit=20is=20the=20= sign=20bit.=0A]=20=0A[Handle=20clock_gettime=20failing=0AIan=20Lynagh=20= <[email protected]>**20060927234630]=20=0A[Change=20default=20repo=20root=20= for=20the=206.6=20branch=0AIan=20Lynagh=20= <[email protected]>*-20060902174936]=20=0A[Tell=20the=206.6=20branch=20= where=20to=20find=20extralibs=0AIan=20Lynagh=20= <[email protected]>*-20060906124640]=20=0A[Rename=20-no-recomp=20to=20= -fforce-recomp,=20and=20document=20it=0ASimon=20Marlow=20= <[email protected]>**20060927132707]=20=0A[Make=20printing=20of=20= binding=20results=20optional=20in=20GHCi,=20and=20document=20it=0ASimon=20= Marlow=20<[email protected]>**20060927132550=0A=20You=20can=20say=20= :set=20-fno-print-bind-result=20in=20GHCi=20to=20disable=20this=20= behaviour.=0A=20Addresses=20#887=0A]=20=0A[Tell=20the=206.6=20branch=20= where=20to=20find=20extralibs=0AIan=20Lynagh=20= <[email protected]>**20060906124640]=20=0A[Change=20default=20repo=20root=20= for=20the=206.6=20branch=0AIan=20Lynagh=20= <[email protected]>**20060902174936]=20=0A[Fix=20exprIsConApp_maybe=20= (wasn't=20dealing=20properly=20with=20the=20EqSpec=20of=20the=20DataCon)=0A= [email protected]**20060927125308]=20=0A[unbreak=20mingw-on-cygwin=20= (/=3DMSYS)[email protected]**20060926165631]=20=0A[Add=20source=20= code=20links=20to=20Haddock=20docs=0ASimon=20Marlow=20= <[email protected]>**20060908112725=0A=20=0A=20Right=20now=20we=20= can=20only=20manage=20to=20add=20a=20source=20code=20link=20for=20the=20= module,=0A=20but=20that's=20better=20than=20nothing.=0A=20=0A=20I=20had=20= to=20put=20the=20list=20of=20core=20packages=20in=20a=20Makefile=20= variable,=0A=20$(CorePackages),=20so=20we'll=20have=20to=20be=20careful=20= to=20keep=20this=20up=20to=20date.=0A=20(I=20could=20have=20slurped=20it=20= out=20of=20libraries/core-packages=20with=20$(shell),=0A=20but=20that's=20= ugly=20and=20really=20slow=20on=20Windows).=0A=20=0A=20There=20are=20a=20= couple=20of=20new=20tweakables:=20CorePackageSourceURL=20and=0A=20= ExtraPackageSourceURL=20in=20config.mk.in,=20set=20these=20to=20the=20= appropriate=0A=20patterns=20for=20generating=20source=20links.=0A=20=0A=20= (when=20we=20merge=20this=20patch=20onto=20the=20HEAD=20we'll=20have=20= to=20tweak=20these=0A=20settings).=0A=20=0A=20Unfortunately=20it=20still=20= doesn't=20work=20for=20all=20the=20modules,=20because=0A=20modules=20= compiled=20without=20-cpp=20don't=20get=20any=20#line=20directives.=20=20= More=0A=20hackery=20required...=0A]=20=0A[Fix=20derived=20instances=20= (again);=20prevents=20infinite=20superclass=20loop=0A= [email protected]**20060926144230]=20=0A[Various=20documentation=20= improvements=20suggested=20by=20Bulat=20Ziganshin=0AIan=20Lynagh=20= <[email protected]>**20060925231855]=20=0A[Fix=20comment/code=20= inconsistency=20spotted=20by=20Bulat=20Ziganshin=0AIan=20Lynagh=20= <[email protected]>**20060925195925=0A=20I'm=20not=20sure=20if=20this=20is=20= the=20example=20that=20was=20intended,=20but=20it's=20at=20least=0A=20= now=20consistent.=0A]=20=0A[rejig=20library=20include/=20files=0A= [email protected]**20060925232125]=20=0A[Fix=20newtype=20deriving=20= properly=20(un-doing=20Audreys=20patch)=0A= [email protected]**20060925121351=0A=20=0A=20The=20newtype-deriving=20= mechanism=20generates=20a=20HsSyn=20case=20expression=20looking=0A=20= like=20this=0A=20=09case=20(d=20`cast`=20co)=20of=20{=20...=20}=0A=20= That=20is,=20the=20case=20expression=20scrutinises=20a=20dictionary.=20=20= This=20is=20=0A=20otherwise=20never=20seen=20in=20HsSyn,=20and=20it=20= made=20the=20desugarer=0A=20(Check.get_unused_cons)=20crash=20in=20= tcTyConAppTyCon.=0A=20=0A=20It=20would=20really=20be=20better=20to=20= generate=20Core=20in=20TcInstDecls=20(the=20newtype=0A=20deriving=20= part)=20but=20I'm=20not=20going=20to=20do=20that=20today.=20=20Instead,=20= I=20made=0A=20Check.get_unused_cons=20a=20bit=20more=20robust.=0A=20=0A=20= Audrey=20tried=20to=20fix=20this=20over=20the=20weekend,=20but=20her=20= fix=20was,=20alas,=20utterly=0A=20bogus,=20which=20caused=20mysterious=20= failures=20later.=20=20I=20completely=20undid=20this=0A=20change.=0A=20=0A= =20Anyway=20it=20should=20work=20now!=0A=20=0A]=20=0A[Document=20-F=20in=20= the=20flag=20reference=0AIan=20Lynagh=20= <[email protected]>**20060925134816]=20=0A[Added=20Darwinports=20path=20to=20= DocBook=20XSL=20stylesheets=20to=20configure.=0A= [email protected]**20060918232831]=20=0A[Comment-only:=20Fix=20a=20= typo,=20and=20note=20that=20the=20PredTy=20case=20on=20= SplitTyConApp_maybe=20was=20added=20as=20a=20kluge.=0A= [email protected]**20060924123151]=20=0A[In=20tcSplittyConApp_maybe,=20= [email protected]**20060924063208=0A=20= such=20that=20this=20can=20compile=20again:=0A=20=0A=20=20=20=20=20= newtype=20Moose=20=3D=20MkMoose=20()=20deriving=20(Eq,=20Ord)=0A=20=0A]=20= =0A[Fixed=20DocBook=20XML=20once=20again,=20"make=20validate"=20is=20= [email protected]**20060923165045]=20=0A[Trim=20more=20= [email protected]**20060923072509]=20=0A[Fix=20origin=20= [email protected]**20060923072407]=20=0A= [Remove=20ASSERT=20from=20mkDataCon,=20and=20add=20comments=20to=20= [email protected]**20060923053053]=20=0A[The=20= unboxed=20tuple=20kind=20is=20(#),=20not=20(##)=0A= [email protected]**20060923043130]=20=0A[Complete=20definition=20of=20= cmPredX=20to=20take=20account=20of=20EqPred=0A= [email protected]**20060923042934]=20=0A[Correct=20crucial=20typo=20= in=20isSubKind=20(kc1=20->=20kc2)!=0A= [email protected]**20060923042829]=20=0A[Re-work=20the=20= [email protected]**20060923040505=0A=20=0A= =20The=20newtype=20deriving=20mechanism=20is=20much=20trickier=20to=20= support=20than=20it=0A=20seems=20at=20first.=20=20Kevin=20didn't=20get=20= it=20quite=20right=20when=20moving=20to=20FC,=0A=20and=20I=20ended=20up=20= re-writing=20quite=20a=20bit=20of=20it.=20=20=0A=20=0A=20I=20think=20= it's=20right=20now,=20but=20I=20have=20not=20yet=20tested=20it=20= thoroughly.=0A=20=0A]=20=0A[Add=20TcRnMonad.newSysLocalIds,=20and=20use=20= [email protected]**20060923040416]=20=0A[Remove=20dead=20code=20= concerning=20coercions=20from=20TypeRep=0A= [email protected]**20060923040216]=20=0A[Move=20snocView=20in=20the=20= file,=20nearer=20the=20other=20spliting=20functions=0A= [email protected]**20060923040138]=20=0A[Improve=20documentation=20= of=20newtype-deriving=20(todo:=20check=20formatting=20still=20works)=0A= [email protected]**20060923040015]=20=0A[Add=20= VarSet.disjointVarSet,=20and=20use=20it=0A= [email protected]**20060923035829]=20=0A[Trim=20imports,=20and=20= [email protected]**20060923035201]=20=0A= [Improve=20specialisation=20in=20SpecConstr=0A= [email protected]**20060922190436=0A=20=0A=20This=20patch=20enables=20= argToPat=20to=20look=20through=20let=20expressions=0A=20=0A=20e.g.=09f=20= (let=20v=20=3D=20rhs=20in=20\y=20->=20...v...)=0A=20=0A=20Here=20we=20= can=20specialise=20for=20f=20(\y=20->=20...)=20because=20the=20= rule-matcher=20will=0A=20look=20through=20the=20let.=0A=20=0A]=20=0A= [Remove=20duplicate=20call=20to=20getDOpts=0A= [email protected]**20060922190350]=20=0A[Remove=20use=20of=20= isVanillaDataCon,=20which=20was=20wrong=20under=20the=20new=20FC=20= [email protected]**20060922190307]=20=0A[Trim=20= imports,[email protected]**20060922190219]=20=0A= [Add=20a=20crucial=20missing=20prime=20in=20tcConPat=0A= [email protected]**20060922185711=0A=20=0A=20This=20fixes=20a=20typo=20= --=20a=20missing=20prime=20in=20tcConPat.=20=20=0A=20=0A=20The=20test=20= is=20gadt18.=0A=20=0A=20While=20modifying=20TcPat=20I=20also=20trimmed=20= imports,=20fixed=20non-exhaustive=0A=20patterns,=20and=20improved=20= tracing.=0A=20=0A=20=0A]=20=0A[64bit=20fixes=20for=20the=20symbol=20= [email protected]**20060923162408]=20=0A[In=20= ByteCodeGen,=20correctly=20passthru=20AnnCast=20in=20all=20relevant=20= places,=20so=20the=20previous=20band-aid=20fix=20is=20no=20longer=20= [email protected]**20060923052815]=20=0A[Add=20explicit=20= eta-reduction=20to=20GHCI's=20schemeE=20such=20that=20deriving=20= Typeable=20won'[email protected]**20060923050929]=20=0A= [Repair=20"ghci"=20under=20FC+AT=20by=20handling=20AnnCast=20in=20= [email protected]**20060922040618]=20=0A[Fix=20= Linker=20import=20when=20BREAKPOINT=20is=20off=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060921210029]=20=0A[Extend=20= IfaceSyn.eqIfTc=20to=20cover=20type=20kind=20variants=20from=20FC=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060921161400]=20= =0A[Use=20--export-dynamic=20to=20ensure=20ghci=20works=20on=20newer=20= openbsds=0ADon=20Stewart=20<[email protected]>**20060921010155=0A=20=0A= =20Changes=20to=20the=20RTLD_DEFAULT=20semantics=20broke=20the=20trick=20= we=20used=20to=20ensure=0A=20libc=20symbols=20were=20available=20to=20= the=20ghci=20linker,=20in=20OpenBSD=204.0.=20We=20can=0A=20fix=20this=20= by=20linking=20the=20ghc=20binary=20itself=20with=20--export-dynamic=20= on=20this=0A=20system,=20removing=20the=20need=20for=20any=20magic=20= Linker.c=20games.=0A=20=0A=20GHCi=20now=20works=20on=20OpenBSD=204.0=0A=20= =0A=20Contributed=20by=20Eric=20Mertens=20<emertens=20at=20gmail.com>=0A=20= =0A]=20=0A[*=20TypeRep.lhs=20and=20TypeRep.lhs-boot=20didn't=20agree=20= on=20their=20signatures=20(SuperKind=20vs=20Kind)=0A= [email protected]**20060921012531]=20=0A[*=20Fix=20stray=20comma=20in=20= HsTypes.lhs'[email protected]**20060921011356]=20=0A= [TAG=20After=20FC=20branch=20merge=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920211146]=20=0A[Correct=20substitution=20= into=20theta=20types=20(after=20merge)=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920204805]=20=0A[Fix=20import=20list=20of=20= TcTyClsDecls=20after=20merge=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920204744]=20=0A[Adding=20FamInstEnv=20&=20= FamInst=20modules=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920201727=0A=20-=20They=20got=20lost=20= during=20manual=20patching,=20as=20they=20are=20file=20additions.=0A]=20=0A= [Adapt=20FC-code=20in=20TcUnify=20to=20pre-subsumption=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920185719=0A=20Wed=20Sep=2020=20= 04:01:18=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Adapt=20FC-code=20in=20TcUnify=20= to=20pre-subsumption=0A]=20=0A[Some=20more=20ASSERTs=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920185432=0A=20Wed=20Sep=2020=20= 02:52:00=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Some=20more=20ASSERTs=0A]=20=0A= [SPJ's=20fix=20to=20resolve=20conflict=20in=20instFun=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920185240=0A=20Wed=20Sep=2020=20= 02:27:26=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20SPJ's=20fix=20to=20resolve=20= conflict=20in=20instFun=0A]=20=0A[Adjust=20code=20from=20manual=20merges=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920185109=0A=20= Tue=20Sep=2019=2014:12:36=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Adjust=20code=20from=20manual=20= merges=0A]=20=0A[Adapt=20TcFix=20imports=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920185041=0A=20Tue=20Sep=2019=2014:11:55=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Adapt=20TcFix=20imports=0A]=20=0A[Basic=20set=20up=20for=20= global=20family=20instance=20environment=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920185019=0A=20Mon=20Sep=2018=2019:52:34=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Basic=20set=20up=20for=20global=20family=20instance=20= environment=0A=20=20=20Fri=20Sep=2015=2015:20:44=20EDT=202006=20=20= Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= Basic=20set=20up=20for=20global=20family=20instance=20environment=0A]=20=0A= [Import/export=20of=20data=20constructors=20in=20family=20instances=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920184953=0A=20= Mon=20Sep=2018=2019:50:42=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Import/export=20of=20data=20= constructors=20in=20family=20instances=0A=20=20=20Tue=20Sep=2012=20= 13:54:37=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Import/export=20of=20data=20= constructors=20in=20family=20instances=0A=20=20=20=20=20-=20Data=20= constructors=20of=20a=20data/newtype=20family=20F=20can=20be=20exported=20= and=20imported=0A=20=20=20=20=20=20=20by=20writing=20F(..)=20or=20= F(ConName).=0A=20=20=20=20=20-=20This=20appears=20the=20most=20natural=20= from=20a=20user's=20persepctive=20-=20although,=20it=20has=20a=0A=20=20=20= =20=20=20=20slightly=20different=20flavour=20than=20similar=20= import/exports=20items=20for=20closed=20data=20=0A=20=20=20=20=20=20=20= types.=20=20The=20data=20constructors=20denoted=20by=20F(..)=20vary=20in=20= dependence=20on=20the=20=0A=20=20=20=20=20=20=20visible=20data=20= instances.=0A=20=20=20=20=20-=20This=20has=20been=20non-trivial=20to=20= achieve=20as=20RnNames=20derives=20its=20knowledge=20of=20what=0A=20=20=20= =20=20=20=20sub-binders=20an=20F(..)=20item=20exports/imports=20from=20= the=20relation=20specified=20by=20=0A=20=20=20=20=20=20=20= Name.nameParent=20-=20ie,=20the=20constructors=20of=20a=20data/newtype=20= instance=20need=20to=20=0A=20=20=20=20=20=20=20have=20the=20family=20= name=20(not=20the=20internal=20name=20of=20the=20representation=20tycon)=20= as=20=0A=20=20=20=20=20=20=20their=20parent.=0A=20=20=20=20=20=0A=20=20=20= =20=20***=20WARNING:=20This=20patched=20changes=20the=20iface=20format!=20= ***=0A=20=20=20=20=20***=20=20=20=20=20=20=20=20=20=20Please=20= re-compile=20from=20scratch!=09=20=20=20=20***=0A]=20=0A[Use=20smart=20= lookup=20for=20tycons=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920184934=0A=20Mon=20Sep=2018=2019:49:35=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Use=20smart=20lookup=20for=20tycons=0A=20=20=20Tue=20Sep=2012=20= 12:55:10=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Use=20smart=20lookup=20for=20= tycons=0A]=20=0A[Fix=20type=20checking=20of=20imported=20data=20= instances=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920184915=0A=20Mon=20Sep=2018=2019:48:41=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Fix=20type=20checking=20of=20imported=20data=20instances=0A=20=20= =20Mon=20Sep=2011=2020:06:51=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Fix=20type=20= checking=20of=20imported=20data=20instances=0A=20=20=20=20=20-=20When=20= reading=20a=20data/newtype=20instance=20from=20an=20interface,=20the=20= data=20constructors=0A=20=20=20=20=20=20=20have=20their=20own=20= universals=20that=20do=20not=20necessarily=20match=20up=20with=20their=20= tycon's=0A=20=20=20=20=20=20=20type=20parameters.=20=20(Whereas=20when=20= type=20checking=20source,=20they=20are=20always=20the=20=0A=20=20=20=20=20= =20=20same.)=0A=20=20=20=20=20-=20Hence,=20we=20need=20to=20be=20careful=20= when=20building=20the=20wrapper=20signature=20of=20imported=0A=20=20=20=20= =20=20=20data=20constructors=20from=20data/newtype=20instances,=20and=20= rename=20the=20type=20variables=0A=20=20=20=20=20=20=20in=20the=20= instance=20types=20appropriately.=0A]=20=0A[Fix=20category=20of=20= representation=20tycon=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920184859=0A=20Mon=20Sep=2018=2019:48:00=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Fix=20category=20of=20representation=20tycon=0A=20=20=20Mon=20= Sep=2011=2016:18:51=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Fix=20category=20of=20= representation=20tycon=0A]=20=0A[Option=20-findexed-types=0AManuel=20M=20= T=20Chakravarty=20<[email protected]>**20060920184842=0A=20Mon=20Sep=20= 18=2019:42:48=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Option=20-findexed-types=0A=20=20=20= Fri=20Sep=20=208=2021:35:37=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Option=20= -findexed-types=0A=20=20=20=20=20-=20Introduced=20the=20switch=20= -findexed-types=20to=20activate=20the=20indexed=20type=20family=20=0A=20=20= =20=20=20=20=20framework.=0A=20=20=20=20=20-=20The=20switch=20enables=20= the=20special=20'family'=20and=20allows=20kind=20signatures=20(which=20= are=0A=20=20=20=20=20=20=20currently=20compulsory=20for=20associated=20= families).=0A]=20=0A[Get=20of=20fam=20inst=20index=20in=20ifaces=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920184802=0A=20= Mon=20Sep=2018=2019:40:42=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Get=20of=20fam=20inst=20index=20in=20= ifaces=0A=20=20=20Fri=20Sep=20=208=2016:31:26=20EDT=202006=20=20Manuel=20= M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Get=20= of=20fam=20inst=20index=20in=20ifaces=0A=20=20=20=20=20-=20Removes=20the=20= explicit=20index=20to=20get=20unique=20names=20for=20derived=20tycons=20= for=20family=0A=20=20=20=20=20=20=20instances=20again,=20following=20a=20= suggestion=20by=20SPJ.=0A=20=20=20=20=20-=20We=20now=20derive=20the=20= coercion=20tycon=20name=20from=20the=20name=20of=20the=20representation=20= =0A=20=20=20=20=20=20=20tycon,=20which=20is=20in=20the=20iface=20= anyways.=0A=20=20=20=20=20=0A=20=20=20=20=20***=20WARNING:=20Change=20of=20= interface=20file=20format!=20***=0A=20=20=20=20=20***=20=20=20=20=20=20=20= =20=20=20Recompile=20from=20scratch!=20=20=20=20=20=20=20=20=20=20***=0A= ]=20=0A[Clean=20up=20and=20refactor=20in=20SimplUtils.mkCase1=20= (identity=20case)=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920184712=0A=20Mon=20Sep=2018=2019:40:05=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Clean=20up=20and=20refactor=20in=20SimplUtils.mkCase1=20= (identity=20case)=0A=20=20=20Wed=20Sep=20=206=2007:42:45=20EDT=202006=20=20= [email protected]=0A=20=20=20=20=20*=20Clean=20up=20and=20refactor=20= in=20SimplUtils.mkCase1=20(identity=20case)=0A]=20=0A[ATs=20are=20now=20= implicitTyThings=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920184645=0A=20Mon=20Sep=2018=2019:36:03=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20ATs=20are=20now=20implicitTyThings=0A=20=20=20Tue=20Sep=20=205=20= 21:09:54=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20ATs=20are=20now=20= implicitTyThings=0A]=20=0A[Straightened=20out=20implicit=20coercions=20= for=20indexed=20types=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920184404=0A=20Mon=20Sep=2018=2019:35:24=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Straightened=20out=20implicit=20coercions=20for=20indexed=20= types=0A=20=20=20Mon=20Sep=20=204=2023:46:14=20EDT=202006=20=20Manuel=20= M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= Straightened=20out=20implicit=20coercions=20for=20indexed=20types=0A=20=20= =20=20=20-=20HscTypes.implicitTyThings=20and=20= LoadIface.ifaceDeclSubBndrs=20now=0A=20=20=20=20=20=20=20include=20the=20= coercion=20of=20indexed=20data/newtypes.=0A=20=20=20=20=20-=20Name=20= generation=20for=20the=20internal=20names=20of=20indexed=20data/newtypes=20= now=20uses=0A=20=20=20=20=20=20=20the=20same=20counter=20that=20= generates=20the=20dfun=20unique=20indexes=20(ie,=20class=20and=20type=0A=20= =20=20=20=20=20=20instances=20are=20counted=20with=20the=20one=20= counter).=20=20We=20could=20make=20this=20two=20=0A=20=20=20=20=20=20=20= separate=20counters=20if=20that's=20what's=20preferred.=0A=20=20=20=20=20= -=20The=20unique=20index=20of=20a=20data/newtype=20instances=20needs=20= to=20go=20into=20the=20iface,=20so=0A=20=20=20=20=20=20=20that=20we=20= can=20generate=20the=20same=20names=20on=20slurping=20in=20the=20iface=20= as=20when=20the=0A=20=20=20=20=20=20=20original=20module=20was=20= generated.=20=20This=20is=20a=20bit=20yucky,=20but=20I=20don't=20see=20a=20= way=0A=20=20=20=20=20=20=20to=20avoid=20that=20(other=20than=20putting=20= the=20full=20blown=20internal=20tycon=20name=20and=20=0A=20=20=20=20=20=20= =20coercion=20name=20into=20the=20iface,=20which=20IMHO=20would=20be=20= worse).=0A=20=20=20=20=20-=20The=20predicate=20for=20when=20a=20datacon=20= has=20a=20wrapper=20didn't=20take=20GADT=0A=20=20=20=20=20=20=20= equations=20nor=20whether=20it=20comes=20froma=20=20family=20instance=20= into=20account.=0A=20=20=20=20=20=0A=20=20=20=20=20***=20WARNING!=20=20= This=20patch=20changed=20the=20interface=20file=20format.=20***=0A=20=20=20= =20=20***=20=20=20=20=20=20=20=20=20=20=20Please=20recompile=20from=20= scratch.=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20***=0A]=20=0A= [Fixed=20two=20bugs=20concerning=20fanilies=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920184103=0A=20Mon=20Sep=2018=20= 19:34:38=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Fixed=20two=20bugs=20concerning=20= fanilies=0A=20=20=20Mon=20Sep=20=204=2020:59:49=20EDT=202006=20=20Manuel=20= M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Fixed=20= two=20bugs=20concerning=20fanilies=0A]=20=0A[Indexed=20newtypes=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060920184035=0A=20Mon=20= Sep=2018=2019:24:27=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Indexed=20newtypes=0A=20=20=20Thu=20= Aug=2031=2022:09:21=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Indexed=20newtypes=0A=20=20=20= =20=20-=20This=20patch=20makes=20indexed=20newtypes=20work=0A=20=20=20=20= =20-=20Only=20lightly=20tested=0A=20=20=20=20=20-=20We=20need=20to=20= distinguish=20between=20open=20and=20closed=20newtypes=20in=20a=20number=20= of=20=0A=20=20=20=20=20=20=20places,=20because=20looking=20through=20= newtypes=20doesn't=20work=20easily=20for=20open=20ones.=0A]=20=0A[Check=20= category=20of=20type=20instances=20and=20some=20newtype=20family=20fixes=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920184013=0A=20= Mon=20Sep=2018=2019:23:39=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Check=20category=20of=20type=20= instances=20and=20some=20newtype=20family=20fixes=0A=20=20=20Thu=20Aug=20= 31=2016:54:14=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Check=20category=20of=20type=20= instances=20and=20some=20newtype=20family=20fixes=0A]=20=0A[Better=20= error=20message=20for=20indexes=20that=20must=20be=20variables=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060920183952=0A=20Mon=20= Sep=2018=2019:19:10=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Better=20error=20message=20for=20= indexes=20that=20must=20be=20variables=0A=20=20=20Wed=20Aug=2030=20= 20:21:33=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Better=20error=20message=20= for=20indexes=20that=20must=20be=20variables=0A]=20=0A[Checking=20= conformance=20of=20AT=20indexes=20with=20instance=20heads=0AManuel=20M=20= T=20Chakravarty=20<[email protected]>**20060920183937=0A=20Mon=20Sep=20= 18=2019:18:18=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Checking=20conformance=20of=20AT=20= indexes=20with=20instance=20heads=0A=20=20=20Wed=20Aug=2030=2020:13:52=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20=20=20*=20Checking=20conformance=20of=20AT=20indexes=20with=20= instance=20heads=0A]=20=0A[Warn=20of=20missing=20ATs=20and=20complain=20= about=20bad=20ATs=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920183851=0A=20Mon=20Sep=2018=2019:17:18=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Warn=20of=20missing=20ATs=20and=20complain=20about=20bad=20ATs=0A= =20=20=20Mon=20Aug=2028=2022:26:22=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Warn=20of=20= missing=20ATs=20and=20complain=20about=20bad=20ATs=0A]=20=0A[Check=20= that=20AT=20instance=20is=20in=20a=20class=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920183835=0A=20Mon=20Sep=2018=20= 19:16:40=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Check=20that=20AT=20instance=20is=20= in=20a=20class=0A=20=20=20Sat=20Aug=2026=2021:49:56=20EDT=202006=20=20= Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= Check=20that=20AT=20instance=20is=20in=20a=20class=0A]=20=0A[Kind=20sig=20= for=20toplevel=20family=20decls=20is=20optional=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920183813=0A=20Mon=20Sep=2018=20= 19:13:47=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Kind=20sig=20for=20toplevel=20= family=20decls=20is=20optional=0A=20=20=20Sat=20Aug=2026=2019:03:50=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20=20=20*=20Kind=20sig=20for=20toplevel=20family=20decls=20is=20= optional=0A=20=20=20=20=20-=20Kind=20sigs=20are=20still=20compulsory=20= for=20AT=20family=20decls.=20=20Changing=20this=20is=20more=20=0A=20=20=20= =20=20=20=20tricky,=20as=20AT=20decls=20don't=20have=20the=20family=20= keyword=20and=20hence=20look=20like=20empty=20=0A=20=20=20=20=20=20=20= data=20decls.=20=20That=20impacts=20reduce/reduce=20conflicts=20and/or=20= the=20criteria=20for=20=0A=20=20=20=20=20=20=20checking=20whether=20a=20= TyData=20variant=20is=20a=20family=20signature.=0A=20=20=20=20=20-=20= Also=20removed=20iso=20from=20the=20syntax=20(it's=20still=20in=20the=20= lexer=20in=20case=20we=20want=20to=0A=20=20=20=20=20=20=20resurrect=20= it).=20=0A]=20=0A[Fixed=20bug=20in=20coercion=20for=20indexed=20data=20= types=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920183742=0A=20Mon=20Sep=2018=2019:12:51=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Fixed=20bug=20in=20coercion=20for=20indexed=20data=20types=0A=20= =20=20Fri=20Aug=2025=2016:45:29=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Fixed=20bug=20= in=20coercion=20for=20indexed=20data=20types=0A=20=20=20=20=20-=20= Significant=20examples=20are=20starting=20to=20work;=20eg,=20generic=20= finite=20maps:=0A=20=20=20=20=20=0A=20=20=20=20=20class=20GMapKey=20k=20= where=0A=20=20=20=20=20=20=20data=20GMap=20k=20::=20*=20->=20*=0A=20=20=20= =20=20=20=20empty=20=20=20=20=20=20=20::=20GMap=20k=20v=0A=20=20=20=20=20= =20=20lookup=20=20=20=20=20=20::=20k=20->=20GMap=20k=20v=20->=20Maybe=20= v=0A=20=20=20=20=20=20=20insert=20=20=20=20=20=20::=20k=20->=20v=20->=20= GMap=20k=20v=20->=20GMap=20k=20v=0A=20=20=20=20=20=0A=20=20=20=20=20= instance=20GMapKey=20Int=20where=0A=20=20=20=20=20=20=20data=20GMap=20= Int=20v=20=20=20=20=20=20=20=20=3D=20GMapInt=20(Map.Map=20Int=20v)=0A=20=20= =20=20=20=20=20empty=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =3D=20GMapInt=20Map.empty=0A=20=20=20=20=20=20=20lookup=20k=20(GMapInt=20= m)=20=20=20=3D=20Map.lookup=20k=20m=0A=20=20=20=20=20=20=20insert=20k=20= v=20(GMapInt=20m)=20=3D=20GMapInt=20(Map.insert=20k=20v=20m)=0A=20=20=20=20= =20=0A=20=20=20=20=20instance=20GMapKey=20Char=20where=0A=20=20=20=20=20=20= =20data=20GMap=20Char=20v=20=20=20=20=20=20=20=20=3D=20GMapChar=20(GMap=20= Int=20v)=0A=20=20=20=20=20=20=20empty=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=3D=20GMapChar=20empty=0A=20=20=20=20=20=20=20= lookup=20k=20(GMapChar=20m)=20=20=20=3D=20lookup=20(ord=20k)=20m=0A=20=20= =20=20=20=20=20insert=20k=20v=20(GMapChar=20m)=20=3D=20GMapChar=20= (insert=20(ord=20k)=20v=20m)=0A=20=20=20=20=20=0A=20=20=20=20=20instance=20= GMapKey=20()=20where=0A=20=20=20=20=20=20=20data=20GMap=20()=20v=20=20=20= =20=20=20=20=20=20=20=20=3D=20GMapUnit=20(Maybe=20v)=0A=20=20=20=20=20=20= =20empty=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=3D=20= GMapUnit=20Nothing=0A=20=20=20=20=20=20=20lookup=20()=20(GMapUnit=20v)=20= =20=20=3D=20v=0A=20=20=20=20=20=20=20insert=20()=20v=20(GMapUnit=20_)=20= =3D=20GMapUnit=20$=20Just=20v=0A=20=20=20=20=20=0A=20=20=20=20=20= instance=20(GMapKey=20a,=20GMapKey=20b)=20=3D>=20GMapKey=20(a,=20b)=20= where=0A=20=20=20=20=20=20=20data=20GMap=20(a,=20b)=20v=20=20=20=20=20=20= =20=20=20=20=20=20=3D=20GMapPair=20(GMap=20a=20(GMap=20b=20v))=0A=20=20=20= =20=20=20=20empty=09=09=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=3D= =20GMapPair=20empty=0A=20=20=20=20=20=20=20lookup=20(a,=20b)=20(GMapPair=20= gm)=20=20=20=3D=20lookup=20a=20gm=20>>=3D=20lookup=20b=20=0A=20=20=20=20=20= =20=20insert=20(a,=20b)=20v=20(GMapPair=20gm)=20=3D=20GMapPair=20$=20= case=20lookup=20a=20gm=20of=0A=20=20=20=20=20=09=09=09=09=20=20=20=20= Nothing=20=20->=20insert=20a=20(insert=20b=20v=20empty)=20gm=0A=20=20=20=20= =20=09=09=09=09=20=20=20=20Just=20gm2=20->=20insert=20a=20(insert=20b=20= v=20gm2=20=20)=20gm=0A=20=20=20=20=20=0A=20=20=20=20=20instance=20= (GMapKey=20a,=20GMapKey=20b)=20=3D>=20GMapKey=20(Either=20a=20b)=20where=0A= =20=20=20=20=20=20=20data=20GMap=20(Either=20a=20b)=20v=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=3D=20GMapEither=20(GMap=20a=20v)=20(GMap=20= b=20v)=0A=20=20=20=20=20=20=20empty=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=3D=20= GMapEither=20empty=20empty=0A=20=20=20=20=20=20=20lookup=20(Left=20=20a)=20= (GMapEither=20gm1=20=20_gm2)=20=3D=20lookup=20a=20gm1=0A=20=20=20=20=20=20= =20lookup=20(Right=20b)=20(GMapEither=20_gm1=20gm2=20)=20=3D=20lookup=20= b=20gm2=0A=20=20=20=20=20=20=20insert=20(Left=20=20a)=20v=20(GMapEither=20= gm1=20gm2)=20=3D=20GMapEither=20(insert=20a=20v=20gm1)=20gm2=0A=20=20=20=20= =20=20=20insert=20(Right=20a)=20v=20(GMapEither=20gm1=20gm2)=20=3D=20= GMapEither=20gm1=20(insert=20a=20v=20gm2)=0A=20=20=20=20=20=0A]=20=0A= [Pattern=20matching=20of=20indexed=20data=20types=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920183717=0A=20Mon=20Sep=2018=20= 19:11:24=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Pattern=20matching=20of=20indexed=20= data=20types=0A=20=20=20Thu=20Aug=2024=2014:17:44=20EDT=202006=20=20= Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= Pattern=20matching=20of=20indexed=20data=20types=0A=20=20=20=20=20-=20= This=20patch=20is=20the=20last=20major=20puzzle=20piece=20to=20type=20= check=20and=20desugar=20indexed=20=0A=20=20=20=20=20=20=20data=20types=20= (both=20toplevel=20and=20associated=20with=20a=20class).=0A=20=20=20=20=20= -=20However,=20it=20needs=20more=20testing=20-=20esp=20wrt=20to=20= accumlating=20CoPats=20-=20and=20some=20=0A=20=20=20=20=20=20=20static=20= sanity=20checks=20for=20data=20instance=20declarations=20are=20still=20= missing.=0A=20=20=20=20=20-=20There=20are=20now=20two=20detailed=20notes=20= in=20MkIds=20and=20TcPat=20on=20how=20the=20worker/wrapper=0A=20=20=20=20= =20=20=20and=20coercion=20story=20for=20indexed=20data=20types=20works.=0A= ]=20=0A[Introduce=20coercions=20for=20data=20instance=20decls=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060920183646=0A=20Mon=20= Sep=2018=2019:07:30=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Introduce=20coercions=20for=20data=20= instance=20decls=0A=20=20=20Tue=20Aug=2022=2020:33:46=20EDT=202006=20=20= Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= Introduce=20coercions=20for=20data=20instance=20decls=0A=20=20=20=20=20-=20= data=20instance=20declarations=20implicitly=20generate=20a=20coercion=20= moving=20between=20the=0A=20=20=20=20=20=20=20representation=20type=20= and=20family=20instance=20type.=0A=20=20=20=20=20-=20The=20coercion=20is=20= *implicitly*=20generated=20when=20type=20checking=20both=20source=20and=20= =0A=20=20=20=20=20=20=20ifaces.=20=20Ie,=20we=20don't=20safe=20it=20in=20= ifaces=20-=20this=20is=20really=20exactly=20as=20newtype=20=0A=20=20=20=20= =20=20=20coercions=20are=20handled.=0A=20=20=20=20=20-=20The=20previous=20= addition=20of=20the=20instance=20types=20to=20DataCons=20has=20been=20= moved=20to=20=0A=20=20=20=20=20=20=20the=20representation=20TyCon.=20=20= This=20is=20more=20efficient=20as=20it=20is=20shared=20between=20all=0A=20= =20=20=20=20=20=20constructors=20of=20one=20representation=20tycon=20and=20= it=20also=20gathers=20everything=20about=0A=20=20=20=20=20=20=20data=20= instances=20(family=20tycon,=20instance=20types,=20and=20coercion)=20in=20= one=20place:=20the=0A=20=20=20=20=20=20=20algTcParent=20field=20of=20= TyCon.=0A=20=20=20=20=20-=20The=20coercion=20is=20already=20used=20in=20= the=20datacon=20wrappers,=20but=20not=20yet=20during=20type=0A=20=20=20=20= =20=20=20checking=20pattern=20matching=20of=20indexed=20data=20types.=0A=20= =20=20=20=20-=20The=20code=20has=20only=20been=20lightly=20tested,=20but=20= doesn't=20seem=20to=20break=20features=20not=0A=20=20=20=20=20=20=20= related=20to=20indexed=20types.=20=20For=20indexed=20data=20types=20only=20= the=20pattern=20matching=0A=20=20=20=20=20=20=20tc=20code=20(in=20= TcPat.tcConPat)=20and=20some=20well-formedness=20checks=20are=20still=20=0A= =20=20=20=20=20=20=20missing.=20=20And=20there=20will=20surely=20be=20= some=20bugs=20to=20fix.=20=20(newtypes=20still=20require=0A=20=20=20=20=20= =20=20some=20more=20work.)=0A=20=20=20=20=20=0A=20=20=20=20=20=09=20=20=20= **=20WARNING:=20Interface=20file=20format=20changed!=20**=0A=20=20=20=20=20= =09=20=20=20**=20=20=20=20=20=20=20=20=20=20Recompile=20from=20scratch!=20= =20=20=20=20=20=20=20**=0A]=20=0A[Fixed=20two=20data=20family=20bugs=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920183627=0A=20= Mon=20Sep=2018=2019:06:51=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Fixed=20two=20data=20family=20bugs=0A= =20=20=20Mon=20Aug=2021=2015:16:16=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Fixed=20two=20= data=20family=20bugs=0A=20=20=20=20=20-=20Too=20liberal=20pattern=20= matching=20in=20`tcTyClDecl1'=0A=20=20=20=20=20-=20Open=20TyCons=20must=20= always=20be=20exposed=20(ie,=20never=20be=20turned=20into=20abstract=20= tycons=0A=20=20=20=20=20=20=20during=20tidying)=0A]=20=0A[Fix=20the=20= tyvars=20used=20for=20data=20con=20signatures=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920183611=0A=20Mon=20Sep=2018=20= 19:06:12=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Fix=20the=20tyvars=20used=20for=20= data=20con=20signatures=0A=20=20=20Sat=20Aug=2019=2017:19:25=20EDT=20= 2006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20= =20=20*=20Fix=20the=20tyvars=20used=20for=20data=20con=20signatures=0A]=20= =0A[Extend=20TyCons=20and=20DataCons=20to=20represent=20data=20instance=20= decls=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920183534=0A=20Mon=20Sep=2018=2019:05:18=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Extend=20TyCons=20and=20DataCons=20to=20represent=20data=20= instance=20decls=0A=20=20=20Fri=20Aug=2018=2019:11:37=20EDT=202006=20=20= Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= Extend=20TyCons=20and=20DataCons=20to=20represent=20data=20instance=20= decls=0A=20=20=20=20=20-=20This=20is=20a=20faily=20involved=20patch,=20= but=20it=20is=20not=20entirely=20complete:=0A=20=20=20=20=20=20=20+=20= The=20data=20con=20wrapper=20code=20for=20instance=20data=20cons=20needs=20= to=20apply=20the=0A=20=20=20=20=20=20=20=20=20coercions=20(which=20we=20= still=20have=20to=20generate).=0A=20=20=20=20=20=20=20+=20There=20are=20= still=20bugs,=20but=20it=20doesn't=20seem=20to=20affect=20the=20= compilation=20of=0A=20=20=20=20=20=20=20=20=20code=20that=20doesn't=20= use=20type=20families.=0A=20=20=20=20=20=0A=20=20=20=20=20**=20WARNING:=20= Yet=20another=20change=20of=20the=20iface=20format.=20=20**=0A=20=20=20=20= =20**=20=20=20=20=20=20=20=20=20=20Recompile=20everything.=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20**=0A]=20=0A[Fix=20TcSplice=20= after=20some=20type=20family=20related=20changes=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920183518=0A=20Mon=20Sep=2018=20= 19:04:12=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Fix=20TcSplice=20after=20some=20= type=20family=20related=20changes=0A=20=20=20Wed=20Aug=2016=2019:51:27=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20=20=20*=20Fix=20TcSplice=20after=20some=20type=20family=20related=20= changes=0A]=20=0A[Make=20sure=20ATs=20are=20included=20into=20the=20= temporary=20env=20for=20tc=20knot=20tying=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920183503=0A=20Mon=20Sep=2018=2019:03:31=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Make=20sure=20ATs=20are=20included=20into=20the=20temporary=20= env=20for=20tc=20knot=20tying=0A=20=20=20Wed=20Aug=2016=2017:52:40=20EDT=20= 2006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20= =20=20*=20Make=20sure=20ATs=20are=20included=20into=20the=20temporary=20= env=20for=20tc=20knot=20tying=0A]=20=0A[Extend=20Class.Class=20to=20= include=20the=20TyCons=20of=20ATs=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920183446=0A=20Mon=20Sep=2018=2018:58:51=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Extend=20Class.Class=20to=20include=20the=20TyCons=20of=20ATs=0A= =20=20=20Wed=20Aug=2016=2016:15:31=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Extend=20= Class.Class=20to=20include=20the=20TyCons=20of=20ATs=0A]=20=0A[Fix=20= kind=20lookup=20in=20kcIdxTyPats=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920183423=0A=20Mon=20Sep=2018=2018:58:14=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Fix=20kind=20lookup=20in=20kcIdxTyPats=0A=20=20=20Tue=20Aug=20= 15=2021:02:34=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Fix=20kind=20lookup=20in=20= kcIdxTyPats=0A]=20=0A[Extended=20TyCon=20and=20friends=20to=20represent=20= family=20declarations=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920183400=0A=20Mon=20Sep=2018=2018:50:35=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Extended=20TyCon=20and=20friends=20to=20represent=20family=20= declarations=0A=20=20=20Tue=20Aug=2015=2016:52:31=20EDT=202006=20=20= Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= Extended=20TyCon=20and=20friends=20to=20represent=20family=20= declarations=0A]=20=0A[Kind=20and=20type=20checking=20of=20indexed=20= types=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920183333=0A=20Mon=20Sep=2018=2018:39:03=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Kind=20and=20type=20checking=20of=20indexed=20types=0A=20=20=20= Fri=20Aug=2011=2016:09:13=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Kind=20and=20type=20checking=20= of=20indexed=20types=0A=20=20=20=20=20-=20Type=20checking=20of=20kind=20= signatures=0A=20=20=20=20=20-=20Kind=20and=20type=20checking=20of=20= instances=20of=20indexed=20types=0A=20=20=20=20=20-=20Validity=20checks=20= for=20ATs=20are=20still=20*missing*=20(ie,=20that=20the=20type=20indexes=20= =0A=20=20=20=20=20=20=20coincide=20with=20the=20class=20parameters=20and=20= that=20the=20defined=20ATs=20really=20belong=20to=0A=20=20=20=20=20=20=20= the=20class).=0A]=20=0A[Another=20comment=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920183156=0A=20Mon=20Sep=2018=2017:45:06=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Another=20comment=0A=20=20=20Wed=20Aug=20=209=2004:48:18=20EDT=20= [email protected]=0A=20=20=20=20=20*=20Another=20comment=0A= ]=20=0A[Add=20missing=20co_vars=20to=20tcIfaceDataAlt=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920183139=0A=20Mon=20Sep=2018=20= 17:44:24=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Add=20missing=20co_vars=20to=20= tcIfaceDataAlt=0A=20=20=20Wed=20Aug=20=209=2004:45:33=20EDT=202006=20=20= [email protected]=0A=20=20=20=20=20*=20Add=20missing=20co_vars=20to=20= tcIfaceDataAlt=0A]=20=0A[Comments=20only=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920183051=0A=20Mon=20Sep=2018=2017:43:31=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Comments=20only=0A=20=20=20Wed=20Aug=20=209=2004:45:19=20EDT=20= [email protected]=0A=20=20=20=20=20*=20Comments=20only=0A]=20= =0A[Small=20refactoring=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920182708=0A=20Mon=20Sep=2018=2017:41:37=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Small=20refactoring=0A=20=20=20Wed=20Aug=20=209=2004:41:54=20= [email protected]=0A=20=20=20=20=20*=20Small=20= refactoring=0A]=20=0A[TAG=20HEAD=20merge=206=20Aug=2006=20completed=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920182627]=20= =0A[Missing=20change=20re=20additional=20info=20in=20TcTyThing=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060920182402=0A=20Mon=20= Sep=2018=2017:28:37=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Missing=20change=20re=20additional=20= info=20in=20TcTyThing=0A=20=20=20Mon=20Aug=20=207=2014:22:08=20EDT=20= 2006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20= =20=20*=20Missing=20change=20re=20additional=20info=20in=20TcTyThing=0A]=20= =0A[Complete=20OccName->FS=20change=20in=20TcIface=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920182342=0A=20Mon=20Sep=2018=20= 17:27:42=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Complete=20OccName->FS=20change=20= in=20TcIface=0A=20=20=20Mon=20Aug=20=207=2013:03:26=20EDT=202006=20=20= Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= Complete=20OccName->FS=20change=20in=20TcIface=0A]=20=0A[Missing=20= imports=20in=20CoreUtils=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920182324=0A=20Mon=20Sep=2018=2017:27:00=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Missing=20imports=20in=20CoreUtils=0A=20=20=20Mon=20Aug=20=207=20= 11:15:54=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Missing=20imports=20in=20= CoreUtils=0A]=20=0A[Removed=20spurious=20+=20due=20to=20manual=20= patching=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920182303=0A=20Mon=20Sep=2018=2017:25:23=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Removed=20spurious=20+=20due=20to=20manual=20patching=0A=20=20=20= Mon=20Aug=20=207=2011:07:37=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Removed=20= spurious=20+=20due=20to=20manual=20patching=0A]=20=0A[Makefile=20comment=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920182154=0A=20= Mon=20Sep=2018=2017:23:13=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Makefile=20comment=0A=20=20=20Sun=20= Aug=20=206=2021:03:20=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Makefile=20comment=0A=20=20=20= =20=20Fri=20Aug=20=204=2011:44:[email protected]=0A]=20=0A= [Fix=20newtype=20deriving=20bug=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920182126=0A=20Mon=20Sep=2018=2017:22:43=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Fix=20newtype=20deriving=20bug=0A=20=20=20Sun=20Aug=20=206=20= 21:02:35=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Fix=20newtype=20deriving=20= bug=0A=20=20=20=20=20Fri=20Aug=20=204=2006:45:21=20EDT=202006=20=20= [email protected]=0A]=20=0A[Include=20the=20existential=20dictionaries=20in=20= dataConOrigInstPat=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920182048=0A=20Mon=20Sep=2018=2017:22:14=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Include=20the=20existential=20dictionaries=20in=20= dataConOrigInstPat=0A=20=20=20Sun=20Aug=20=206=2020:59:00=20EDT=202006=20= =20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20= *=20Include=20the=20existential=20dictionaries=20in=20dataConOrigInstPat=0A= =20=20=20=20=20Fri=20Aug=20=204=2004:24:25=20EDT=202006=20=20= [email protected]=0A]=20=0A[Comments=20about=20datacon=20worker=20= and=20wrappers=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920182026=0A=20Mon=20Sep=2018=2017:21:20=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Comments=20about=20datacon=20worker=20and=20wrappers=0A=20=20=20= Sun=20Aug=20=206=2020:57:48=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Comments=20= about=20datacon=20worker=20and=20wrappers=0A=20=20=20=20=20Fri=20Aug=20=20= 4=2004:23:[email protected]=0A]=20=0A[Make=20= newtype=20Coercion=20eta-contract=20if=20the=20tails=20of=20lhs=20and=20= rhs=20match=20up=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920181959=0A=20Mon=20Sep=2018=2017:20:17=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Make=20newtype=20Coercion=20eta-contract=20if=20the=20tails=20= of=20lhs=20and=20rhs=20match=20up=0A=20=20=20Sun=20Aug=20=206=2020:57:10=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20=20=20*=20Make=20newtype=20Coercion=20eta-contract=20if=20the=20= tails=20of=20lhs=20and=20rhs=20match=20up=0A=20=20=20=20=20Thu=20Aug=20=20= 3=2012:26:[email protected]=0A]=20=0A[Flip=20direction=20= of=20newtype=20coercions,=20fix=20some=20comments=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920181912=0A=20Mon=20Sep=2018=20= 17:19:19=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Flip=20direction=20of=20newtype=20= coercions,=20fix=20some=20comments=0A=20=20=20Sun=20Aug=20=206=20= 20:56:23=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Flip=20direction=20of=20= newtype=20coercions,=20fix=20some=20comments=0A=20=20=20=20=20Thu=20Aug=20= =203=2010:53:[email protected]=0A]=20=0A[Chagne=20= newtype=20wrapper=20into=20worker=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920181722=0A=20Mon=20Sep=2018=2017:17:57=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Chagne=20newtype=20wrapper=20into=20worker=0A=20=20=20Sun=20= Aug=20=206=2020:55:30=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Chagne=20newtype=20wrapper=20= into=20worker=0A=20=20=20=20=20Wed=20Aug=20=202=2011:54:28=20EDT=202006=20= [email protected]=0A]=20=0A[Clean=20up=20unused=20imports,=20definitions=20= and=20arguments=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920181704=0A=20Mon=20Sep=2018=2017:17:20=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Clean=20up=20unused=20imports,=20definitions=20and=20arguments=0A= =20=20=20Sun=20Aug=20=206=2020:54:31=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Clean=20up=20= unused=20imports,=20definitions=20and=20arguments=0A=20=20=20=20=20Wed=20= Aug=20=202=2011:05:[email protected]=0A]=20=0A[Fix=20= assertion=20and=20default=20case=20for=20GADT=20record=20selectors=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920181642=0A=20= Mon=20Sep=2018=2017:16:10=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Fix=20assertion=20and=20default=20= case=20for=20GADT=20record=20selectors=0A=20=20=20Sun=20Aug=20=206=20= 20:53:39=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Fix=20assertion=20and=20= default=20case=20for=20GADT=20record=20selectors=0A=20=20=20=20=20Wed=20= Aug=20=202=2011:04:[email protected]=0A]=20=0A[make=20= dataConInstPat=20take=20a=20list=20of=20FastStrings=20rather=20than=20= OccNames,=20remove=20out-of-date=20comment=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920181624=0A=20Mon=20Sep=2018=20= 17:15:25=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20make=20dataConInstPat=20take=20a=20= list=20of=20FastStrings=20rather=20than=20OccNames,=20remove=20= out-of-date=20comment=0A=20=20=20Sun=20Aug=20=206=2020:52:24=20EDT=20= 2006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20= =20=20*=20make=20dataConInstPat=20take=20a=20list=20of=20FastStrings=20= rather=20than=20OccNames,=20remove=20out-of-date=20comment=0A=20=20=20=20= =20Wed=20Aug=20=202=2009:26:[email protected]=0A]=20=0A= [Just=20clean-up,=20no=20functional=20changes=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920181602=0A=20Mon=20Sep=2018=20= 17:14:51=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Just=20clean-up,=20no=20functional=20= changes=0A=20=20=20Sun=20Aug=20=206=2020:49:23=20EDT=202006=20=20Manuel=20= M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Just=20= clean-up,=20no=20functional=20changes=0A=20=20=20=20=20Wed=20Aug=20=202=20= 06:48:[email protected]=0A]=20=0A[Get=20rid=20= of=20special=20case=20for=20Vanilla=20tycon=20record=20selectors=20and=20= make=20uniq=20splitting=20more=20uniform=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920181540=0A=20Mon=20Sep=2018=2017:13:44=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Get=20rid=20of=20special=20case=20for=20Vanilla=20tycon=20= record=20selectors=20and=20make=20uniq=20splitting=20more=20uniform=0A=20= =20=20Sun=20Aug=20=206=2020:48:06=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Get=20rid=20of=20= special=20case=20for=20Vanilla=20tycon=20record=20selectors=20and=20make=20= uniq=20splitting=20more=20uniform=0A=20=20=20=20=20Wed=20Aug=20=202=20= 06:04:[email protected]=0A]=20=0A[Fix=20problem=20with=20= selectors=20for=20GADT=20records=20with=20unboxed=20fields=0AManuel=20M=20= T=20Chakravarty=20<[email protected]>**20060920181509=0A=20Mon=20Sep=20= 18=2017:13:11=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Fix=20problem=20with=20selectors=20= for=20GADT=20records=20with=20unboxed=20fields=0A=20=20=20Sun=20Aug=20=20= 6=2020:47:11=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Fix=20problem=20with=20= selectors=20for=20GADT=20records=20with=20unboxed=20fields=0A=20=20=20=20= =20Wed=20Aug=20=202=2005:37:[email protected]=0A]=20=0A= [Make=20sym=20coercion=20smart=20constructor=20smarter,=20add=20comments=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920181448=0A=20= Mon=20Sep=2018=2017:11:59=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Make=20sym=20coercion=20smart=20= constructor=20smarter,=20add=20comments=0A=20=20=20Sun=20Aug=20=206=20= 20:32:58=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Make=20sym=20coercion=20= smart=20constructor=20smarter,=20add=20comments=0A=20=20=20=20=20Tue=20= Aug=20=201=2011:30:[email protected]=0A]=20=0A= [Refactoring=20in=20TcGadt=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920180037=0A=20Mon=20Sep=2018=2017:11:25=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Refactoring=20in=20TcGadt=0A=20=20=20Sun=20Aug=20=206=20= 20:32:20=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Refactoring=20in=20TcGadt=0A=20= =20=20=20=20Tue=20Aug=20=201=2010:28:[email protected]=0A= ]=20=0A[Add=20some=20invariant=20checking=20for=20refinements=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060920180000=0A=20Mon=20= Sep=2018=2017:09:56=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Add=20some=20invariant=20checking=20= for=20refinements=0A=20=20=20Sun=20Aug=20=206=2020:30:56=20EDT=202006=20=20= Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= Add=20some=20invariant=20checking=20for=20refinements=0A=20=20=20=20=20= Tue=20Aug=20=201=2008:52:[email protected]=0A]=20= =0A[Minor=20tidying=20up=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920175918=0A=20Mon=20Sep=2018=2017:08:30=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Minor=20tidying=20up=0A=20=20=20Sun=20Aug=20=206=2020:30:11=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20=20=20*=20Minor=20tidying=20up=0A=20=20=20=20=20Tue=20Aug=20=201=20= 08:51:[email protected]=0A]=20=0A[Fix=20GADT=20= refinement=20fix-pointing,=20add=20ASSERTs=20and=20a=20WARN,=20make=20= type=20equality=20functions=20work=20for=20PredTy=20Eqtype=20...=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920175830=0A=20= Mon=20Sep=2018=2017:07:38=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Fix=20GADT=20refinement=20= fix-pointing,=20add=20ASSERTs=20and=20a=20WARN,=20make=20type=20equality=20= functions=20work=20for=20PredTy=20Eqtype=20...=0A=20=20=20Sun=20Aug=20=20= 6=2020:28:50=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Fix=20GADT=20refinement=20= fix-pointing,=20add=20ASSERTs=20and=20a=20WARN,=20make=20type=20equality=20= functions=20work=20for=20PredTy=20Eqtype=20...=0A=20=20=20=20=20Tue=20= Aug=20=201=2006:14:[email protected]=0A]=20=0A[Remove=20= bogus=20ASSERT=20from=20MkId=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920175736=0A=20Mon=20Sep=2018=2017:06:27=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Remove=20bogus=20ASSERT=20from=20MkId=0A=20=20=20Sun=20Aug=20=20= 6=2020:12:41=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Remove=20bogus=20ASSERT=20= from=20MkId=0A=20=20=20=20=20Mon=20Jul=2031=2005:45:48=20EDT=202006=20=20= [email protected]=0A]=20=0A[Fix=20bug=20in=20type=20checking=20interface=20= DataAlts=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920175707=0A=20Mon=20Sep=2018=2017:05:56=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Fix=20bug=20in=20type=20checking=20interface=20DataAlts=0A=20=20= =20Sun=20Aug=20=206=2020:11:56=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Fix=20bug=20in=20= type=20checking=20interface=20DataAlts=0A=20=20=20=20=20Mon=20Jul=2031=20= 05:30:[email protected]=0A]=20=0A[fix=20default=20case=20= filling-in=20for=20GADTs=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920175632=0A=20Mon=20Sep=2018=2017:04:19=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20fix=20default=20case=20filling-in=20for=20GADTs=0A=20=20=20Sun=20= Aug=20=206=2020:09:06=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20fix=20default=20case=20= filling-in=20for=20GADTs=0A=20=20=20=20=20Fri=20Jul=2028=2013:19:40=20= [email protected]=0A]=20=0A[fix=20big-lambda=20eta=20= expansion,=20add=20comments=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920175454=0A=20Mon=20Sep=2018=2017:02:49=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20fix=20big-lambda=20eta=20expansion,=20add=20comments=0A=20=20=20= Sun=20Aug=20=206=2020:07:36=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20fix=20= big-lambda=20eta=20expansion,=20add=20comments=0A=20=20=20=20=20Fri=20= Jul=2028=2013:16:[email protected]=0A]=20=0A[Fix=20Lint=20= for=20alts=20involving=20shadowing=20of=20type=20variables;=20add=20= comments=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920175334=0A=20Mon=20Sep=2018=2017:02:14=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Fix=20Lint=20for=20alts=20involving=20shadowing=20of=20type=20= variables;=20add=20comments=0A=20=20=20Sun=20Aug=20=206=2020:06:39=20EDT=20= 2006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20= =20=20*=20Fix=20Lint=20for=20alts=20involving=20shadowing=20of=20type=20= variables;=20add=20comments=0A=20=20=20=20=20Fri=20Jul=2028=2012:11:55=20= [email protected]=0A]=20=0A[Fix=20a=20couple=20of=20= stage-2=20bogosities=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920175026=0A=20Mon=20Sep=2018=2016:58:39=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Fix=20a=20couple=20of=20stage-2=20bogosities=0A=20=20=20Sun=20= Aug=20=206=2020:00:08=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Fix=20a=20couple=20of=20= stage-2=20bogosities=0A=20=20=20=20=20Fri=20Jul=2028=2006:27:06=20EDT=20= [email protected]=0A]=20=0A[fixing=20record=20selectors=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920174947=0A=20= Mon=20Sep=2018=2016:50:18=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20fixing=20record=20selectors=0A=20=20= =20Sun=20Aug=20=206=2019:56:29=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20fixing=20= record=20selectors=0A=20=20=20=20=20Fri=20Jul=2028=2010:24:28=20EDT=20= [email protected]=0A=20=20=20=20=20-=20Bad=20conflict=20in=20= tcIfaceDataAlt,=20at=20a=20place=20where=20the=20monster=20patch=20had=20= a=20=0A=20=20=20=20=20=20=20conflict,=20too.=20=20I=20have=20no=20idea=20= what=20the=20right=20code=20is.=20=20-=3Dchak=0A=20=20=20NB=20(at=20time=20= of=202nd=20merge):=20previous=20conflict=20resolution=20was=20fine=0A]=20= =0A[GADT=20selector=20bugfix,=20bits=20of=20cleanup=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920174855=0A=20Mon=20Sep=2018=20= 16:48:32=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20GADT=20selector=20bugfix,=20bits=20= of=20cleanup=0A=20=20=20Sun=20Aug=20=206=2019:43:47=20EDT=202006=20=20= Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= GADT=20selector=20bugfix,=20bits=20of=20cleanup=0A=20=20=20=20=20Thu=20= Jul=2027=2008:10:[email protected]=0A]=20=0A[fix=20some=20= GADT=20record=20selector=20bugs=20(still=20some=20remaining)=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060920174820=0A=20Mon=20= Sep=2018=2016:47:22=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20fix=20some=20GADT=20record=20= selector=20bugs=20(still=20some=20remaining)=0A=20=20=20Sun=20Aug=20=206=20= 19:42:50=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20fix=20some=20GADT=20record=20= selector=20bugs=20(still=20some=20remaining)=0A=20=20=20=20=20Thu=20Jul=20= 27=2007:04:[email protected]=0A]=20=0A[clean=20up=20= Coercion=20kinding=20functions,=20rename=20coercionKindTyConApp=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060920174748=0A=20Mon=20= Sep=2018=2016:46:14=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20clean=20up=20Coercion=20kinding=20= functions,=20rename=20coercionKindTyConApp=0A=20=20=20Sun=20Aug=20=206=20= 17:37:06=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20clean=20up=20Coercion=20= kinding=20functions,=20rename=20coercionKindTyConApp=0A=20=20=20=20=20= Wed=20Jul=2026=2010:55:[email protected]=0A]=20=0A= [Better=20pretty=20printing=20for=20CoPat=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920174710=0A=20Mon=20Sep=2018=2016:45:13=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Better=20pretty=20printing=20for=20CoPat=0A=20=20=20Sun=20Aug=20= =206=2017:25:19=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Better=20pretty=20printing=20= for=20CoPat=0A=20=20=20=20=20Wed=20Jul=2026=2008:22:22=20EDT=202006=20=20= [email protected]=0A]=20=0A[Make=20data=20con=20wrappers=20for=20= GADTs=20express=20the=20user=20type=20directly=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920174638=0A=20Mon=20Sep=2018=20= 16:44:29=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Make=20data=20con=20wrappers=20for=20= GADTs=20express=20the=20user=20type=20directly=0A=20=20=20Sun=20Aug=20=20= 6=2017:24:17=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Make=20data=20con=20wrappers=20= for=20GADTs=20express=20the=20user=20type=20directly=0A=20=20=20=20=20= Wed=20Jul=2026=2008:19:[email protected]=0A]=20=0A= [Comments=20only=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920174525=0A=20Mon=20Sep=2018=2016:43:36=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Comments=20only=0A=20=20=20Sun=20Aug=20=206=2017:18:44=20EDT=20= 2006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20= =20=20*=20Comments=20only=0A=20=20=20=20=20Tue=20Jul=2025=2012:06:00=20= [email protected]=0A]=20=0A[fix=20bugs,=20add=20= boolean=20flag=20to=20identify=20coercion=20variables=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920173927=0A=20Mon=20Sep=2018=20= 16:41:32=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20fix=20bugs,=20add=20boolean=20flag=20= to=20identify=20coercion=20variables=0A=20=20=20Sun=20Aug=20=206=20= 17:04:02=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20fix=20bugs,=20add=20boolean=20= flag=20to=20identify=20coercion=20variables=0A=20=20=20=20=20Tue=20Jul=20= 25=2006:20:[email protected]=0A]=20=0A[fix=20some=20= coercion=20kind=20representation=20things,=20extend=20exprIsConApp_maybe=20= to=20non-vanilla=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920173856=0A=20Mon=20Sep=2018=2014:51:33=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20fix=20some=20coercion=20kind=20representation=20things,=20= extend=20exprIsConApp_maybe=20to=20non-vanilla=0A=20=20=20Sat=20Aug=20=20= 5=2021:48:21=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20fix=20some=20coercion=20kind=20= representation=20things,=20extend=20exprIsConApp_maybe=20to=20= non-vanilla=0A=20=20=20=20=20Wed=20Jul=2019=2008:06:28=20EDT=202006=20=20= [email protected]=0A]=20=0A[fixed=20bug=20in=20product=20unboxing=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060920173827=0A=20Mon=20= Sep=2018=2014:48:53=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20fixed=20bug=20in=20product=20= unboxing=0A=20=20=20Sat=20Aug=20=205=2021:46:18=20EDT=202006=20=20Manuel=20= M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20fixed=20= bug=20in=20product=20unboxing=0A=20=20=20=20=20Mon=20Jul=2017=2009:10:34=20= [email protected]=0A]=20=0A[finished=20product=20unboxing=20= through=20newtypes=20and=20proper=20demand=20analysis=20of=20newtypes=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920173724=0A=20= Mon=20Sep=2018=2014:48:02=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20finished=20product=20unboxing=20= through=20newtypes=20and=20proper=20demand=20analysis=20of=20newtypes=0A=20= =20=20Sat=20Aug=20=205=2021:45:32=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20finished=20= product=20unboxing=20through=20newtypes=20and=20proper=20demand=20= analysis=20of=20newtypes=0A=20=20=20=20=20Mon=20Jul=2017=2006:52:11=20= [email protected]=0A]=20=0A[Comment=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920173649=0A=20Mon=20Sep=2018=20= 14:47:19=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Comment=0A=20=20=20Sat=20Aug=20=20= 5=2021:44:13=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20Comment=0A=20=20=20=20=20Fri=20= Jul=2014=2012:49:[email protected]=0A]=20=0A= [towards=20unboxing=20through=20newtypes=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920173526=0A=20Mon=20Sep=2018=2014:44:50=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20towards=20unboxing=20through=20newtypes=0A=20=20=20Sat=20Aug=20= =205=2021:42:05=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20towards=20unboxing=20through=20= newtypes=0A=20=20=20=20=20Fri=20Jul=2014=2012:02:32=20EDT=202006=20=20= [email protected]=0A]=20=0A[fix=20out-of-scope=20vars=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920173425=0A=20Mon=20Sep=2018=20= 14:44:11=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20fix=20out-of-scope=20vars=0A=20=20=20= Sat=20Aug=20=205=2021:41:02=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20fix=20= out-of-scope=20vars=0A=20=20=20=20=20Thu=20Jul=2013=2004:27:42=20EDT=20= [email protected]=0A]=20=0A[Complete=20the=20evidence=20generation=20= for=20GADTs=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920170528=0A=20Mon=20Sep=2018=2014:43:22=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Complete=20the=20evidence=20generation=20for=20GADTs=0A=20=20=20= Sat=20Aug=20=205=2021:39:51=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20Complete=20the=20= evidence=20generation=20for=20GADTs=0A=20=20=20=20=20Thu=20Jul=2013=20= 17:18:[email protected]=0A=20=20=20=20=20=20=20=0A= =20=20=20=20=20=20=20This=20patch=20completes=20FC=20evidence=20= generation=20for=20GADTs.=0A=20=20=20=20=20=20=20=0A=20=20=20=20=20=20=20= It=20doesn't=20work=20properly=20yet,=20because=20part=20of=20the=20= compiler=20thinks=0A=20=20=20=20=20=20=20=09(t1=20:=3D:=20t2)=20=3D>=20= t3=0A=20=20=20=20=20=20=20is=20represented=20with=20FunTy/PredTy,=20= while=20the=20rest=20thinks=20it's=20represented=0A=20=20=20=20=20=20=20= using=20ForAllTy.=20=20Once=20that's=20done=20things=20should=20start=20= to=20work.=0A]=20=0A[bugs=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920165958=0A=20Mon=20Sep=2018=2014:34:44=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20bugs=0A=20=20=20Sat=20Aug=20=205=2021:36:50=20EDT=202006=20=20= Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= bugs=0A=20=20=20=20=20Thu=20Jul=2013=2004:20:58=20EDT=202006=20=20= [email protected]=0A]=20=0A[some=20bug-fixes,=20newtype=20deriving=20might=20= work=20now=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920165851=0A=20Mon=20Sep=2018=2014:33:01=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20some=20bug-fixes,=20newtype=20deriving=20might=20work=20now=0A=20= =20=20Sat=20Aug=20=205=2021:29:28=20EDT=202006=20=20Manuel=20M=20T=20= Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20some=20= bug-fixes,=20newtype=20deriving=20might=20work=20now=0A=20=20=20=20=20= Tue=20Jul=2011=2012:16:[email protected]=0A]=20=0A= [newtype=20deriving=20still=20not=20working=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920165746=0A=20Mon=20Sep=2018=20= 14:31:59=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20newtype=20deriving=20still=20not=20= working=0A=20=20=20Sat=20Aug=20=205=2021:25:43=20EDT=202006=20=20Manuel=20= M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= newtype=20deriving=20still=20not=20working=0A=20=20=20=20=20Mon=20Jul=20= 10=2010:27:[email protected]=0A]=20=0A[newtype=20= deriving=20dicts,=20compiling=20at=20least=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920165709=0A=20Mon=20Sep=2018=20= 14:31:19=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20newtype=20deriving=20dicts,=20= compiling=20at=20least=0A=20=20=20Sat=20Aug=20=205=2021:24:54=20EDT=20= 2006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20= =20=20*=20newtype=20deriving=20dicts,=20compiling=20at=20least=0A=20=20=20= =20=20Fri=20Jul=20=207=2013:07:[email protected]=0A]=20=0A= [..and=20a=20bit=20more=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920165610=0A=20Mon=20Sep=2018=2014:30:11=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20..and=20a=20bit=20more=0A=20=20=20Sat=20Aug=20=205=2021:23:16=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20=20=20*=20..and=20a=20bit=20more=0A=20=20=20=20=20Fri=20Jul=20=207=20= 10:40:[email protected]=0A]=20=0A[More=20on=20= newtype=20deriving=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920165459=0A=20Mon=20Sep=2018=2014:29:16=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20More=20on=20newtype=20deriving=0A=20=20=20Sat=20Aug=20=205=20= 21:22:29=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20More=20on=20newtype=20= deriving=0A=20=20=20=20=20Fri=20Jul=20=207=2010:37:55=20EDT=202006=20=20= [email protected]=0A]=20=0A[towards=20newtype=20deriving=20dicts=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060920165348=0A=20= Mon=20Sep=2018=2014:27:57=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20towards=20newtype=20deriving=20= dicts=0A=20=20=20Sat=20Aug=20=205=2021:21:13=20EDT=202006=20=20Manuel=20= M=20T=20Chakravarty=20<[email protected]>=0A=20=20=20=20=20*=20= towards=20newtype=20deriving=20dicts=0A=20=20=20=20=20Fri=20Jul=20=207=20= 09:26:[email protected]=0A]=20=0A[newtype=20fixes,=20= coercions=20for=20non-recursive=20newtypes=20now=20optional=0AManuel=20M=20= T=20Chakravarty=20<[email protected]>**20060920165313=0A=20Mon=20Sep=20= 18=2014:24:27=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20newtype=20fixes,=20coercions=20for=20= non-recursive=20newtypes=20now=20optional=0A=20=20=20Sat=20Aug=20=205=20= 21:19:58=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20=20=20*=20newtype=20fixes,=20coercions=20= for=20non-recursive=20newtypes=20now=20optional=0A=20=20=20=20=20Fri=20= Jul=20=207=2006:11:[email protected]=0A]=20=0A[Massive=20= patch=20for=20the=20first=20months=20work=20adding=20System=20FC=20to=20= GHC=20#34=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920164916=0A=20Fri=20Sep=2015=2018:56:58=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#34=0A=20=20=20Fri=20Aug=20=204=2018:20:57=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20=20=20*=20Massive=20patch=20for=20the=20first=20months=20work=20= adding=20System=20FC=20to=20GHC=20#34=0A=20=20=20=20=20=0A=20=20=20=20=20= Broken=20up=20massive=20patch=20-=3Dchak=0A=20=20=20=20=20Original=20log=20= message:=20=20=0A=20=20=20=20=20This=20is=20(sadly)=20all=20done=20in=20= one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20=20=20=20=20It's=20not=20= complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20compiler=0A=20= =20=20=20=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20=0A= [Remove=20mi_package=20from=20moved=20pprModIface=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920164118=0A=20Mon=20Aug=20=20= 7=2012:40:55=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Remove=20mi_package=20from=20moved=20= pprModIface=0A]=20=0A[Massive=20patch=20for=20the=20first=20months=20= work=20adding=20System=20FC=20to=20GHC=20#20=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060920163857=0A=20Fri=20Aug=20=20= 4=2017:43:25=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Massive=20patch=20for=20the=20= first=20months=20work=20adding=20System=20FC=20to=20GHC=20#20=0A=20=20=20= =0A=20=20=20Broken=20up=20massive=20patch=20-=3Dchak=0A=20=20=20Original=20= log=20message:=20=20=0A=20=20=20This=20is=20(sadly)=20all=20done=20in=20= one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20=20=20It's=20not=20= complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20compiler=0A=20= =20=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20=0A= [Adapt=20Simplify=20to=20conditional=20envs=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060919181058]=20=0A[Adapt=20= TcRnDriver=20to=20moved=20tyThingToIfaceDecl=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060919180948]=20=0A[Adapt=20= SimplUtils.getContArgs=20to=20conditional=20SubstEnv=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060919012528]=20=0A[Adapt=20new=20= SpecConstr=20functionality=20to=20GADT=20datacons=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060919011243]=20=0A[Type=20tags=20= in=20import/export=20lists=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060918235147=0A=20Tue=20Sep=2012=2016:57:32=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Type=20tags=20in=20import/export=20lists=0A=20=20=20-=20To=20= write=20something=20like=20GMapKey(type=20GMap,=20empty,=20lookup,=20= insert)=0A=20=20=20-=20Requires=20-findexed-types=0A]=20=0A[comment=20= for=20getLocalDeclBinders=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060918234717=0A=20Sat=20Sep=20=209=2020:46:25=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20comment=20for=20getLocalDeclBinders=0A]=20=0A[Check=20for=20= repeated=20tyvars=20in=20AT=20family=20decls=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060918231542=0A=20Sat=20Aug=2026=20= 19:49:55=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Check=20for=20repeated=20tyvars=20= in=20AT=20family=20decls=0A]=20=0A[Improve=20pretty=20printing=20for=20= indexed=20type=20decls=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060918230046=0A=20Wed=20Aug=2016=2017:01:59=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Improve=20pretty=20printing=20for=20indexed=20type=20decls=0A]=20= =0A[Use=20family=20and=20instance=20keyword=20to=20identify=20indexed=20= types=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060918225551=0A=20Tue=20Aug=2015=2020:16:00=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Use=20family=20and=20instance=20keyword=20to=20identify=20= indexed=20types=0A]=20=0A[Remove=20checkTopTypeD=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060918225332=0A=20Tue=20Aug=2015=20= 17:02:53=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Remove=20checkTopTypeD=0A]=20=0A= [Remove=20argument=20variance=20info=20of=20tycons=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060918215052=0A=20Fri=20Aug=2011=20= 13:53:24=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Remove=20argument=20variance=20= info=20of=20tycons=0A=20=20=20-=20Following=20SPJ's=20suggestion,=20this=20= patch=20removes=20the=20variance=20information=20from=0A=20=20=20=20=20= type=20constructors.=20=20This=20information=20was=20computed,=20but=20= never=20used.=0A=20=20=20=0A=20=20=20**=20WARNING:=20This=20patch=20= changes=20the=20format=20of=20interface=20files=20**=0A=20=20=20**=20=20=20= =20=20=20=20=20=20=20You=20will=20need=20to=20rebuild=20from=20scratch.=20= =20=20=20=20=20=20=20=20=20=20**=0A]=20=0A[Don't=20lift=20ATs=20out=20of=20= classes=20and=20instances=20before=20tc=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060918214652=0A=20Wed=20Aug=20=209=2015:31:08=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Don't=20lift=20ATs=20out=20of=20classes=20and=20instances=20= before=20tc=0A]=20=0A[Indexed=20type=20defs=20are=20not=20declaring=20= type=20names=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060918214032=0A=20Tue=20Aug=20=208=2019:27:31=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Indexed=20type=20defs=20are=20not=20declaring=20type=20names=0A= ]=20=0A[Deriving=20Eq=20for=20OverlapFlag=20again=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060918212611=0A=20Mon=20Aug=20=20= 7=2011:15:21=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Deriving=20Eq=20for=20OverlapFlag=20= again=0A]=20=0A[fix=20out-of-scope=20variable=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060918210458=0A=20Sun=20Aug=20=20= 6=2020:09:58=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20fix=20out-of-scope=20variable=0A=20= =20=20Fri=20Jul=2028=2013:40:[email protected]=0A]=20=0A= [GADT=20pattern=20matching=20fix=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060918204038=0A=20Sun=20Aug=20=206=2017:01:59=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20GADT=20pattern=20matching=20fix=0A=20=20=20Wed=20Jul=2019=20= 10:53:[email protected]=0A]=20=0A[Simplify=20mkDataCon=20= slightly=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060918184621=0A=20Sat=20Aug=20=205=2021:42:48=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Simplify=20mkDataCon=20slightly=0A=20=20=20Fri=20Jul=2014=20= 12:48:[email protected]=0A]=20=0A[Partial=20= changes=20for=20derived=20newtype=20instances=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060918181621=0A=20Sat=20Aug=20=20= 5=2021:16:57=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Partial=20changes=20for=20derived=20= newtype=20instances=0A=20=20=20Fri=20Jul=20=207=2005:45:15=20EDT=202006=20= [email protected]=0A]=20=0A[Massive=20patch=20for=20the=20first=20= months=20work=20adding=20System=20FC=20to=20GHC=20#3=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060918181317=0A=20Fri=20Aug=20=20= 4=2015:21:36=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Massive=20patch=20for=20the=20= first=20months=20work=20adding=20System=20FC=20to=20GHC=20#3=0A=20=20=20=0A= =20=20=20Broken=20up=20massive=20patch=20-=3Dchak=0A=20=20=20Original=20= log=20message:=20=20=0A=20=20=20This=20is=20(sadly)=20all=20done=20in=20= one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20=20=20It's=20not=20= complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20compiler=0A=20= =20=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20=0A= [Massive=20patch=20for=20the=20first=20months=20work=20adding=20System=20= FC=20to=20GHC=20#1=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060918181054=0A=20Fri=20Aug=20=204=2015:11:01=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#1=0A=20=20=20Broken=20up=20massive=20patch=20= -=3Dchak=0A=20=20=20Original=20log=20message:=20=20=0A=20=20=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= =20=20It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20= =20A=20compiler=0A=20=20=20using=20just=20this=20patch=20will=20fail=20= dismally.=0A]=20=0A[Massive=20patch=20for=20the=20first=20months=20work=20= adding=20System=20FC=20to=20GHC=20#31=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060915213331=0A=20Fri=20Aug=20=204=2018:13:56=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#31=0A=20=20=20=0A=20=20=20Broken=20up=20= massive=20patch=20-=3Dchak=0A=20=20=20Original=20log=20message:=20=20=0A=20= =20=20This=20is=20(sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20= Darcs=20bugs.=0A=20=20=20It's=20not=20complete=20work...=20more=20FC=20= stuff=20to=20come.=20=20A=20compiler=0A=20=20=20using=20just=20this=20= patch=20will=20fail=20dismally.=0A]=20=0A[Massive=20patch=20for=20the=20= first=20months=20work=20adding=20System=20FC=20to=20GHC=20#30=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060915212458=0A=20Fri=20= Aug=20=204=2018:13:20=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Massive=20patch=20for=20the=20= first=20months=20work=20adding=20System=20FC=20to=20GHC=20#30=0A=20=20=20= =0A=20=20=20Broken=20up=20massive=20patch=20-=3Dchak=0A=20=20=20Original=20= log=20message:=20=20=0A=20=20=20This=20is=20(sadly)=20all=20done=20in=20= one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20=20=20It's=20not=20= complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20compiler=0A=20= =20=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20=0A= [Massive=20patch=20for=20the=20first=20months=20work=20adding=20System=20= FC=20to=20GHC=20#14=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060915211918=0A=20Fri=20Aug=20=204=2015:59:09=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#14=0A=20=20=20=0A=20=20=20Broken=20up=20= massive=20patch=20-=3Dchak=0A=20=20=20Original=20log=20message:=20=20=0A=20= =20=20This=20is=20(sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20= Darcs=20bugs.=0A=20=20=20It's=20not=20complete=20work...=20more=20FC=20= stuff=20to=20come.=20=20A=20compiler=0A=20=20=20using=20just=20this=20= patch=20will=20fail=20dismally.=0A]=20=0A[Added=20error=20checks=20&=20= fixed=20bugs=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060915210428=0A=20Thu=20Aug=20=203=2019:29:38=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Added=20error=20checks=20&=20fixed=20bugs=0A]=20=0A[Fix=20= class=20construction=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060915210206=0A=20Wed=20Aug=20=202=2013:34:58=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Fix=20class=20construction=0A]=20=0A[Renaming=20of=20indexed=20= types=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060915210106=0A=20Tue=20Aug=20=201=2023:51:38=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Renaming=20of=20indexed=20types=0A]=20=0A[Renaming=20of=20kind=20= signatures=20(rnTySig)=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060915210010=0A=20Tue=20Aug=20=201=2016:39:51=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Renaming=20of=20kind=20signatures=20(rnTySig)=0A]=20=0A= [Revised=20kind=20signatures=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060915205439=0A=20Tue=20Aug=20=201=2014:10:39=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Revised=20kind=20signatures=0A]=20=0A[Cleanup=20(re=20type=20= function=20parsing)=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060915205154=0A=20Mon=20Jul=2031=2017:20:56=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Cleanup=20(re=20type=20function=20parsing)=0A]=20=0A[Parser=20= support=20for=20assoc=20synonyms=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060915204930=0A=20Fri=20Jul=2028=2021:52:46=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Parser=20support=20for=20assoc=20synonyms=0A]=20=0A[Fix=20= migrated=20AT=20support=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060915204537=0A=20Wed=20Jul=2026=2018:16:25=20= EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20<[email protected]>=0A=20= =20=20*=20Fix=20migrated=20AT=20support=0A=20=20=20-=20Make=20it=20= compile=0A=20=20=20-=20Successfully=20parses=20and=20renames=20simple=20= AT=20declarations=0A=20=20=20-=20Should=20not=20affect=20non-AT=20= programs=0A]=20=0A[Migrate=20cvs=20diff=20from=20fptools-assoc=20branch=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060915204338=0A=20= Wed=20Jul=2026=2017:46:55=20EDT=202006=20=20Manuel=20M=20T=20Chakravarty=20= <[email protected]>=0A=20=20=20*=20Migrate=20cvs=20diff=20from=20= fptools-assoc=20branch=0A=20=20=20-=20Syntactic=20support=20for=20= associated=20types=0A=20=20=20-=20Renamer=20support=20for=20associated=20= types=0A=20=20=20-=20ATs=20are=20only=20allowed=20with=20-fglasgow-exts=0A= =20=20=20-=20Handle=20ATs=20in=20the=20type=20and=20class=20declaration=20= kinding=20knot-tying=20exercise=0A]=20=0A[Comment=20on=20the=20commoning=20= [email protected]**20060906114223]=20= =0A[Add=20comment=20for=20the=20invariant=20that=20DataAlt=20is=20never=20= [email protected]**20060906114155]=20=0A[Comments=20= [email protected]**20060904135513]=20=0A[Change=20ASSERT=20to=20= [email protected]**20060809084620]=20=0A[OccName->FS=20in=20= tyThingToIfaceDecl=20that=20moved=20to=20MkIface=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060807173839]=20=0A[Fix=20= pattern=20w/o=20location=20in=20Check=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060807170953]=20=0A[OccName->FS=20change=20= over=20for=20equalities=20in=20GADTs=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060807151634]=20=0A[Comments=20only=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060807004613=0A=20Wed=20= Aug=20=202=2005:00:[email protected]=0A]=20=0A[Correct=20= grevious=20bug=20in=20mkSymCoercion=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060807003140=0A=20Tue=20Aug=20=201=2008:53:05=20= [email protected]=0A]=20=0A[GADT=20tweaks=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060807002345=0A=20Mon=20= Jul=2031=2012:42:[email protected]=0A]=20=0A[Configure=20= changes=20to=20make=20testsuite=20work=20better=20on=20MSys=0AManuel=20M=20= T=20Chakravarty=20<[email protected]>**20060807000518=0A=20Fri=20Jul=20= 28=2006:49:[email protected]=0A]=20=0A[Remove=20= Control-M=20from=20Coercion.hs=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060806235925=0A=20Thu=20Jul=2027=2004:07:46=20= [email protected]=0A]=20=0A[Add=20Coercion.lhs=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060806214025=0A=20= -=20Extra=20patch=20as=20diff=20doesn't=20capture=20add=20files=0A]=20=0A= [Adding=20TcGadt.lhs=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060806213523=0A=20-=20Seperate=20patch=20as=20= diff=20doesn't=20capture=20file=20adds=0A=20-=20Includes=20the=20patch:=0A= =20=20=20Wed=20Jul=2026=2008:23:35=20EDT=202006=20=20= [email protected]=0A=20=20=20Add=20a=20missing=20mkSymCoercion=20in=20= TcGadt.uVar=0A]=20=0A[Add=20a=20missing=20prime,=20to=20fix=20desugaring=20= of=20CoPats=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060806212711=0A=20Wed=20Jul=2026=2008:23:11=20= [email protected]=0A]=20=0A[Comments=20and=20tidy-up=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060806212628=0A=20= Wed=20Jul=2026=2008:22:[email protected]=0A]=20=0A= [Fix=20a=20lint=20bug=20with=20coercions=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060806212111=0A=20Wed=20Jul=2026=2008:18:25=20= [email protected]=0A]=20=0A[GADT=20fixes=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060806212026=0A=20Wed=20= Jul=2026=2006:00:[email protected]=0A]=20=0A[Add=20= CoPat=20stuff=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060806210058=0A=20Wed=20Jul=2019=2009:55:27=20= [email protected]=0A]=20=0A[Resolve=20conflict=20in=20= MkExternalCore=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060806011028=0A=20Thu=20Jul=20=206=2009:55:27=20= [email protected]=0A]=20=0A[Massive=20patch=20for=20= the=20first=20months=20work=20adding=20System=20FC=20to=20GHC=20#36=0A= Manuel=20M=20T=20Chakravarty=20<[email protected]>**20060804222436=0A=20= =0A=20Broken=20up=20massive=20patch=20-=3Dchak=0A=20Original=20log=20= message:=20=20=0A=20This=20is=20(sadly)=20all=20done=20in=20one=20patch=20= to=20avoid=20Darcs=20bugs.=0A=20It's=20not=20complete=20work...=20more=20= FC=20stuff=20to=20come.=20=20A=20compiler=0A=20using=20just=20this=20= patch=20will=20fail=20dismally.=0A]=20=0A[Massive=20patch=20for=20the=20= first=20months=20work=20adding=20System=20FC=20to=20GHC=20#35=0AManuel=20= M=20T=20Chakravarty=20<[email protected]>**20060804222351=0A=20=0A=20= Broken=20up=20massive=20patch=20-=3Dchak=0A=20Original=20log=20message:=20= =20=0A=20This=20is=20(sadly)=20all=20done=20in=20one=20patch=20to=20= avoid=20Darcs=20bugs.=0A=20It's=20not=20complete=20work...=20more=20FC=20= stuff=20to=20come.=20=20A=20compiler=0A=20using=20just=20this=20patch=20= will=20fail=20dismally.=0A]=20=0A[Massive=20patch=20for=20the=20first=20= months=20work=20adding=20System=20FC=20to=20GHC=20#33=0AManuel=20M=20T=20= Chakravarty=20<[email protected]>**20060804221455=0A=20=0A=20Broken=20= up=20massive=20patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20= This=20is=20(sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20= bugs.=0A=20It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20= come.=20=20A=20compiler=0A=20using=20just=20this=20patch=20will=20fail=20= dismally.=0A]=20=0A[Massive=20patch=20for=20the=20first=20months=20work=20= adding=20System=20FC=20to=20GHC=20#32=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804221423=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#29=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804221221=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#28=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804221148=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#27=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804221001=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#26=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804220614=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#25=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804220526=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#24=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804220423=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#23=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804215846=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#22=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804215642=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#21=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804215414=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#19=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804213946=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#18=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804213610=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#17=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804212140=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#16=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804211912=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#15=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804200105=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#13=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804195734=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#12=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804195607=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#11=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804195406=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#10=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804195145=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#9=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804194908=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#8=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804193905=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#7=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804193719=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#6=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804193530=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#5=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804192400=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#4=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804192302=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[Massive=20patch=20for=20the=20first=20months=20work=20adding=20= System=20FC=20to=20GHC=20#2=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060804191937=0A=20=0A=20Broken=20up=20massive=20= patch=20-=3Dchak=0A=20Original=20log=20message:=20=20=0A=20This=20is=20= (sadly)=20all=20done=20in=20one=20patch=20to=20avoid=20Darcs=20bugs.=0A=20= It's=20not=20complete=20work...=20more=20FC=20stuff=20to=20come.=20=20A=20= compiler=0A=20using=20just=20this=20patch=20will=20fail=20dismally.=0A]=20= =0A[[email protected]**20060804082403]=20=0A[Add=20= new=20field=20to=20TySynonym=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060802171052]=20=0A[Make=20'iso'=20special=20= in=20the=20parser=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060802140630]=20=0A[Add=20missing=20Cast=20= [email protected]**20060801105031]=20=0A= [Make=20mkApps=20etc=20infix,=20and=20left-associative=0A= [email protected]**20060726121807]=20=0A[A=20somewhat=20subtle=20= (FC-related)=20bug=20concerning=20the=20monomorphism=20restriction=0A= [email protected]**20060726094655]=20=0A[Add=20some=20type=20= [email protected]**20060714165011]=20=0A[A=20class=20in=20= an=20interface=20file=20defines=20the=20CoTyCon=20of=20its=20class=20= [email protected]**20060713213418]=20=0A[Tiny=20comment=20= change=20(darcs=20test=20only)[email protected]**20060706165102]=20= =0A[TAG=20Before=20FC=20branch=20merge=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920210412]=20=0A[TAG=20Before=20FC=20branch=20= merge=0AManuel=20M=20T=20Chakravarty=20= <[email protected]>**20060920210355]=20=0A[Currently=20we=20don't=20= [email protected]**20060919081759]=20=0A= [Packages=20cleanup,=20and=20allow=20new=20packages=20to=20be=20loaded=20= with=20:set=20again=0ASimon=20Marlow=20= <[email protected]>**20060919012448=0A=20=0A=20This=20cleans=20up=20= the=20package=20subsystem=20a=20little.=20=20There=20are=20some=0A=20= changes=20to=20the=20GHC=20API=20as=20a=20result.=0A=20=0A=20=20=20-=20= GHC.init=20and=20GHC.initFromArgs=20are=20no=20longer=20necessary.=0A=20=0A= =20=20=20-=20GHC.newSession=20takes=20the=20root=20of=20the=20GHC=20tree=20= as=20an=20argument=0A=20=20=20=20=20(previously=20passed=20to=20= GHC.init).=0A=20=0A=20=20=20-=20You=20*must*=20do=20= GHC.setSessionDynFlags=20after=20GHC.newSession,=0A=20=20=20=20=20this=20= is=20what=20loads=20the=20package=20database.=0A=20=0A=20=20=20-=20= Several=20global=20vars=20removed=20from=20SysTools=0A=20=0A=20=20=20-=20= The=20:set=20command=20in=20GHCi=20can=20now=20cause=20new=20packages=20= to=20be=20loaded,=0A=20=20=20=20=20or=20can=20hide/ignore=20existing=20= packages.=0A]=20=0A[one=20more=20boring=20file=0ASimon=20Marlow=20= <[email protected]>**20060919011849]=20=0A[fix=20one=20boring=20= file=0ASimon=20Marlow=20<[email protected]>**20060919011823]=20=0A= [unused=20imports=0ASimon=20Marlow=20= <[email protected]>**20060919011746]=20=0A[add=20boring=20files=20= from=20a=20build=20tree=0ASimon=20Marlow=20= <[email protected]>**20060919011722]=20=0A[remove=20old=20comment=0A= Simon=20Marlow=20<[email protected]>**20060919010333]=20=0A[unused=20= import=0ASimon=20Marlow=20<[email protected]>**20060919010303]=20=0A= [some=20updates=0ASimon=20Marlow=20= <[email protected]>**20060918232924]=20=0A[use=20ghc-pkg=20= --force-files,=20and=20update=20command-line=20syntax=0ASimon=20Marlow=20= <[email protected]>**20060918232903]=20=0A[add=20--force-files,=20= like=20--force=20but=20doesn't=20allow=20missing=20dependencies=0ASimon=20= Marlow=20<[email protected]>**20060918232834]=20=0A[emit=20an=20= error=20if=20the=20user=20ran=20autoconf=20instead=20of=20autoreconf=0A= Simon=20Marlow=20<[email protected]>**20060916084205]=20=0A[Sanity=20= check=20that=20all=20the=20core=20packages=20are=20present=0ASimon=20= Marlow=20<[email protected]>**20060916070529=0A=20To=20catch=20the=20= case=20of=20not=20running=20darcs-all=20get.=0A]=20=0A[reformat=20import=0A= Simon=20Marlow=20<[email protected]>**20060913103512]=20=0A[minor=20= reformatting=0ASimon=20Marlow=20= <[email protected]>**20060913103427]=20=0A[compiler/=20isn't=20= boring=0ASimon=20Marlow=20<[email protected]>**20060913021300]=20=0A= [Added=20parsing=20rule=20for=20BangPattern=20in=20case=20expr=0AMarkus=20= Lauer=20<[email protected]>**20060918161850]=20=0A[Fix=20a=20bug=20in=20= subsumption,=20and=20tweak=20error=20messages=0A= [email protected]**20060918005223=0A=20=0A=20This=20commit=20does=20= two=20largely-unrelated=20things,=20but=20they=20hit=20the=20same=20= code.=0A=20=0A=20First,=20I=20tweaked=20the=20error=20messages=20a=20= bit,=20to=20give=20better=20errors=0A=20for=20impredicative=20= polymorphism.=20=20This=20added=20the=20mb_fun=20argument=20to=0A=20= tc_sub.=0A=20=0A=20Second,=20I=20fixed=20a=20long-standing=20bug=20in=20= tc_sub.=20=20In=20the=20isBoxyTyVar=20case=20=0A=20of=20tc_sub=20(rule=20= F2)=20I=20was=20not=20recursing=20to=20tc_sub=20as=20the=20rule=20= suggests,=0A=20but=20rather=20calling=20u_tys.=20=20This=20is=20plain=20= wrong,=20because=20the=20first=0A=20arugment=20might=20have=20more=20= foralls.=20=20=20=0A=20=0A=20The=20solution=20is=20to=20recurse=20to=20= tc_sub,=20but=20that=20in=20turn=20requires=20a=20parameter,=0A=20= exp_ib,=20which=20says=20when=20we=20are=20inside=20a=20box.=0A=20=0A=20= Test=20is=20tc210.=0A=20=0A]=20=0A[Comments=0A= [email protected]**20060918005142]=20=0A[Ensure=20that=20only=20= zonked=20poly_ids=20are=20passed=20to=20tcSpecPrag=0A= [email protected]**20060918004805=0A=20=0A=20This=20is=20a=20= long-standing=20bug=20really=20(Trac=20#900).=20=20The=20poly_id=20= passed=0A=20to=20tcSpecPrag=20should=20be=20zonked,=20else=20it=20calls=20= tcSubExp=20with=20a=20non-zonked=0A=20type;=20but=20that=20contradicts=20= the=20latter's=20invariant.=0A=20=0A=20I=20ended=20up=20doing=20a=20bit=20= of=20refactoring=20too.=20=20The=20extra=20lines=20are=20=0A=20comments=20= I=20think;=20the=20code=20line=20count=20is=20reduced.=0A=20=0A=20Test=20= is=20tc212.hs=0A=20=0A]=20=0A[Comments=20only=0A= [email protected]**20060918004109]=20=0A[Add=20a=20missing=20renamer=20= dump=20(related=20to=20Template=20Haskell)=0A= [email protected]**20060917171707]=20=0A[Instantiate=20data=20= constructor=20type=20variables=20with=20the=20type=20constructor=20type=20= variables=20in=20constraints=20for=20derived=20class=20instances.=20= Fixes=20instance=20deriving=20for=20GADTs=20which=20declar=20H98=20= types,=20closing=20ticket=20#902.=0A= [email protected]**20060915233315]=20=0A[Fixed=20error=20in=20= user's=20manual,=20gadt=20section,=20part=20about=20deriving.=20Data=20= constructor=20type=20was=20Maybe,=20should=20be=20Maybe1.=0A= [email protected]**20060915230517]=20=0A[Replace=20"&"=20with=20= "and"=20as=20this=20also=20gets=20pulled=20into=20the=20docbook=20docs=0A= Ian=20Lynagh=20<[email protected]>**20060912125617]=20=0A[move=20the=20= "meat"=20into=20the=20wiki,=20this=20file=20just=20contains=20pointers=20= now=0ASimon=20Marlow=20<[email protected]>**20060911135037]=20=0A= [Another=20s/autrijus/audreyt/=20in=20comments.=0A= [email protected]**20060912121323]=20=0A[Take=20away=20XXXs=20in=20= GADT=20records=20related=20code=20that=20are=20no=20longer=20TODOs.=0A= [email protected]**20060912120942]=20=0A[Fix=20~2000=20second=20= profiling=20time=20wrapping=20bug=0AIan=20Lynagh=20= <[email protected]>**20060911223210]=20=0A[Add=20postfix=20ops=20to=20the=20= [email protected]**20060912081104]=20=0A[Document=20= [email protected]**20060911162843]=20=0A= [Simplify=20desugaring=20of=20left=20sections=0A= [email protected]**20060911083510=0A=20=0A=20=09MERGE=20TO=206.6=20= branch!=0A=20=0A=20Some=20while=20ago=20I=20made=20the=20type=20checker=20= a=20tiny=20bit=20more=20lenient=20about=0A=20left=20sections,=20so=20= that=20=0A=20=09(x=20!)=0A=20would=20typecheck=20iff=0A=20=09((!)=20x)=20= =0A=20typechecks.=20=20=0A=20=0A=20Strictly,=20Haskell=2098=20requires=20= that=20the=20section=20typechecks=20iff=0A=20=09(\y.=20(!)=20x=20y)=0A=20= typechecks,=20and=20I=20should=20really=20have=20made=20the=20relaxation=20= dependent=20on=20a=20=0A=20flag,=20but=20I=20didn't.=0A=20=0A=20Anyway,=20= this=20commit=20fixes=20the=20*desugarer*=20so=20that=20it=20correctly=20= desugars=0A=20the=20programs=20that=20the=20typechecker=20passes.=0A=20=0A= =20=0A]=20=0A[[email protected]**20060911083440]=20=0A= [Fix=20warnings=20traceBegin/traceEnd=20implicitly=20declared=0AIan=20= Lynagh=20<[email protected]>**20060910200611]=20=0A[Fix=20linking=20to=20= expf=20on=20Windows=0AIan=20Lynagh=20<[email protected]>**20060910141506]=20= =0A[adapt=20stylesheet=20to=20example-contents=20class=20used=20by=20= xsltproc=0ARoss=20Paterson=20<[email protected]>**20060910143941]=20=0A= [8=20byte=20align=20data.=20Fixes=20SIBGUSs=20on=20HPPA/Linux.=0AIan=20= Lynagh=20<[email protected]>**20060909102445]=20=0A[We=20now=20need=20alex=20= >=3D=202.0.1=0AIan=20Lynagh=20<[email protected]>**20060908191706]=20=0A= [remove=20generated=20files=20in=20a=20'finally'=20manner=0A= [email protected]**20060909144432]=20=0A[Catch=20errors=20in=20pattern=20= matching=20for=20unboxed=20tuples=0A= [email protected]**20060908095217=0A=20=0A=20When=20fiddling=20with=20= pattern-matching=20for=20unboxed=20tuples,=20I'd=20messed=20up=0A=20the=20= slightly-tricky=20tests=20for=20pattern=20matching=20on=20unboxed=20= tuples,=20notably=0A=20=09case=20(#=20foo,=20bar=20#)=20of=20r=20->=20= ...r...=0A=20=0A=20The=20fix=20is=20in=20TcPat,=20and=20test=20are=20= tcfail115,=20tcfail120,=20and=20tc209=0A=20=0A]=20=0A[Typo,=20spotted=20= by=20Bulat=20Ziganshin=0AIan=20Lynagh=20= <[email protected]>**20060908014947]=20=0A[Release=20note=20tweaks=20= suggested=20by=20Bulat=20Ziganshin=0AIan=20Lynagh=20= <[email protected]>**20060908014050]=20=0A[Doc=20fix:=20generic=20classes=20= are=20no=20longer=20broken=0AIan=20Lynagh=20= <[email protected]>**20060907205426=0A=20Spotted=20by=20Bulat=20Ziganshin.=0A= ]=20=0A[Fixed=20typo=20in=20users=20guide=20section=20about=20lexically=20= [email protected]**20060907214626]=20=0A= [If=20we=20get=20an=20unknown=20or=20unimplemented=20opcode,=20say=20= what=20it=20is=0AIan=20Lynagh=20<[email protected]>**20060907171038]=20=0A= [remove=20__HUGS__=20#if's=20(Hugs=20uses=20the=20standalone=20version)=0A= Ross=20Paterson=20<[email protected]>**20060907152930]=20=0A[Remove=20= the=20-optP-P=20from=20.raw-hs=20generation=0ASimon=20Marlow=20= <[email protected]>**20060907151855=0A=20We=20need=20the=20#line=20= directives=20left=20in,=20so=20that=20Haddock=20can=20figure=20out=0A=20= what=20the=20name=20of=20the=20original=20source=20file=20was=20called,=20= which=20is=0A=20necessary=20for=20generating=20source=20links.=20=20You=20= probably=20now=20need=20an=0A=20updated=20Haddock=20to=20generate=20HTML=20= from=20the=20libraries,=20but=20a=20release=0A=20will=20be=20forthcoming=20= shortly.=0A=20=0A]=20=0A[Fix=20the=20handling=20of=20names=20in=20= [email protected]**20060907141845=0A=20=0A=20= The=20handling=20of=20top-level=20names=20in=20declaration=20brackets=20= is=20a=20bit=20tricky.=0A=20This=20commit=20fixes=20Trac=20#977;=20=20= test=20is=20TH_spliceD2.=0A=20=0A=20The=20changes=20are=20commented=20in=20= RnExpr.rnBracket=20and=20RdrName.hideSomeUnquals=0A=20=0A=20=0A]=20=0A= [urk,=20the=20dependencies=20added=20in=20the=20last=20commit=20don't=20= really=20work=20properly=0ASimon=20Marlow=20= <[email protected]>**20060907113702=0A=20first,=20I=20got=20the=20= dependencies=20wrong=20(should=20be=20the=20.o=20file,=20not=20the=0A=20= .hs),=20and=20secondly=20GHC's=20recompilation=20checker=20refuses=20to=20= recompile=0A=20these=20files=20anyway.=20=20I=20haven't=20done=20= anything=20about=20the=20second=20problem=0A=20yet,=20except=20to=20= comment=20it.=0A=20=0A]=20=0A[Remove=20trailing=20CRs=20with=20sed=20= rather=20than=20relying=20on=20diff=20in=20nofib=0AIan=20Lynagh=20= <[email protected]>**20060907112027=0A=20Some=20diffs=20don't=20understand=20= --strip-trailing-cr.=0A]=20=0A[Documentation=20for=20impredicative=20= [email protected]**20060907111540]=20=0A[Comments=20= [email protected]**20060907105705]=20=0A[Remove=20result=20= type=20signatures=20from=20documentation=0A= [email protected]**20060907104301]=20=0A[Fix=20bug=20in=20error=20= [email protected]**20060907103052]=20=0A[Result=20type=20= signatures=20are=20no=20longer=20supported=20(partial)=0A= [email protected]**20060907102718=0A=20=0A=20I=20had=20failed=20to=20= remove=20the=20bit=20where=20result=20type=20signatures=20bind=0A=20= lexical=20type=20variables.=20=20And=20now=20we=20are=20planning=20to=20= remove=20them=20entirely.=0A=20=0A=20This=20commit=20therefore=20does=20= a=20partial=20removal=20(to=20avoid=20destablising=206.6).=0A=20It=20= also=20arranges=20that=0A=20=09f=20::=20sig=20=3D=20rhs=0A=20means=20a=20= *pattern*=20binding=20(not=20a=20function=20binding=20with=20no=20= arguments=20=0A=20and=20a=20result=20signature),=20which=20makes=20= sense.=0A=20=0A]=20=0A[Add=20dependencies=20on=20.h=20files=20#included=20= into=20Haskell=20source=0ASimon=20Marlow=20= <[email protected]>**20060907094751=0A=20Our=20.depend=20machinery=20= doesn't=20automatically=20generate=20these,=20so=20we=20have=0A=20to=20= add=20them=20manually.=20=20(this=20fixes=20one=20instance=20of=20= missing=0A=20dependencies=20in=20the=20GHC=20build=20tree,=20there=20are=20= lots=20more...).=0A]=20=0A[Remove=20CONSTR_CHARLIKE=20and=20= CONSTR_INTLIKE=20closure=20types=0ASimon=20Marlow=20= <[email protected]>**20060907093005=0A=20These=20closure=20types=20= aren't=20used/needed,=20as=20far=20as=20I=20can=20tell.=20=20The=0A=20= commoning=20up=20of=20Chars/Ints=20happens=20by=20comparing=20info=20= pointers,=20and=0A=20the=20info=20table=20for=20a=20dynamic=20C#/I#=20is=20= CONSTR_0_1.=20=20The=20RTS=20seemed=0A=20a=20little=20confused=20about=20= whether=20CONSTR_CHARLIKE/CONSTR_INTLIKE=20were=0A=20supposed=20to=20be=20= static=20or=20dynamic=20closures,=20too.=0A]=20=0A[document=20-V=20in=20= the=20+RTS=20--help=20outpout=0ASimon=20Marlow=20= <[email protected]>**20060907084445]=20=0A[Pattern-match=20warning=20= [email protected]**20060906220417]=20=0A[Improve=20error=20= reporting=20for=20SigTvs,=20and=20add=20comments=0A= [email protected]**20060906220309]=20=0A[Check=20that=20top-level=20= binders=20are=20unqualified=20names=0A= [email protected]**20060906220101=0A=20=0A=20Not=20having=20this=20= check=20led=20to=20strange=20error=20messages.=0A=20See=20test=20= rnfail046.=0A=20=0A]=20=0A[Don't=20fail=20on=20missing=20happy/alex=20if=20= we=20don't=20need=20them=0AIan=20Lynagh=20= <[email protected]>**20060906195415]=20=0A[Make=20record=20selection=20look=20= [email protected]**20060906115242=0A=20=0A=20exprIsCheap=20= was=20already=20making=20record=20selection=20look=20cheap,=20esp=20for=0A= =20dictionary=20selection;=20e.g.=0A=20=20=20=20(=3D=3D)=20dEq=0A=20=0A=20= The=20idea=20is=20to=20allow=20those=20record=20selections=20to=20= migrate=20inside=20a=0A=20lambda,=20because=20on=20the=20whole=20it's=20= more=20expensive=20to=20share=20than=20=0A=20repeat=20them.=0A=20=0A=20= But=20sometimes=20dictionary=20selection=20is=20nested;=20e.g.=0A=20=20=20= =20(=3D=3D)=20($p1Num=20dNum)=0A=20=0A=20This=20turned=20out=20to=20make=20= a=20(fragile)=20rewrite=20rule=20fire=20a=20little=0A=20more=20robustly,=20= but=20it=20seems=20like=20a=20good=20idea=20in=20any=20case.=0A=20=0A=20= This=20patch=20makes=20nested=20record=20selections=20also=20look=20= cheap.=0A=20=0A]=20=0A[Documentation=20for=20lexically-scoped=20type=20= [email protected]**20060906164103=0A=20=0A=20GHC's=20= design=20for=20lexically=20scoped=20type=20variables=20has=20changed.=0A=20= Here,=20belatedly,=20is=20the=20documentation.=0A=20=0A]=20=0A[Fix=20the=20= Windows=20"VirtualAlloc=20MEM_COMMIT=20failed"=20bug=0AIan=20Lynagh=20= <[email protected]>**20060906112750=0A=20We=20had=0A=20=20=20=20=20= base=3D01100000=20size=3D1048576=20size_delta=3D0=20it->size=3D2097152=20= =0A=20=20=20=20=20it->base=3D00F00000=20base-it->base=3D00200000=0A=20in=20= commitBlocks.=0A=20Esa=20Ilari=20Vuokko=20identified=20this=20inequality=20= test=20as=20the=20cause.=0A]=20=0A[Now=20in=20the=20wiki=0ASimon=20= Marlow=20<[email protected]>**20060906104022]=20=0A[-threaded=20and=20= -prof=20do=20not=20currently=20work=20together=0ASimon=20Marlow=20= <[email protected]>**20060906093158]=20=0A[Correct=20the=20Cabal=20= version=20number=20and=20remove=20features.=0ADuncan=20Coutts=20= <[email protected]>**20060905232047=0A=20We're=20not=20going=20= to=20include=20cabal-setup=20and=20cabal-install=20in=20this=20release.=0A= ]=20=0A[Strip=20trailing=20CRs=20when=20comparing=20output=20for=20= nofib.=20Fixes=20#797.=0AIan=20Lynagh=20= <[email protected]>**20060905184910]=20=0A[new=20RTS=20flag:=20-V=20to=20= modify=20the=20resolution=20of=20the=20RTS=20timer=0AIan=20Lynagh=20= <[email protected]>**20060905141545=0A=20Fixed=20version=20of=20an=20old=20= patch=20by=20Simon=20Marlow.=20His=20description=20read:=0A=20=20Also,=20= now=20an=20arbitrarily=20short=20context=20switch=20interval=20may=20now=20= be=0A=20=20specified,=20as=20we=20increase=20the=20RTS=20ticker's=20= resolution=20to=20match=20the=0A=20=20requested=20context=20switch=20= interval.=20=20This=20also=20applies=20to=20+RTS=20-i=20(heap=0A=20=20= profiling)=20and=20+RTS=20-I=20(the=20idle=20GC=20timer).=20=20+RTS=20-V=20= is=20actually=20only=0A=20=20required=20for=20increasing=20the=20= resolution=20of=20the=20profile=20timer.=0A]=20=0A[Fix=20dependency=20= analysis=20(notably=20bindInstsOfLocalFuns)=20in=20TcBinds=0A= [email protected]**20060905105143=0A=20=0A=20GHC=206.5=20does=20= enhanced=20dependency=20analysis=20for=20recursive=20bindings,=20to=20=0A= =20maximise=20polymorphism=20based=20on=20type=20signatures.=20=20(See=20= Mark=20Jones's=0A=20THIH=20paper.)=20=20=0A=20=0A=20I=20didn't=20do=20= the=20bindInstsOfLocalFuns=20part=20correctly=20though,=20and=20jhc=0A=20= showed=20up=20the=20bug.=20=20(It=20only=20matters=20when=20you=20have=20= a=20recursive=20group=0A=20of=20two=20or=20more=20functions=20with=20a=20= type=20signature,=20not=20at=20top=20level,=20which=0A=20is=20why=20it=20= hasn't=20shown=20up=20till=20now.)=20=0A=20=0A=20Test=20is=20tc207.hs=0A=20= =0A=20=0A]=20=0A[Add=20note=20about=20overlapping=20instances=0A= [email protected]**20060905092201]=20=0A[Record=20that=20TH=20= doesn't=20support=20pattern=20types=20signature=0A= [email protected]**20060905091834]=20=0A[Fix=20typos.=0AIan=20Lynagh=20= <[email protected]>**20060904190958]=20=0A[Refactoring=20for=20derived=20= [email protected]**20060904132212=0A=20=0A=20There=20are=20no=20= functional=20changes=20in=20this=20commit.=20=20But=20the=20code=20for=0A= =20derived=20Read=20is=20refactored=20to=20make=20it=20tidier=20---=20= and=20also=20to=20make=0A=20it=20very=20easy=20if=20we=20want=20derived=20= Read=20to=20parse=20the=20prefix=20form=20of=0A=20infix=20ocnstructors.=20= =20=0A=20=0A=20For=20example,=0A=20=09data=20T=20=3D=20Int=20`T1`=20Int=0A= =20According=20to=20the=20H98=20report,=20the=20derived=20Read=20= instance=20will=20parse=0A=20infix=20uses=20of=20T1,=20but=20not=20= prefix=20uses=20(T1=204=203).=20=20It's=20arguable=20that=20it=0A=20= should=20parse=20both=20--=20and=20easy=20to=20implement,=20but=20it=20= would=20cause=20a=20little=20bit=0A=20of=20code=20bloat.=0A=20=0A=20= Similarly=20records.=0A=20=0A=20Anyway=20this=20commit=20doesn't=20= implement=20the=20change;=20just=20makes=20it=20easy=0A=20to=20do=20so.=0A= =20=0A]=20=0A[Enable=20bang-patterns=20only=20when=20the=20flag=20says=20= so=20(had=20missed=20a=20case=20before)=0A= [email protected]**20060904131412]=20=0A[Improve=20pretty-printing=20= [email protected]**20060904131334]=20=0A[Remove=20= linear=20implicit=20parameters,=20and=20document=20in=20release=20notes=0A= [email protected]**20060904125105]=20=0A[Release=20notes=20should=20= mention=20better=20newtype-deriving=0A= [email protected]**20060904124458]=20=0A[Documentation=20for=20bang=20= patterns,=20and=20other=20improvements=0A= [email protected]**20060904123438]=20=0A[Add=20a=20hint=20on=20tab=20= completion=0AIan=20Lynagh=20<[email protected]>**20060903224823]=20=0A[Add=20= :main=20docs=20to=20ghci=20commands=20page=0AIan=20Lynagh=20= <[email protected]>**20060903223107]=20=0A[Ambiguities=20are=20now=20= allowed=20in=20ghci=20command=20names=0AIan=20Lynagh=20= <[email protected]>**20060903222115]=20=0A[More=20output=20updates=0AIan=20= Lynagh=20<[email protected]>**20060903221933]=20=0A[Add=20docs=20for=20= :main=0AIan=20Lynagh=20<[email protected]>**20060903220130]=20=0A[More=20= doc=20output=20fixes=0AIan=20Lynagh=20<[email protected]>**20060903215748]=20= =0A[Update=20ghci=20output=20in=20docs=0AIan=20Lynagh=20= <[email protected]>**20060903214128]=20=0A[Fix=20typo=0AIan=20Lynagh=20= <[email protected]>**20060903212651]=20=0A[Update=20ghci=20output=20in=20= docs=0AIan=20Lynagh=20<[email protected]>**20060903210805]=20=0A[Remove=20a=20= tab=20causing=20ghci's=20:?=20alignment=20to=20go=20wrong=0AIan=20Lynagh=20= <[email protected]>**20060903210349]=20=0A[Don't=20lose=20linked=20list=20= tail=0AEsa=20Ilari=20Vuokko=20<[email protected]>**20060831223315]=20=0A= [Fix=20Windows=20MBlock=20alloctor=20bookkeeping=20bug=0AEsa=20Ilari=20= Vuokko=20<[email protected]>**20060830185540]=20=0A[-fglasgow-exts=20no=20= longer=20implies=20-fbang-patterns=0A= [email protected]**20060901125714]=20=0A[Fix=20error=20in=20release=20= notes,=20spotted=20by=20Esa=20Ilari=20Vuokko=0AIan=20Lynagh=20= <[email protected]>**20060901125841]=20=0A[Remove=20changes=20in=20packages=20= we=20don't=20build=0AIan=20Lynagh=20<[email protected]>**20060901125436]=20=0A= [Don't=20enable=20SMP=20if=20we=20are=20unregisterised=0AIan=20Lynagh=20= <[email protected]>**20060829123228]=20=0A[Add=20a=20pointer=20to=20the=20= [email protected]**20060831135511]=20=0A[free=20= the=20task=20*after*=20calling=20closeCond=20and=20closeMutex=0ASimon=20= Marlow=20<[email protected]>**20060831103648]=20=0A[add=20missing=20= ghc_ge_605=0ASimon=20Marlow=20<[email protected]>**20060831101813]=20= =0A[don't=20closeMutex()=20the=20Capability=20lock=0ASimon=20Marlow=20= <[email protected]>**20060831085728=0A=20There=20might=20be=20= threads=20in=20foreign=20calls=20that=20will=20attempt=20to=20return=0A=20= via=20resumeThread()=20and=20grab=20this=20lock,=20so=20we=20can't=20= safely=20destroy=20it.=0A=20=0A=20Fixes=20one=20cause=20of=0A=20=0A=20=20= =20=20internal=20error:=20ASSERTION=20FAILED:=20file=20Capability.c,=20= line=2090=0A=20=0A=20although=20I=20haven't=20repeated=20that=20= assertion=20failure=20in=20the=20wild,=20only=0A=20with=20a=20specially=20= crafted=20test=20case,=20so=20I=20can't=20be=20sure=20I=20really=20got=0A= =20it.=0A]=20=0A[fix=20Unix=20build=0ASimon=20Marlow=20= <[email protected]>**20060830141529]=20=0A[add=20sysErrorBelch()=20= for=20reporting=20system=20call=20errors=0ASimon=20Marlow=20= <[email protected]>**20060830140252]=20=0A[call=20= ShutdownIOManager()=20before=20closing=20handles=0ASimon=20Marlow=20= <[email protected]>**20060830123131=0A=20To=20avoid=20IO=20requests=20= completing=20only=20to=20discover=20that=20the=0A=20completed_table_sema=20= has=20been=20CloseHandle()'d.=20=20This=20all=20looks=20a=20bit=0A=20= wrong,=20though:=20we=20shouldn't=20really=20be=20waiting=20for=20these=20= requests=20to=0A=20complete,=20they=20might=20take=20forever.=0A]=20=0A= [Windows:=20make=20some=20soft=20failures=20into=20fatal=20errors=0A= Simon=20Marlow=20<[email protected]>**20060830091859=0A=20Some=20of=20= the=20memory=20allocation=20calls=20were=20being=20checked=20for=20= error,=20but=0A=20the=20RTS=20was=20printing=20a=20message=20and=20= continuing.=20=20These=20error=20cases=0A=20lead=20to=20crashes=20later,=20= so=20better=20to=20just=20fail=20immediately.=0A]=20=0A[MAYBE_GC:=20= initialise=20HpAlloc=0ASimon=20Marlow=20= <[email protected]>**20060830091529=0A=20HpAlloc=20was=20not=20= being=20set=20when=20returning=20to=20the=20scheduler=20via=20= MAYBE_GC(),=0A=20which=20at=20the=20least=20was=20just=20wrong=20(the=20= scheduler=20might=20allocate=20a=20large=0A=20block=20more=20than=20= once),=20and=20at=20worst=20could=20lead=20to=20crashes=20if=20HpAlloc=20= contains=0A=20garbage.=0A=20=0A=20Fixes=20at=20least=20one=20threaded2=20= test=20on=20Windows.=0A]=20=0A[FILL_SLOP:=20don't=20fill=20slop=20for=20= BLACKHOLE/CAF_BLACKHOLE=0ASimon=20Marlow=20= <[email protected]>**20060830083311=0A=20This=20affects=20-debug=20= only,=20avoids=20crash=20with=20test=20conc012.=0A]=20=0A[oops,=20got=20= the=20sense=20of=20the=20error=20case=20wrong=0ASimon=20Marlow=20= <[email protected]>**20060829151751]=20=0A[fix=20some=20rerrors=20= in=20the=20worker=20counting=0ASimon=20Marlow=20= <[email protected]>**20060829135150]=20=0A[add=20missing=20case=20= for=20BlockedOnDoProc=0ASimon=20Marlow=20= <[email protected]>**20060829113345]=20=0A[omit=20HGL=20on=20= Windows=0ASimon=20Marlow=20<[email protected]>**20060829104921]=20=0A= [Don't=20trust=20"ln=20-sf"=20to=20do=20the=20right=20thing=20(it=20= doesn't=20on=20Solaris)=0ASimon=20Marlow=20= <[email protected]>**20060829093735=0A=20Patch=20from:=20Roman=20= Leshchinskiy=0A]=20=0A[don't=20include=20HaXml,=20Japi=20and=20monads=20= in=20a=20GHC=20checkout=0ASimon=20Marlow=20= <[email protected]>**20060829085946=0A=20They=20aren't=20built=20as=20= part=20of=20a=20GHC=20build=20anyway,=20it=20doesn't=20make=20much=0A=20= sense=20to=20include=20them=20in=20checkouts=20or=20source=20tarballs.=0A= ]=20=0A[don't=20include=20.depend=20(attempt=20to=20fix=20Windows=20= stage2=20build=20failure)=0ASimon=20Marlow=20= <[email protected]>**20060829083842]=20=0A[Add=20mipsel=20case=20to=20= configure.ac=0AIan=20Lynagh=20<[email protected]>**20060825193603]=20=0A= [incremented=20versions=20of=20arrows=20and=20X11=0ARoss=20Paterson=20= <[email protected]>**20060825162415]=20=0A[omit=20= Control.Sequential.STM=0ARoss=20Paterson=20= <[email protected]>**20060825161645=0A=20=0A=20It's=20an=20internal=20= module=20used=20by=20non-GHC=20implementations=20only.=0A]=20=0A[various=20= minor=20tweaks,=20and=20rearrange=20to=20put=20"important"=20changes=20= near=20the=20top=0ASimon=20Marlow=20= <[email protected]>**20060825154955]=20=0A[mention=20= -fno-mono-pat-binds,=20since=20this=20is=20a=20diversion=20from=20= Haskell=2098=0ASimon=20Marlow=20= <[email protected]>**20060825152613]=20=0A[Document=20SMP=20support=0A= Simon=20Marlow=20<[email protected]>**20060825151236]=20=0A[Load=20= the=20target=20of=20a=20dynamic=20foreign=20call=20into=20a=20temporary=0A= Simon=20Marlow=20<[email protected]>**20060825140906=0A=20Fixes=20= ffi011(opt)=20on=20x86_64.=20=20I=20don't=20know=20why=20this=20has=20= only=20just=0A=20appeared=20today,=20it's=20apparently=20been=20broken=20= for=20some=20time.=0A]=20=0A[Sparc=20supports=20SMP=20too=0ASimon=20= Marlow=20<[email protected]>**20060825133628]=20=0A[Fix=20rewriting=20= of=20Control.Exception.Assert;=20fixes=20875=0AIan=20Lynagh=20= <[email protected]>**20060825010219]=20=0A[Add=20the=20regex=20reshuffle=20= to=20the=20release=20notes=0AIan=20Lynagh=20= <[email protected]>**20060825110520]=20=0A[parsec=20is=20now=20a=20core=20= library=0AIan=20Lynagh=20<[email protected]>**20060825102418]=20=0A[Add=20a=20= default=20case=20to=20pprDynamicLinkerAsmLabel=0ARoman=20Leshchinskiy=20= <[email protected]>**20060825101846=0A=20=0A=20This=20is=20mainly=20for=20= the=20benefit=20of=20Solaris.=20I'll=20fix=20this=20properly=20later.=0A= ]=20=0A[Reserve=20a=20register=20for=20REG_Base=20on=20the=20Sparc=0A= Roman=20Leshchinskiy=20<[email protected]>**20060825101820]=20=0A[Add=20= atomic=20SMP=20primitives=20for=20the=20Sparc=0ARoman=20Leshchinskiy=20= <[email protected]>**20060825101753]=20=0A[Make=20sure=20GCC=20uses=20= the=20Sparc=20V9=20instruction=20set=0ARoman=20Leshchinskiy=20= <[email protected]>**20060825101646=0A=20=0A=20We=20only=20support=20= Sparc=20V9=20and=20better=20as=20V8=20lacks=20an=20atomic=20CAS=20= instruction=0A=20which=20we=20need=20for=20SMP.=20This=20means=20that=20= we=20have=20to=20pass=20-mcpu=3Dv9=20to=20GCC=20when=0A=20compiling=20= and=20assembling.=20Hardcoding=20the=20flag=20is=20hackish=20but=20seems=20= to=20be=0A=20our=20best=20bet=20at=20the=20moment.=20It=20can=20still=20= be=20overridden=20by=20the=20user=20as=20GCC=0A=20picks=20the=20best=20= -mcpu=20flag=20regardless=20of=20the=20ordering.=0A]=20=0A= [shutdownCapability():=20don't=20bail=20out=20after=2050=20iterations=0A= Simon=20Marlow=20<[email protected]>**20060825100244=0A=20See=20= comments=20for=20details.=20=20Fixes=20assertion=20failures=20in=20stage=20= 3=20build=0A=20which=20appeared=20after=20recent=20closeMutex()=20= addidion.=20=20May=20fix=20other=0A=20shutdown=20issues.=0A]=20=0A[add=20= dependency=20on=20regex-compat=0ASimon=20Marlow=20= <[email protected]>**20060825093226]=20=0A[move=20parsec=20into=20= $(GhcBootLibs);=20tidy=20up=0ASimon=20Marlow=20= <[email protected]>**20060825091013]=20=0A[Mips=20registerised=20= support=0ASimon=20Marlow=20<[email protected]>**20060825085712=0A=20= Contributed=20by:=20Thiemo=20Seufer=20<[email protected]>=0A]=20=0A= [parsec=20is=20required=20to=20be=20a=20core=20package,=20genprimopcode=20= uses=20it=0ASimon=20Marlow=20<[email protected]>**20060825084607]=20= =0A[Free=20Win32=20Handles=20on=20shutdown=0ASimon=20Marlow=20= <[email protected]>**20060825084435=0A=20patch=20from=20#878=0A]=20=0A= [Fix=20unregisterised=20builds,=20and=20building=20on=20= non-x86/amd64/powerpc=0AIan=20Lynagh=20<[email protected]>**20060825003945]=20= =0A[Release=20notes=20for=20GHC=206.6=0AIan=20Lynagh=20= <[email protected]>**20060824211646]=20=0A[Update=20for=20changes=20to=20= packages=0ASimon=20Marlow=20<[email protected]>**20060824153500=0A=20= Not=20much=20has=20changed=20really:=20just=20the=20removal=20of=20the=20= overlap=0A=20restriction,=20and=20the=20re-instatement=20of=20the=20= requirement=20that=0A=20-package-name=20must=20be=20used=20when=20= compiling=20a=20package=20now.=0A]=20=0A[somehow=20I=20lost=20the=20unix=20= subdir;=20recover=20it=0ASimon=20Marlow=20= <[email protected]>**20060824152529]=20=0A[expand=20the=20section=20= on=20getting=20the=20source.=0ASimon=20Marlow=20= <[email protected]>**20060824150647]=20=0A[config=20in=20= regex-posix=20too=0ASimon=20Marlow=20= <[email protected]>**20060824145717]=20=0A[make=20all=20= AC_CONFIG_SUBDIRS=20optional=0ASimon=20Marlow=20= <[email protected]>**20060824143016]=20=0A[Add=20dynCompileExpr=0A= Esa=20Ilari=20Vuokko=20<[email protected]>**20060823221828]=20=0A[Remove=20= duplicate=20documentation=20of=20-package=20flag=0AIan=20Lynagh=20= <[email protected]>**20060824121806]=20=0A[Remove=20a=20reference=20to=20= -fglobalise-toplev-names=20that=20got=20left=20behind=0AIan=20Lynagh=20= <[email protected]>**20060824121442]=20=0A[Add=20closeMutex=20and=20use=20= it=20on=20clean=20up=0AEsa=20Ilari=20Vuokko=20= <[email protected]>**20060823194604]=20=0A[Add=20shared=20Typeable=20= support=0AEsa=20Ilari=20Vuokko=20<[email protected]>**20060823003041]=20=0A= [Ignore=20sections=20generated=20from=20.ident=0AEsa=20Ilari=20Vuokko=20= <[email protected]>**20060823155023]=20=0A[update=20with=20respect=20to=20= darcs-all=20changes=0ASimon=20Marlow=20= <[email protected]>**20060824115535]=20=0A[divide=20packages=20into=20= "core"=20and=20"extra"=20packages=0ASimon=20Marlow=20= <[email protected]>**20060824114902=0A=20The=20following=20packages=20= are=20now=20"core"=20packages:=0A=20=0A=20=20=20base,=20Cabal,=20= haskell98,=20readline,=20regex-base,=20regex-compat=0A=20=20=20= regex-posix,=20stm,=20template-haskell,=20unix,=20Win32=0A=20=0A=20Core=20= packages=20are=20those=20packages=20required=20to=20bootstrap=20GHC,=20= or=20are=0A=20closely=20tied=20to=20GHC=20(stm,=20template-haskell).=20=20= These=20are=20the=20packages=0A=20that=20will=20be=20provided=20in=20a=20= source=20distribution=20from=20now=20on.=0A=20=0A=20All=20other=20= packages=20are=20classified=20as=20"extra"=20packages.=20=20As=20far=20= as=0A=20binary=20distributions=20and=20nightly=20builds=20go,=20nothing=20= will=20change=20-=0A=20we'll=20still=20build=20and=20include=20all=20= these=20packages=20in=20the=20distributions.=0A=20=0A=20NOTE:=20'sh=20= darcs-all=20get'=20will=20now=20get=20the=20core=20packages=20only.=20=20= To=20get=0A=20the=20extra=20packages=20too,=20use=20'sh=20darcs-all=20= --extra=20get'.=0A]=20=0A[Sparc=20fix:=20work=20around=20gcc=20= optimising=20away=20the=20reserved=20stack=20chunk=0ASimon=20Marlow=20= <[email protected]>**20060824113750=0A=20This=20bug=20causes=20= crashse=20on=20Sparc=20when=20calling=20foreign=20functions=20with=0A=20= more=20than=2013=20arguments.=0A]=20=0A[add=20new=20regex=20packages=0A= Simon=20Marlow=20<[email protected]>**20060824094443]=20=0A[Clean=20= up=20coding=20style=0AEsa=20Ilari=20Vuokko=20= <[email protected]>**20060823075822]=20=0A[Use=20stgMallc=20and=20stgFree=20= instead=20of=20malloc/free=0AEsa=20Ilari=20Vuokko=20= <[email protected]>**20060823002902]=20=0A[Remove=20wrong=20VirtualAlloc=20= MEM_DECOMMITs=20on=20cleanup=0AEsa=20Ilari=20Vuokko=20= <[email protected]>**20060821180332]=20=0A[Remove=20few=20format-warnings=20= by=20adding=20casts=0AEsa=20Ilari=20Vuokko=20= <[email protected]>**20060813111029]=20=0A[Remove=20warning:=20Correct=20= includes=20for=20mingw=0AEsa=20Ilari=20Vuokko=20= <[email protected]>**20060813002216]=20=0A[Add=20few=20more=20guesses=20= where=20to=20find=20bits=20of=20mingw-gcc=0AEsa=20Ilari=20Vuokko=20= <[email protected]>**20060812020901]=20=0A[in=20the=20GHCi=20prompt,=20= print=20ModuleNames=20not=20Modules=0ASimon=20Marlow=20= <[email protected]>**20060823095258]=20=0A[In=20the=20= Compiling/Skipping=20message,=20print=20ModuleNames=20not=20Modules=0A= Simon=20Marlow=20<[email protected]>**20060823095225=0A=20These=20= modules=20are=20always=20home=20modules,=20by=20definition,=20so=20the=20= package=0A=20name=20is=20redundant.=0A=20=0A]=20=0A[Fix=20typo=0AIan=20= Lynagh=20<[email protected]>**20060822163300]=20=0A[Fix=20typo=0AIan=20= Lynagh=20<[email protected]>**20060822163212]=20=0A[FastString=20and=20= StringBuffer=20need=20-funbox-strict-fields=20too=0ASimon=20Marlow=20= <[email protected]>**20060822143337=0A=20For=20the=20benefit=20of=20= old=20GHCs=20that=20don't=20understand=20{-#=20UNPACK=20#-}=0A]=20=0A= [minor=20fix=20to=20the=20clashing=20export=20error=20message=0ASimon=20= Marlow=20<[email protected]>**20060822112518=0A=20The=20ordering=20= of=20items=20in=20the=20parsed=20export=20list=20is=20now=20correct,=20= so=20we=0A=20have=20to=20compensate=20to=20get=20the=20right=20output=20= again.=0A]=20=0A[findModule:=20add=20a=20fallthrough=20error=20case=0A= Simon=20Marlow=20<[email protected]>**20060822112409]=20=0A[notes=20= about=20which=20versions=20of=20GHC=20can=20be=20used=20to=20bootstrap=0A= Simon=20Marlow=20<[email protected]>**20060822093554]=20=0A[disable=20= .ident=20generation=20on=20darwin_TARGET_OS=0ASimon=20Marlow=20= <[email protected]>**20060822090349]=20=0A[fix=20typo=0ASimon=20= Marlow=20<[email protected]>**20060822073731]=20=0A[fixes=20to=20= PPC=20version=20of=20cas(),=20from=20David=20Kirkman=20= <[email protected]>=0ASimon=20Marlow=20= <[email protected]>**20060821153136=0A=20=0A=20=46rom=20David's=20= email:=0A=20The=20problem=20is=20that=20the=20inline=20assembler=20code=20= was=20placing=20the=20result=0A=20of=20an=20operation=20in=20a=20= register=20that=20is=20used=20as=20input=20later=20in=20the=20code.=0A=20= At=20the=20bottom=20of=20this=20message=20I've=20extracted=20a=20short=20= short=20code=0A=20fragment=20that=20you=20can=20run=20through=20gcc=20= (on=20a=20powerpc=20machine)=20to=20see=0A=20the=20generated=20assembly=20= output.=0A=20=0A=20The=20changes=20to=20fix=20the=20problem=20are=20= fairly=20simple.=20=20The=20first=20adds=20an=0A=20ampersand=20to=20the=20= output=20list=20of=20the=20assembly=20fragment=20("=3Dr"=20(result)=0A=20= -->=20"=3D&r"=20(result))=20The=20ampersand=20just=20tells=20gcc=20that=20= result=20can=20not=0A=20be=20placed=20in=20a=20register=20used=20for=20= any=20of=20the=20input=20parameters=20(o,=20n,=20or=0A=20p).=20=20= Otherwise,=20it=20feels=20free=20to=20place=20output=20parameters=20in=20= the=20same=0A=20registers=20used=20by=20the=20inputs=20--=20but=20= because=20of=20the=20flow=20of=20control=0A=20here=20we=20need=20= everything=20in=20a=20distinct=20register.=20=20This=20change=20fixes=20= the=0A=20TVar=20program=20above.=0A=20=0A=20The=20second=20change=20adds=20= a=20clobber=20list=20(the=20:"cc",=20"memory").=20=20This=0A=20tells=20= gcc=20that=20the=20condition=20code=20(due=20to=20the=20compare)=20and=20= memory=20(due=0A=20to=20the=20store)=20might=20be=20changed=20during=20= the=20asm=20execution.=20=20The=20lack=20of=0A=20a=20clobber=20list=20= did=20not=20seem=20to=20be=20causing=20any=20trouble,=20but=20without=20= it=0A=20gcc=20is=20free=20to=20assume=20that=20no=20state=20is=20changed=20= during=20the=20execution.=0A]=20=0A[Always=20use=20-funbox-strict-fields=20= for=20Binary=0ASimon=20Marlow=20<[email protected]>**20060821152111=0A= =20For=20some=20reason=20this=20was=20only=20enabled=20when=20= $(bootstrapped)=3DYES.=20=20This=0A=20would=20be=20one=20reason=20why=20= the=20stage1=20compiler=20is=20slow.=20=20I=20guess=20we'll=0A=20find=20= out=20if=20anything=20goes=20wrong.=0A]=20=0A[disable=20automagic=20= building=20of=20GHCi=20in=20stage1=0ASimon=20Marlow=20= <[email protected]>**20060821151957]=20=0A[remove=20ancient=20file=20= with=20incorrect=20information=0ASimon=20Marlow=20= <[email protected]>**20060821141946]=20=0A[new=20option=20-a=20= (append)=20for=20hasktags=0AMartin=20Grabmueller=20= <[email protected]>**20060816091427]=20=0A[ugly=20hack=20to=20cause=20= ghc_boot_platform.h=20to=20be=20built=20before=20primops.txt=0ASimon=20= Marlow=20<[email protected]>**20060821120630]=20=0A[add=20= libraries/cgi=20and=20libraries/xhtml=0ASimon=20Marlow=20= <[email protected]>**20060821102908]=20=0A[(temp)=20#814=20-=20More=20= flexible=20memory=20allocation=20in=20Windows=0AEsa=20Ilari=20Vuokko=20= <[email protected]>**20060820150720]=20=0A[fix=20export/import=20list=20= parsing=20(allow=20(,)),=20and=20remove=20unnecessary=20reverses=0ASimon=20= Marlow=20<[email protected]>**20060821102633]=20=0A[comply=20with=20= Haskell=2098=20by=20not=20allowing=20extra=20commas=20in=20import/export=20= lists=0ASimon=20Marlow=20<[email protected]>**20060821095912]=20=0A= [Missing=20stage1's=20in=20hc-build=0AIan=20Lynagh=20= <[email protected]>**20060821092226=0A=20Add=20mising=20stage1/=20= directories=20to=20object=20files=20touched=20by=20hc-build,=20and=0A=20= give=20stage=3D1=20as=20an=20argument=20to=20make=20install.=0A]=20=0A= [remove=20spurious=20commas=20in=20imports=0ARoss=20Paterson=20= <[email protected]>**20060819173423]=20=0A[whitespace=20cleanup=20only=0A= Ross=20Paterson=20<[email protected]>**20060818224014]=20=0A[remove=20= [email protected]**20060818214155]=20=0A[I=20= don't=20thing=20we=20want=20to=20add=20a=20call-context=20here;=20it=20= [email protected]**20060818160729]=20= =0A[Avoid=20duplicate=20"In=20type=20..."=20in=20error=20messages=0A= [email protected]**20060818160611]=20=0A[Better=20pretty-printing=20= [email protected]**20060818160551]=20=0A[Fall=20over=20= more=20gracefully=20when=20there's=20a=20Template=20Haskell=20error=0A= [email protected]**20060818110702=0A=20=0A=20For=20a=20long=20time,=20= Template=20Haskell=20has=20fallen=20over=20in=20a=20very=20un-graceful=0A= =20way=20(i.e.=20panic)=20even=20when=20it=20encounters=20a=20programmer=20= error.=20=20In=20particular,=0A=20when=20DsMeta=20converts=20HsSyn=20to=20= TH=20syntax,=20it=20may=20find=20Haskell=20code=20that=0A=20TH=20does=20= not=20understand.=20This=20should=20be=20reported=20as=20a=20normal=20= programmer=0A=20error,=20not=20with=20a=20compiler=20panic!=0A=20=0A=20= Originally=20the=20desugarer=20was=20supposed=20to=20never=20generate=20= error=0A=20messages,=20but=20this=20TH=20desugaring=20thing=20does=20= make=20it=20do=20so.=20=20And=20in=0A=20fact,=20for=20other=20reasons,=20= the=20desugarer=20now=20uses=20the=20TcRnIf=20monad,=20the=0A=20common=20= monad=20used=20by=20the=20renamer,=20typechecker,=20interface=20checker,=20= and=0A=20desugarer.=20=20=0A=20=0A=20This=20patch=20completes=20the=20= job,=20by=20=0A=20=20-=20allowing=20the=20desugarer=20to=20generate=20= errors=0A=20=20-=20re-plumbing=20the=20error=20handling=20to=20take=20= account=20of=20this=0A=20=20-=20making=20DsMeta=20use=20the=20new=20= facilities=20to=20report=20error=20gracefully=0A=20=0A=20Quite=20a=20few=20= lines=20of=20code=20are=20touched,=20but=20nothing=20deep=20is=20going=20= on.=0A=20=0A=20Fixes=20Trac#=20760.=0A=20=0A]=20=0A[Fix=20typo=20(fst=20= -->=20head)=20in=20docs=20on=20implicit=20parameters=0A= [email protected]**20060818075937]=20=0A[One=20last=20hs-boot=20= [email protected]**20060817134216]=20=0A[Missing=20import=20= [email protected]**20060817133247]=20=0A[One=20= [email protected]**20060817133220]=20=0A= [Refactoring=20for=20valid=20rule=20checking=0A= [email protected]**20060817130141]=20=0A[Do=20not=20CSE=20in=20= [email protected]**20060817130005=0A= =20=0A=20See=20extensive=20comments=20with=20Note=20[INLINE=20and=20= NOINLINE]=20in=20this=20file.=0A=20=0A]=20=0A[Update=20lhs-boot=20files=0A= [email protected]**20060817132003=0A=20=0A=20A=20consequence=20of=20= my=20recent=20meddling=20with=20hs-boot=20files=20is=20that=20GHC=20is=0A= =20more=20picky=20about=20the=20correpondence=20between=20the=20hs-boot=20= file=20and=20the=20hs=20file.=0A=20In=20particular,=20you=20must=20use=20= the=20same=20type=20synonyms.=0A=20=0A=20This=20patche=20fixes=20up=20= GHC's=20own=20hs-boot=20files=20to=20match=20the=20restriction.=0A=20=0A= ]=20=0A[Add=20ad-hoc=20typing=20checks=20for=20tagToEnum#=0A= [email protected]**20060816203156=0A=20=0A=20The=20problem=20with=20= tagToEnum#=20is=20that=20it=20is=20not=20overloaded=20(in=20the=0A=20= Haskell=20sense)=20but=20you=20are=20only=20supposed=20to=20apply=20it=20= to=20a=20TyCon=0A=20that=20is=20an=20enumeration=20(isEnumerationTyCon).=0A= =20=0A=20The=20Real=20Way=20to=20do=20this=20is=20to=20have=20some=20= special=20kind=20of=20type=20constraint=0A=20for=20the=20purpose,=20but=20= that=20is=20wild=20overkill.=20So=20this=20patch=20adds=20a=20small=0A=20= rather=20ad-hoc=20check=20to=20TcExpr.instFun.=20=20Crude,=20simple,=20= but=20it=20works=20fine.=0A=20=0A=20Fixes=20Trac=20#786=0A=20Test=20is=20= tcfail164=0A=20=0A]=20=0A[Get=20dead-ness=20right=20in=20knownCon=0A= [email protected]**20060816164216]=20=0A[Tuning=20for=20argToPat=0A= [email protected]**20060816164103=0A=20=0A=20argToPat=20is=20a=20= crucial=20function=20for=20SpecConstr,=20because=20it=20decides=0A=20= what=20patterns=20are=20worth=20specialising.=20=20I=20was=20being=20= much=20too=20gung-ho=20about=0A=20constants.=20=20This=20patch=20makes=20= it=20much=20better.=0A=20=0A]=20=0A[Re-factor=20mkAtomicArgs=20and=20= [email protected]**20060816163645=0A=20=0A=20This=20= refactoring=20ensures=20that=20when=20mkAtomicArgs=20adds=20new=20= bindings,=0A=20it=20does=20so=20using=20completeNonRecX,=20which=20adds=20= unfoldings=20etc.=20=20More=0A=20modular,=20and=20saves=20passes=20too.=0A= =20=0A=20(This=20was=20important=20when=20getting=20rules=20to=20work=20= right.=20=20We=20want=20tob=0A=20fire=20a=20rule=20as=20soon=20as=20= possible,=20taking=20into=20account=20all=20inlinings,=0A=20else=20a=20= less-good=20rule=20applies.=20=20That's=20what=20I=20found=20when=20= doing=20=0A=20stream=20fusion=20anyway.)=0A=20=0A=20Regardless,=20this=20= is=20an=20improvement.=0A=20=0A]=20=0A[Another=20try=20at=20the=20= [email protected]**20060816105042=0A=20= =0A=20I=20have=20spent=20altogether=20too=20long=20on=20my=20attempt=20= to=20avoid=20case-of-case=0A=20in=20situations=20where=20it=20is=20a=20= Bad=20Thing.=20=20All=20the=20action=20is=20in=20the=0A=20case=20for=20= mkDupableAlt=20that=20handles=20cases=20with=20a=20single=20alternative.=0A= =20=0A=20I've=20added=20rather=20extensive=20comments,=20and=20it=20= finally=20seems=20to=20be=20working=0A=20more=20or=20less=20right.=20=20= If=20you=20compile=20(say)=20GHC/Real.o=20you'll=20see=20quite=20a=0A=20= few=20case-of-cases=20remain=20(which=20didn't=20happen=20before),=20and=20= they=20mostly=20look=0A=20pretty=20sensible=20to=20me.=0A=20=0A]=20=0A= [Don't=20build=20unnecessary=20lets=20in=20knownCon=0A= [email protected]**20060816104831=0A=20=0A=20Faced=20with=0A=20=09= case=20x=20of=20y=20{=20(a,b)=20->=20rhs=20}=0A=20=0A=20where=20x=20is=20= bound=20to=20(c,d),=20we=20were=20generating=0A=20=09=0A=20=09let=20y=20= =3D=20(c,d)=20in=20rhs=0A=20=0A=20and=20thenn=20hoping=20to=20get=20rid=20= of=20the=20y=20binding=20by=20CSE=20or=20some=20such.=20=20It's=0A=20= better=20simply=20not=20to=20build=20it=20in=20the=20first=20place,=20by=20= generating=0A=20=0A=20=09let=20y=20=3D=20x=20in=20rhs=0A=20=0A=20This=20= patch=20does=20the=20job.=0A=20=0A]=20=0A[Comments=20only=0A= [email protected]**20060816104817]=20=0A[Refactoring,=20plus=20= record=20recursive-function=20*components*=20as=20RecArg=20too=0A= [email protected]**20060816085809]=20=0A[Record=20constructor=20arg=20= occs=20correctly=20(bug-fix)[email protected]**20060816085628=0A=20= =0A=20I=20was=20forgetting=20the=20non-pattern-matched=20type=20args=20= of=20a=20constructor.=0A=20=0A]=20=0A[Disable=20form-checking=20for=20= [email protected]**20060816085612=0A=20=0A=20= Previously=20we=20checked=20the=20form=20of=20the=20arguments=20of=20a=20= RULE=20lhs,=20to=20=0A=20ensure=20that=20they=20were=20simple=20= applications.=20There=20was=20no=20good=20reason=0A=20for=20that,=20save=20= to=20prevent=20you=20writing=20LHSs=20that=20were=20unlikely=20to=20= match.=0A=20=0A=20And=20Don=20Stewart=20found=20he=20wanted=20to=20do=20= something=20we=20didn't=20allow=20(a=20section,=0A=20I=20think).=20=20So=20= I=20have=20just=20disabled=20the=20check.=0A=20=0A]=20=0A[Allow=20class=20= and=20instance=20decls=20in=20hs-boot=20files=0A= [email protected]**20060815123402=0A=20=0A=20For=20some=20reason,=20= in=206.5=20the=20manual=20said=20you=20could=20put=20a=20class=20decl=20= in=0A=20an=20interface=20file,=20but=20not=20an=20instance=20decl;=20= whereas=20the=20implementation=0A=20was=20exactly=20the=20othe=20way=20= round.=0A=20=0A=20This=20patch=20makes=20it=20possible=20to=20put=20= *both*=20class=20and=20instance=20decls=0A=20in=20an=20interface=20file.=20= =0A=20=0A=20I=20also=20did=20a=20bit=20of=20re-factoring;=20comparing=20= the=20declarations=20in=20the=0A=20hs-boot=20and=20hs=20file=20is=20now=20= done=20by=20converting=20to=20IfaceSyn,=20because=20we=0A=20have=20good=20= comparison=20operations=20for=20IfaceSyn=20already=20implemented.=0A=20= This=20fixed=20a=20bug=20that=20previously=20let=20through=20an=20= inconsistent=20declaration=20=0A=20of=20a=20data=20type.=0A=20=0A=20The=20= remaining=20infelicity=20concerns=20"abstract"=20TyCons.=20=20They=20are=20= a=20bit=0A=20of=20a=20hack=20anyway;=20and=20Classes=20are=20not=20= handled=20in=20the=20same=20way.=20=20Need=0A=20to=20think=20about=20= this,=20but=20I=20think=20it's=20probably=20ok=20as=20it=20stands.=0A=20=0A= =20=0A]=20=0A[Reject=20derivable=20type=20classes=20with=20higher-rank=20= [email protected]**20060815075928=0A=20=0A=20Trac=20#864=20= suggested=20a=20derivable=20type=20class=20with=20a=20higher-rank=20= method.=0A=20=0A=20In=20principle=20this=20is=20quite=20do-able,=20but=20= in=20practice=20the=20mechanism=20works=0A=20by=20generating=20source=20= code=20and=20then=20doing=20type=20inference.=20=20To=20make=20this=20= work=0A=20with=20higher-rank=20types=20would=20require=20impredicative=20= polymorphism.=20And=20we=20=0A=20do=20have=20that,=20so=20it=20could=20= probably=20be=20made=20to=20work=20by=20generating=20(source-level)=0A=20= type=20annotations.=20=20But=20it's=20real=20work,=20so=20I'm=20settling=20= for=20generating=20a=0A=20decent=20error=20message=20rather=20than=20= crashing.=0A=20=0A=20=0A]=20=0A[SpecConstr=20now=20specialises=20on=20= [email protected]**20060815162605=0A=20= =0A=20Roman=20inspired=20me=20to=20beef=20up=20SpecConstr=20to=20deal=20= with=0A=20a)=20constant=20arguments=0A=20b)=20lambda=20arguments=0A=20=0A= =20This=20is=20described=20in=20elaborate=20comments=20in=20the=20file:=0A= =20=20=09Note=20[Specialising=20for=20constant=20parameters]=0A=20=09= Note=20[Specialising=20for=20lambda=20parameters]=0A=20=0A=20I=20also=20= took=20the=20opportunity=20to=20fix=20the=20usage=20analysis=20done=20by=0A= =20SpecConstr,=20which=20was=20only=20handling=20the=20top-level=20= correctly.=0A=20Now=20it=20does=20nesting=20too.=0A=20=0A=20=0A]=20=0A= [Fix=20two=20bugs=20in=20rule-matching=0A= [email protected]**20060815162030=0A=20=0A=20These=20two=20typo-like=20= bugs=20have=20been=20there=20for=20a=20long=20time!=0A=20=0A=20=20=20One=20= concerns=20the=20selection=20of=20overlapping=20rules,=20=0A=20=20=20= which=20was=20back=20to=20front=0A=20=0A=20=20=20The=20other=20was=20= name-lining-up=20bug=20in=20the=20Case=20case=20of=20matching=0A=20=0A=20= This=20patch=20also=20arranges=20to=20export=20matchN.=20=0A=20=20=20= (Not=20a=20good=20name,=20but=20still!)=0A=20=0A=20=0A]=20=0A[Moving=20= list-length=20code=20from=20one=20place=20in=20the=20file=20to=20another=0A= [email protected]**20060815161947]=20=0A[Make=20UniqSM=20into=20a=20= [email protected]**20060815161829]=20=0A[Typo=20in=20= patch=20that=20dealt=20with=20duplicating=20continuations=20in=20= [email protected]**20060815070246]=20=0A[Be=20more=20= conservative=20about=20duplicating=20continuations=0A= [email protected]**20060814165424=0A=20=0A=20Roman=20found=20that=20= GHC=20was=20duplicating=20continuations=20that=20arose=20(essentially)=0A= =20from=20uses=20of=20'seq',=20or=20strict=20constructors.=20=20This=20= fixes=20the=20problem;=0A=20see=20the=20comments=20mkDupableCont=20(the=20= Select=20case=20with=20a=20single=20alternative).=0A=20=0A=20I'm=20a=20= little=20concerned=20that=20this=20may=20also=20miss=20useful=20= case-of-case=0A=20tranformations,=20so=20I'd=20like=20to=20know=20if=20= anyone=20finds=20that=20this=20patch=0A=20makes=20performance=20worse.=0A= =20=0A=20To=20make=20it=20a=20bit=20more=20gung-ho,=20one=20could=20= check=20for=20all=20the=20binders=0A=20being=20dead,=20before=20choosing=20= this=20new,=20conservative=20alternative.=0A=20=0A=20=0A]=20=0A[Inline=20= into=20tail-called=20constructor=20args=0A= [email protected]**20060814165127=0A=20=0A=20Consider=0A=20=09x=20=3D=20= case=20y=20of=20{=20True=20->=20(p,q);=20...=20}=0A=20=0A=20The=20= occurrence=20analyser=20was=20marking=20p,q=20as=20'Many',=20because=20= they=20args=0A=20of=20a=20constructor=20in=20an=20RhsCtxt.=20=20But=20= actually=20they=20aren't=20in=20a=20RhsCtxt,=0A=20and=20in=20this=20case=20= it's=20better=20to=20inline.=0A=20=0A]=20=0A[Improve=20exprIsCheap=0A= [email protected]**20060814165043=0A=20=0A=20exprIsCheap=20is=20= meant=20to=20return=20True=20iff=20it's=20ok=20to=20push=20the=20= expression=0A=20inside=20a=20lambda.=20=20But=20the=20previous=20version=20= would=20return=20True=20of=20a=20nested=0A=20construtor=20application=20= like=20(1:2:3:[]),=20which=20isn't=20right.=0A=20=0A=20This=20patch=20= re-factors=20the=20code=20somewhat,=20and=20fixes=20the=20bug.=0A=20=0A]=20= =0A[Added=20xhtml=20and=20cgi=20as=20default=20libraries.=0A= [email protected]**20060814113242]=20=0A[Improve=20error=20message=20= [email protected]**20060814095617=0A=20=0A=20Fixes=20= Trac=20#863.=0A=20Test=20is=20tcfail162=0A=20=0A]=20=0A[Warning=20= police:=20Removed=20overlapped=20pattern=20warnings=0A= [email protected]**20060811151353]=20=0A[Complete=20-fmono-pat-binds=20= [email protected]**20060811142842=0A=20=0A=20When=20adding=20= the=20experimental=20-fmono-pat-binds,=20I=20forgot=20to=20check=0A=20= for=20type=20signatures=20of=20the=20now-monomorphic=20patterns.=20=20= This=20patch=0A=20completes=20the=20job.=0A=20=0A=20I=20documented=20the=20= design=20too:=0A=20=20=20=20= http://haskell.galois.com/cgi-bin/haskell-prime/trac.cgi/wiki/MonomorphicP= atternBindings=0A=20=0A]=20=0A[Avoid=20warning=20about=20overlapped=20= [email protected]**20060811140512]=20= =0A[Improve=20error=20message=20layouts=0A= [email protected]**20060811133317]=20=0A[Add=20type=20signature=0A= [email protected]**20060811133302]=20=0A[Improve=20the=20"could=20= not=20find=20module"=20error=20message=0ASimon=20Marlow=20= <[email protected]>**20060811132135=0A=20In=20particular,=20if=20= we're=20searching=20for=20the=20profiling=20version=20of=20a=0A=20module=20= in=20another=20package,=20then=20suggest=20that=20perhaps=20it=20might=20= not=20have=0A=20been=20installed.=0A]=20=0A[On=20FreeBSD,=20use=20-lthr=20= instead=20of=20-pthread=20for=20now=20(see=20comments)=0ASimon=20Marlow=20= <[email protected]>**20060811113453]=20=0A[Two=20more=20error=20= [email protected]**20060811110435]=20=0A[Go=20= back=20to=20calling=20type=20veriables=20t=0A= [email protected]**20060811110412]=20=0A[Indent=20an=20error=20= [email protected]**20060811110347]=20=0A[Improve=20error=20= message=20(imported=20from=20Prelude=20at=20Implicit=20import=20= declaration)[email protected]**20060811110301]=20=0A[don't=20= qualify=20module=20name=20for=20importedSrcLoc=0ASimon=20Marlow=20= <[email protected]>**20060811101327]=20=0A[use=20"Defined=20in"=20= rather=20than=20"Imported=20from"=20when=20printing=20ImportedSrcLoc=0A= Simon=20Marlow=20<[email protected]>**20060811101159]=20=0A[Now=20= that=20we=20have=20an=20"html"=20package,=20put=20the=20Haddock=20docs=20= [email protected]**20060811092609]=20=0A[Nuked=20= hschooks.h=20in=20favour=20of=20cutils.h,=20which=20has=20the=20= [email protected]**20060810154225]=20=0A= [Match=20format=20strings=20and=20arguments=20for=20printf-like=20= [email protected]**20060810153624]=20=0A[Warning=20= police:=20Make=20prototype=20for=20LDV_recordDead_FILL_SLOP_DYNAMIC=20= [email protected]**20060810144837]=20=0A[Warning=20police:=20= Make=20strlen=20and=20friends=20known=0A= [email protected]**20060810144729]=20=0A[Tweak=20GCC's=20inlining=20= parameters=20to=20get=20thread_obj=20inlined=0A= [email protected]**20060810144505]=20=0A[Add=20an=20IAmDead=20case=20= to=20postInlineUnconditionally,=20and=20comments=0A= [email protected]**20060810142034]=20=0A[Do=20not=20repeatedly=20= simplify=20an=20argument=20more=20than=20once=0A= [email protected]**20060810141526=0A=20=0A=20A=20very=20important=20= invariant=20of=20the=20simplifier=20is=20that=20we=20do=20not=20simplify=0A= =20an=20arbitrarily=20large=20expression=20more=20than=20once=20in=20a=20= single=20pass.=20If=20this=0A=20can=20happen,=20then=20we=20can=20get=20= exponential=20behaviour,=20when=20the=20large=20expression=0A=20itself=20= has=20a=20large=20sub-expression=20which=20is=20simplified=20twice,=20= and=20so=20on.=0A=20=0A=20GHC=20has=20a=20long-standing=20bug=20which=20= allows=20this=20repeated=20simplification=20to=20=0A=20happen.=20=20It=20= shows=20up=20when=20we=20have=20a=20function=20like=20this=0A=20=0A=20=09= f=20d=20BIG=0A=20where=20f's=20unfolding=20looks=20like=0A=20=09\x=20->=20= case=20x=20of=20(a,b)=20->=20a=0A=20Of=20course=20this=20is=20v=20common=20= for=20overloaded=20functions.=0A=20=0A=20Before=20this=20patch=20we=20= simplified=20all=20the=20args=20(d=20and=20BIG)=20before=0A=20deciding=20= to=20unfold=20f.=20=20Then=20we=20push=20back=20the=20simplified=20BIG=20= onto=20the=0A=20continuation=20stack,=20inline=20f,=20so=20now=20we=20= have=0A=20=09(case=20d=20of=20(a,b)=20->=20a)=20BIG=0A=20After=20we=20= reduce=20the=20case=20a=20bit,=20we'll=20simplify=20BIG=20a=20second=20= time.=20=20And=0A=20that's=20the=20problem.=0A=20=0A=20The=20= quick-and-dirty=20solution=20is=20to=20keep=20a=20flag=20in=20the=20= ApplyTo=20continuation=0A=20to=20say=20whather=20the=20arg=20has=20= already=20been=20simplified.=20=20An=20alternative=20would=0A=20be=20to=20= simplify=20it=20when=20first=20encountered,=20but=20that's=20a=20bigger=20= change.=0A=20=0A=20=0A]=20=0A[Do=20not=20call=20preInlineUnconditionally=20= [email protected]**20060810141340=0A=20=0A=20= This=20looks=20to=20me=20like=20a=20long-standing=20bug.=20simplNonRecX=20= was=20calling=0A=20preInlineUnconditionally,=20even=20though=20it=20was=20= given=20an=20already-simplified=0A=20expression.=20=20Exponential=20= behaviour=20beckons.=0A=20=0A]=20=0A[Make=20postInlineUnconditaionally=20= [email protected]**20060810141145=0A=20=0A=20= I'm=20being=20more=20paranoid=20about=20repeatedly=20simplifying=20= things=20(to=20avoid=0A=20exponential=20behaviour.)=20=20= postInlineUnconditionally=20looks=20as=20if=20it=0A=20could=20repeated=20= simplify=20the=20same=20expression;=20this=20patch=20stops=20it=20doing=0A= =20so.=0A=20=0A=20The=20extra=20lines=20are=20all=20comments!=0A=20=0A=20= =0A]=20=0A[Control.Exception.unblock=20wasn't=20unblocking=20exceptions=0A= Simon=20Marlow=20<[email protected]>**20060810132307]=20=0A[remove=20= out=20of=20date=20comment=0ASimon=20Marlow=20= <[email protected]>**20060810130154]=20=0A[move=20html=20before=20= network,=20for=20now=0ASimon=20Marlow=20= <[email protected]>**20060810121930]=20=0A[add=20html=20package=0A= Simon=20Marlow=20<[email protected]>**20060810113719]=20=0A= [Egregious=20bug=20in=20tcLHsConResTy=0A= [email protected]**20060810120828=0A=20=0A=20This=20terrible=20bug=20= in=20tcLHsConTy=20is=20pretty=20much=20guaranteed=20to=20show=20up=0A=20= on=20an=20program=20involving=20a=20GADT=20with=20more=20than=20one=20= type=20parameter.=0A=20=0A=20This=20bug=20isn't=20present=20in=20the=20= STABLE=20branch.=0A=20=0A=20Manuel:=20it=20is=20*not*=20necesary=20to=20= merge=20this=20patch=20into=20the=20FC=20branch;=20=0A=20just=20ignore=20= it.=0A=20=0A]=20=0A[Comments=20about=20improvements=20to=20SpecConstr=0A= [email protected]**20060810120759]=20=0A[Remove=20HasBounds-instance=20= and=20implement=20MArray.getBounds=20instead=0AEsa=20Ilari=20Vuokko=20= <[email protected]>**20060809163012]=20=0A[Fix=20Array=20imports=0AEsa=20= Ilari=20Vuokko=20<[email protected]>**20060809161341]=20=0A[Where=20we=20= use=20$(GhcHcOpts),=20also=20add=20$(GhcStage1HcOpts)=0ASimon=20Marlow=20= <[email protected]>**20060809144845=0A=20This=20fixes=20building=20= the=20compiler=20with=20-prof=20in=20$(GhcStage1HcOpts)=0A]=20=0A[fixes=20= to=20the=20stage2=20build=20following=20removal=20of=20old=20FFI=20= syntax=0ASimon=20Marlow=20<[email protected]>**20060809143153]=20=0A= [fix=20bug=20in=20task=20freeing=0ASimon=20Marlow=20= <[email protected]>**20060809141225]=20=0A[add=20some=20more=20= options=20to=20stage=202=0ASimon=20Marlow=20= <[email protected]>**20060809141058]=20=0A[remove=20debugging=20= code=20accidentally=20left=20in=0ASimon=20Marlow=20= <[email protected]>**20060809102936]=20=0A[remember=20that=20old=20= FFI=20syntax=20has=20been=20dropped=0ASimon=20Marlow=20= <[email protected]>**20060809101655]=20=0A[only=20define=20GHCI=20= if=20$(GhcWithInterpreter)=3DYES,=20also=20add=20-threaded=0ASimon=20= Marlow=20<[email protected]>**20060809101634]=20=0A[move=20altzone=20= test=20to=20base=20package=0ARoss=20Paterson=20= <[email protected]>**20060809124215]=20=0A[remove=20unused=20= FPTOOLS_CHECK_HTYPE=20macro=0ARoss=20Paterson=20= <[email protected]>**20060809124036]=20=0A[Remove=20the=20artifical=20= cap=20on=20the=20number=20of=20workers=0ASimon=20Marlow=20= <[email protected]>**20060809095908=0A=20See=20#805.=20=20This=20= was=20here=20to=20catch=20bugs=20that=20resulted=20in=20an=20infinite=0A=20= number=20of=20worker=20threads=20being=20created.=20=20However,=20we=20= can't=20put=20a=0A=20reasonable=20bound=20on=20the=20number=20of=20= worker=20threads,=20because=20legitimate=0A=20programs=20may=20need=20to=20= create=20large=20numbers=20of=20(probably=20blocked)=20worker=0A=20= threads.=20=20Furthermore,=20the=20OS=20probably=20has=20a=20bound=20on=20= the=20number=20of=0A=20threads=20that=20a=20process=20can=20create=20in=20= any=20case.=0A=20=0A=20=0A=20=0A]=20=0A[Remove=20old=20FFI=20syntax=0A= Simon=20Marlow=20<[email protected]>**20060809095201=0A=20See=20= #815=0A]=20=0A[make=20exit()=20overridable,=20for=20use=20in=20DLLs=0A= Simon=20Marlow=20<[email protected]>**20060809092439=0A=20See=20= #753=0A]=20=0A[More=20fixes=20to=20pre-matching=20and=20pre-subsumption=0A= [email protected]**20060808224924=0A=20=0A=20Actually=20this=20patch=20= fixes=20two=20errors.=20one=20was=20a=20trivial=20typo=20in=20=0A=20tha=20= last=20patch=20(b_ty=20should=20be=20b_tau),=20which=20led=20to=20an=20= infinite=20loop=0A=20when=20compiling=20Data.Generic.Twins.=20=20=0A=20=0A= =20Fixing=20that=20revealed=20a=20more=20serious=20error=20in=20the=20= same=20function.=0A=20I=20was=20sloppy=20about=20dealing=20robsutly=20= with=20name-capture=20for=20nested=0A=20quantifiers=20in=20= pre-subsumption=20and=20pre-matching;=20and=20sure=20enough=0A=20I=20got=20= bitten.=20=20Sigh.=20=20I=20think=20it=20is=20right=20now.=0A=20=0A]=20=0A= [Group=20exports=20so=20that=20all=20length=20functions=20are=20= together;=20no=20semantic=20change=0A= [email protected]**20060808224808]=20=0A[Check=20that=20lazy=20= patterns=20are=20for=20lifted=20types=0A= [email protected]**20060808135910=0A=20=0A=20A=20lazy=20pattern=20= match=20must=20be=20for=20a=20lifted=20type.=20This=20is=20illegal:=0A=20= =0A=20=09f=20x=20=3D=20case=20g=20x=20of=20=0A=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20~(#=20x,y=20#)=20->=20...=0A=20=0A=20This=20= commit=20fixes=20the=20problem.=20=20Trac=20#845,=20test=20is=20= tcfail159=0A=20=20=0A]=20=0A[Spelling=20in=20a=20comment=0A= [email protected]**20060808123514]=20=0A[Remove=20= srcSpanStartLine/srcSpanEndLine=20crash=0A= [email protected]**20060808123211=0A=20=0A=20= srcSpanStartLine/srcSpanEndLine=20panic=20on=20UnhelpfulLoc.=20They=20= should=20not=0A=20really=20be=20exported=20by=20SrcLoc=20at=20all,=20but=20= unfortunately=20they=20are=20used=20in=0A=20Lexer.x,=20which=20knows=20= enough=20to=20avoid=20the=20panic.=0A=20=0A=20However=20the=20call=20in=20= RnEnv=20didn't=20know,=20and=20the=20panic=20was=20triggered=20=0A=20by=20= Template=20Haskell=20spliced=20code.=20=20This=20patch=20fixes=20it=20by=20= exporting=0A=20the=20predicate=20RnEnv=20wanted,=20namely=20= isOneLineSpan.=0A=20=0A]=20=0A[Replace=20deprecated=20AC_TRY_COMPILE=20= macro=20with=20the=20reccomended=20replcament=0ADuncan=20Coutts=20= <[email protected]>**20060706114902=0A=20See:=20= http://www.gnu.org/software/autoconf/manual/html_node/Obsolete-Macros.html= =0A]=20=0A[Add=20ghc=20and=20version=20number=20in=20.ident=20directive=20= in=20NCG=0ADuncan=20Coutts=20= <[email protected]>**20060706114712=0A=20Just=20because=20we=20= can=20and=20because=20every=20other=20compiler=20does,=0A=20lets=20stick=20= in=20an=20identifier=20directive:=20.ident=20"GHC=20x.y.z"=0A=20into=20= the=20assembly=20output=20of=20the=20NCG.=0A]=20=0A[Support=20the=20GNU=20= non-exec=20stack=20annotation=20system=0ADuncan=20Coutts=20= <[email protected]>**20060706114331=0A=20On=20recent=20GNU=20= ELF=20systems=20one=20can=20mark=20an=20object=20file=20as=20not=0A=20= requiring=20an=20executable=20stack.=20If=20all=20objects-=20linked=20= into=20a=0A=20program=20have=20this=20note=20then=20the=20program=20will=20= not=20use=20an=20executable=0A=20stack,=20which=20is=20good=20for=20= security=20(and=20some=20distros=20have=20it=20as=20a=0A=20QA=20policy).=20= GHC=20generated=20code=20does=20not=20need=20an=20executable=20stack=0A=20= so=20add=20the=20note=20to=20the=20assembly=20output=20of=20the=20native=20= code=0A=20generator=20(conditional=20on=20a=20configure=20test).=0A]=20=0A= [Complain=20more=20loudly=20if=20any=20of=20the=20hsc2hs=20phases=20fail=0A= Duncan=20Coutts=20<[email protected]>**20060703234356=0A=20= previously=20hsc2hs=20just=20exits=20with=20a=20non-zero=20exit=20code,=20= now=20if=20any=20of=0A=20the=20compilation,=20linking=20or=20runing=20= phases=20fail=20then=20we=20get=20a=20message=0A=20saying=20so=20and=20= the=20failing=20command=20is=20printed.=0A]=20=0A[Remember=20to=20free()=20= memory=20on=20exit=0ASimon=20Marlow=20= <[email protected]>**20060808103110=0A=20Patch=20mostly=20from=20= Lennart=20Augustsson=20in=20#803,=20with=20additions=20to=0A=20Task.c=20= by=20me.=0A]=20=0A[Fix=20pre-subsumption=20and=20pre-matching=0A= [email protected]**20060808091108=0A=20=0A=20The=20pre-subsuption=20= and=20pre-matching=20functions=20should=20NEVER=20make=20bogus=0A=20= bindings=20of=20type=20variables,=20although=20they=20are=20free=20to=20= bale=20out=20and=20make=0A=20too=20few=20bindings.=0A=20=0A=20I=20hadn't=20= been=20thiking=20carefully=20enough=20about=20this,=20and=20there=20were=20= two=0A=20separate=20bugs.=20=20=0A=20=0A=20-=20Firstly,=20in=20= pre-subsumption=20we=20must=20ignore=20the=20'theta'=0A=20=20=20part=20= of=20any=20overloaded=20type.=20=20=0A=20=0A=20-=20Second,=20in=20= pre-matching,=20we=20must=20return=20the=20empty=20subustition=20=0A=20=20= =20on=20a=20mis-match,=20rather=20than=20returning=20the=20substitution=20= so=20far.=0A=20=0A=20This=20bug=20showed=20up=20when=20compiling=20= Data.Generics.Schemes.hs,=20and=20is=0A=20imortalised=20in=20test=20= tc206=0A=20=0A]=20=0A[Improve=20error=20message=0A= [email protected]**20060808080255=0A=20=0A=20Improve=20a=20= little-used=20error=20message.=20=20Given=0A=20=09f=20::=20a=20->=20a=0A=20= =09f=20x=20y=20=3D=20e=0A=20the=20error=20says=20=0A=20=0A=20=09The=20= equations=20for=20f=20have=20two=20arguments=0A=20=09but=20its=20type=20= `a=20->=20a'=20has=20only=20one=0A=20=0A=20(Before,=20it=20said=20"its=20= type=20`a'=20has=20only=20one"=20which=20is=20bogus.=0A=20=0A]=20=0A= [Pull=20out=20common=20removal=20code,=20and=20detect=20does-not-exist=20= correctly=0AIan=20Lynagh=20<[email protected]>**20060710214308]=20=0A= [Create=20our=20own=20directory=20in=20the=20temporary=20directory=20to=20= avoid=20various=20races=0AIan=20Lynagh=20= <[email protected]>**20060710204424]=20=0A[Merge=20SysTools=20import=20= declarations=0AIan=20Lynagh=20<[email protected]>**20060709183850]=20=0A= [Don't=20freeze=20the=20dynamic=20flags=20used=20for=20filename=20= generation=20before=20the=20pipeline=20starts=0AIan=20Lynagh=20= <[email protected]>**20060709145101]=20=0A[#807:=20Removed=20double=20= fclose=20of=20prof_file=0AIan=20Lynagh=20= <[email protected]>**20060708152424=0A=20prof_file=20was=20being=20fclose'd=20= in=20both=20gen_XML_logfile=20and=20hs_exit,=20leading=0A=20to=20glibc=20= complaining=20of=20a=20double=20free.=0A]=20=0A[Add=20= -fextended-default-rules=20and=20-fmono-pat-binds=0A= [email protected]**20060807112107=0A=20=0A=20Add=20= -fextended-deafult-rules=20(in=20response=20to=20Don=20Stewart's=20= message=20below),=0A=20and=20document=20them.=0A=20=0A=20Also=20= doucument=20-fmono-pat-binds/-fno-mono-pat-binds,=20which=20has=20been=20= in=20=0A=20GHC=20a=20few=20weeks=20now.=20=0A=20=0A=20(The=20two=20are=20= in=20one=20patch=20because=20the=20diffs=20were=20so=20close=20together=0A= =20that=20Darcs=20combined=20them.)=0A=20=0A=20Simon=0A=20=0A=20=0A=20= From:=20Donald=20Bruce=20Stewart=20[mailto:[email protected]]=20=0A=20= Sent:=2007=20August=202006=2010:52=0A=20=0A=20While=20we're=20thinking=20= about=20defaulting,=20I=20have=20a=20question..=0A=20=0A=20ghci=20uses=20= an=20extended=20defaulting=20system,=20to=20allow=20things=20like:=0A=20=20= =20=20=20=20=20=20=20Prelude>=20reverse=20[]=0A=20=20=20=20=20=20=20=20=20= []=0A=20to=20work,=20and=20to=20have=20the=20right=20instance=20of=20= Show=20found.=20The=20manual=20says:=0A=20=0A=20=20=20=20=20"..it=20is=20= tiresome=20for=20the=20user=20to=20have=20to=20specify=20the=20type,=20= so=20GHCi=20extends=0A=20=20=20=20=20Haskell's=20type-defaulting=20rules=20= (Section=204.3.4=20of=20the=20Haskell=2098=20Report=0A=20=20=20=20=20= (Revised))=20as=20follows.=20If=20the=20expression=20yields=20a=20set=20= of=20type=20constraints=0A=20=20=20=20=20that=20are=20all=20from=20= standard=20classes=20(Num,=20Eq=20etc.),=20and=20at=20least=20one=20is=0A= =20=20=20=20=20either=20a=20numeric=20class=20or=20the=20Show,=20Eq,=20= or=20Ord=20class,=20GHCi=20will=20try=20to=20use=0A=20=20=20=20=20one=20= of=20the=20default=20types,=20just=20as=20described=20in=20the=20Report.=20= The=20standard=0A=20=20=20=20=20defaulting=20rules=20require=20that=20= one=20of=20the=20classes=20is=20numeric;=20the=20difference=0A=20=20=20=20= =20here=20is=20that=20defaulting=20is=20also=20triggered=20at=20least=20= one=20is=20Show,=20Eq,=20or=20Ord."=0A=20=0A=20Currently,=20there=20is=20= no=20way=20to=20get=20at=20this=20"extended"=20defaulting=20for=20= compiled=0A=20modules.=20However,=20I=20have=20a=20use=20case=20for=20in=20= fact=20doing=20this.=0A=20=0A=20With=20runtime=20evaluated=20Haskell,=20= embedding=20'interpreters'=20(over=20hs-plugins)=20is=0A=20easy.=20= lambdabot,=20for=20example,=20implements=20a=20sandboxed=20haskell=20= eval=20system.=20But=0A=20it=20doesn't=20have=20access=20to=20the=20= defaulting=20mechanism=20of=20ghci,=20so=20we=20have:=0A=20=0A=20=20=20=20= =20dons::=20>=20reverse=20[]=0A=20=20=20=20=20lambdabot::=20Add=20a=20= type=20signature=0A=20=20=20=20=20dons::=20>=20reverse=20[]=20::=20[()]=0A= =20=20=20=20=20lambdabot::=20[]=0A=20=0A=20Which=20is=20annoying=20--=20= newbies=20wonder=20why=20they=20have=20to=20add=20these=20extra=0A=20= constraints=20to=20get=20a=20Show=20instance.=0A=20=0A=20I'm=20= wondering,=20since=20the=20extended=20defaulting=20mechanisms=20are=20= already=0A=20implemented,=20could=20they=20be=20made=20available=20to=20= compiled=20modules=20as=20well,=0A=20perhaps=20using=20a=20flag,=20= -fextended-defaulting?=20=0A=20=0A]=20=0A[add=20a=20comment=0ASimon=20= Marlow=20<[email protected]>**20060807143102]=20=0A[Do=20= pre-subsumption=20in=20the=20main=20subsumption=20check=0A= [email protected]**20060804214942=0A=20=0A=20This=20patch=20improves=20= the=20subsumption=20check=20(in=20TcUnify.tc_sub)=20so=20that=0A=20it=20= does=20pre-subsumption=20first.=20=20The=20key=20code=20is=20in=20the=20= case=20with=0A=20guard=20(isSigmaTy=20actual_ty);=20note=20the=20new=20= call=20to=20preSubType.=0A=20=0A=20Shorn=20of=20details,=20the=20= question=20is=20this.=20=20Should=20this=20hold?=0A=20=0A=20=09forall=20= a.=20a->a=20=20=20<=3D=20=20=20Int=20->=20(forall=20b.=20Int)=0A=20=0A=20= Really,=20it=20should;=20just=20instantiate=20'a'=20to=20Int.=20=20This=20= is=20just=20what=0A=20the=20pre-subsumption=20phase=20(which=20used=20in=20= function=20applications),=0A=20will=20do.=0A=20=0A=20I=20did=20a=20bit=20= of=20refactoring=20to=20achieve=20this.=0A=20=0A=20Fixes=20Trac=20#821.=20= =20Test=20tc205=20tests.=0A=20=0A]=20=0A[Make=20unification=20robust=20= to=20a=20boxy=20type=20variable=20meeting=20itself=0A= [email protected]**20060801214302=0A=20=0A=20Previously,=20the=20= implicit=20assumption=20in=20unification=20is=20that=20a=20boxy=0A=20= type=20variable=20could=20never=20occur=20on=20both=20sides=20of=20the=20= unification,=0A=20so=20that=20we'd=20never=20find=20=0A=20=09bx5=20:=3D:=20= bx5=0A=20=0A=20But=20the=20pre-subsumption=20stuff=20really=20means=20= that=20the=20same=20variable=0A=20can=20occur=20on=20both=20sides.=20=20= Consider=0A=20=09forall=20a.=20a->Int=20<=3D=20bx5->Int=0A=20Then=20= pre-subumption=20will=20find=20a->bx5;=20and=20the=20full=20subsumption=20= step=20=0A=20will=20find=20bx5:=3Dbx5.=0A=20=0A=20However,=20I=20think=20= there=20is=20still=20no=20possiblity=20of=20a=20full=20occurs-check=0A=20= failure;=20that=20is,=20=0A=20=09bx5=20:=3D:=20Tree=20bx5=0A=20Although=20= I=20can't=20quite=20see=20how=20to=20prove=20it!=20=20So=20I've=20added=20= a=0A=20DEBUG=20test=20in=20uMetaVar=20to=20check=20for=20this=20case.=0A=20= =0A]=20=0A[[email protected]**20060804142149]=20= =0A[Don't=20include=20the=20package=20name=20in=20a=20cost=20centre's=20= module=20name=0ASimon=20Marlow=20= <[email protected]>**20060803093337=0A=20This=20is=20mainly=20to=20= restore=20the=20old=20behaviour,=20but=20also=20we=20shouldn't=0A=20= normally=20need=20the=20package=20name=20in=20a=20cost=20centre=20= because=20only=20the=0A=20"main"=20package=20normally=20has=20cost=20= centres.=0A]=20=0A[Add=20a=20new=20section=20"Getting=20the=20Source"=20= to=20both=20HACKING=20and=20README.=20But=20what=20about=20win32=20= [email protected]**20060720152929]=20=0A[savingOldConfig:=20= add=20Exception.block=20for=20extra=20paranoia=0ASimon=20Marlow=20= <[email protected]>**20060801131027=0A=20=0A]=20=0A[Refactor=20= ghc-pkg=0AIan=20Lynagh=20<[email protected]>**20060729192946=0A=20This=20= patch=20fixes=20a=20couple=20of=20issues=20with=20the=0A=20=20=20=20=20= Be=20lazier=20in=20user=20config=20creation,=20and=20don't=20fail=20on=20= missing=20configs.=0A=20patch.=20It=20puts=20the=20= createDirectoryIfMissing=20back=20in=20and=20removes=20assumptions=0A=20= that=20the=20package.conf=20file=20already=20exists.=0A]=20=0A[No=20= functionality=20changes=0AIan=20Lynagh=20= <[email protected]>**20060730105256=0A=20Consistently=20used=20spaces=20= rather=20than=20tabs.=0A=20Removed=20trailing=20whitespace.=0A=20Wrapped=20= comments=20to=20fit=20in=20a=20standard=20terminal.=0A]=20=0A[Add=20= [email protected]**20060731080922]=20=0A= [.hi-boot-5=20is=20obsolete;=20the=20earliest=20GHC=20we=20support=20= uses=20.hi-boot-6=0ASimon=20Marlow=20= <[email protected]>**20060728140809=0A=20=0A=20=0A]=20=0A[update=20= to=20match=20.lhs-boot=0ASimon=20Marlow=20= <[email protected]>**20060728140607]=20=0A[get=20ReadP=20from=20the=20= right=20place.=0ASimon=20Marlow=20= <[email protected]>**20060728140444=0A=20=0A]=20=0A[Improve=20error=20= [email protected]**20060727160832]=20=0A= [Lazy=20patterns=20are=20like=20wild-cards=20for=20overlap=20warnings=0A= [email protected]**20060727155009=0A=20=0A=20=09MERGE=20TO=20STABLE=0A= =20=0A=20Fixes=20Trac=20#827=0A=20Test=20is=20should_compiler/ds058=0A=20= =0A]=20=0A[fix=20some=20problems=20with=20wired-in=20packages=0ASimon=20= Marlow=20<[email protected]>**20060727153802]=20=0A[oops,=20remove=20= old=20packages=20when=20updating=0ASimon=20Marlow=20= <[email protected]>**20060727150650]=20=0A[fix=20symbols=20for=20= GHC.PrimopWrappers=0ASimon=20Marlow=20= <[email protected]>**20060727134755]=20=0A[a=20couple=20more=20= symbols=20need=20package=20names=0ASimon=20Marlow=20= <[email protected]>**20060727102129]=20=0A[Add=20missing=20import=0A= [email protected]**20060727085605]=20=0A[Make=20-fcontext-stack=20= [email protected]**20060727080422=0A=20=0A= =20=20=20This=20allows=20you=20to=20put=20-fcontext-stack=20into=20an=20= options=20pragma,=0A=20=20=20as=20requested=20by=20Trac=20#829=0A=20=20=20= =0A=20=20=20While=20I=20was=20at=20it,=20I=20added=20OptIntPrefix=20to=20= the=20forms=20allowed=0A=20=20=20in=20CmdLineParser.=0A=20=0A]=20=0A= [Deal=20correctly=20with=20infix=20type=20constructors=20in=20GADT=20= [email protected]**20060726225304]=20=0A[Improve=20pretty=20= [email protected]**20060726225223]=20=0A= [fix=20parse=20error=20(merge-o,=20I=20think)=0ASimon=20Marlow=20= <[email protected]>**20060726103526]=20=0A[fix=20DEBUG=20build=0A= Simon=20Marlow=20<[email protected]>**20060726103433]=20=0A[missed=20= one=20symbol=20that=20needs=20a=20package=20name=0ASimon=20Marlow=20= <[email protected]>**20060726085844]=20=0A[change=20wired-in=20= Haskell=20symbols=20to=20include=20the=20package=20name=0ASimon=20Marlow=20= <[email protected]>**20060726084659]=20=0A[Unbox=20the=20Unique=20= stored=20in=20a=20Name=0ASimon=20Marlow=20= <[email protected]>**20060725141747=0A=20I=20measured=20that=20this=20= makes=20the=20comiler=20allocate=20a=20bit=20more,=20but=20it=0A=20might=20= also=20make=20it=20faster=20and=20reduce=20residency.=20=20The=20extra=20= allocation=0A=20is=20probably=20just=20because=20we're=20not=20inlining=20= enough=20somewhere,=20so=20I=0A=20think=20this=20change=20is=20a=20step=20= in=20the=20right=20direction.=0A]=20=0A[optimisations=20to=20newUnique=0A= Simon=20Marlow=20<[email protected]>**20060725140816=0A=20=0A=20It=20= turned=20out=20that=20newUnique=20was=20wasting=20one=20node=20of=20the=20= splittable=0A=20uniq=20supply=20per=20invocation:=20it=20took=20the=20= current=20supply,=20split=20it,=20used=0A=20the=20unique=20from=20one=20= half=20and=20stored=20the=20other=20half=20in=20the=20monad.=20=20In=0A=20= other=20words,=20the=20unique=20in=20the=20supply=20stored=20in=20the=20= monad=20was=20never=0A=20used.=20=20=0A=20=0A=20This=20optimisation=20= fixes=20that=20and=20adds=20a=20bit=20of=20strictness,=20which=0A=20= together=20lead=20to=20small=20reduction=20in=20allocations=20by=20the=20= compiler,=20and=0A=20possibly=20an=20improvement=20in=20residency=20= (hard=20to=20tell=20for=20sure=20when=20GCs=0A=20move=20around).=0A]=20=0A= [tiny=20bit=20of=20extra=20strictness=0ASimon=20Marlow=20= <[email protected]>**20060725131201]=20=0A[Make=20a=20= SplitUniqSupply=20contain=20an=20Int#=20rather=20than=20an=20Int=0ASimon=20= Marlow=20<[email protected]>**20060725120252=0A=20The=20I#=20= constructor=20is=20always=20removed=20when=20we=20make=20a=20unique=20= later=0A=20anyway,=20so=20this=20just=20saves=20a=20bit=20of=20time=20= and=20allocation.=0A]=20=0A[Use=20-package-name=20rather=20than=20= -ignore-package=0ASimon=20Marlow=20= <[email protected]>**20060725130913]=20=0A[Remove=20most=20of=20the=20= conflict=20checking=20and=20auto-hiding=0ASimon=20Marlow=20= <[email protected]>**20060725130850=0A=20Now=20that=20the=20module=20= restriction=20has=20been=20lifted,=20the=20auto-hiding=20is=0A=20mostly=20= not=20required.=20=20GHC=20itself=20automatically=20hides=20old=20= versions=20of=20a=0A=20package.=0A]=20=0A[Generalise=20Package=20Support=0A= Simon=20Marlow=20<[email protected]>**20060725130154=0A=20=0A=20= This=20patch=20pushes=20through=20one=20fundamental=20change:=20a=20= module=20is=20now=0A=20identified=20by=20the=20pair=20of=20its=20package=20= and=20module=20name,=20whereas=0A=20previously=20it=20was=20identified=20= by=20its=20module=20name=20alone.=20=20This=20means=0A=20that=20now=20a=20= program=20can=20contain=20multiple=20modules=20with=20the=20same=20name,=20= as=0A=20long=20as=20they=20belong=20to=20different=20packages.=0A=20=0A=20= This=20is=20a=20language=20change=20-=20the=20Haskell=20report=20says=20= nothing=20about=0A=20packages,=20but=20it=20is=20now=20necessary=20to=20= understand=20packages=20in=20order=20to=0A=20understand=20GHC's=20module=20= system.=20=20For=20example,=20a=20type=20T=20from=20module=20M=0A=20in=20= package=20P=20is=20different=20from=20a=20type=20T=20from=20module=20M=20= in=20package=20Q.=0A=20Previously=20this=20wasn't=20an=20issue=20because=20= there=20could=20only=20be=20a=20single=0A=20module=20M=20in=20the=20= program.=0A=20=0A=20The=20"module=20restriction"=20on=20combining=20= packages=20has=20therefore=20been=0A=20lifted,=20and=20a=20program=20can=20= contain=20multiple=20versions=20of=20the=20same=0A=20package.=0A=20=0A=20= Note=20that=20none=20of=20the=20proposed=20syntax=20changes=20have=20yet=20= been=0A=20implemented,=20but=20the=20architecture=20is=20geared=20= towards=20supporting=20import=0A=20declarations=20qualified=20by=20= package=20name,=20and=20that=20is=20probably=20the=20next=0A=20step.=0A=20= =0A=20It=20is=20now=20necessary=20to=20specify=20the=20package=20name=20= when=20compiling=20a=0A=20package,=20using=20the=20-package-name=20flag=20= (which=20has=20been=20un-deprecated).=0A=20Fortunately=20Cabal=20still=20= uses=20-package-name.=0A=20=0A=20Certain=20packages=20are=20"wired=20= in".=20=20Currently=20the=20wired-in=20packages=20are:=0A=20base,=20= haskell98,=20template-haskell=20and=20rts,=20and=20are=20always=20= referred=20to=0A=20by=20these=20versionless=20names.=20=20Other=20= packages=20are=20referred=20to=20with=20full=0A=20package=20IDs=20(eg.=20= "network-1.0").=20=20This=20is=20because=20the=20compiler=20needs=0A=20= to=20refer=20to=20entities=20in=20the=20wired-in=20packages,=20and=20we=20= didn't=20want=20to=0A=20bake=20the=20version=20of=20these=20packages=20= into=20the=20comiler.=20=20It's=20conceivable=0A=20that=20someone=20= might=20want=20to=20upgrade=20the=20base=20package=20independently=20of=0A= =20GHC.=0A=20=0A=20Internal=20changes:=0A=20=0A=20=20=20-=20There=20are=20= two=20module-related=20types:=0A=20=0A=20=20=20=20=20=20=20=20=20= ModuleName=20=20=20=20=20=20just=20a=20FastString,=20the=20name=20of=20a=20= module=0A=20=20=20=20=20=20=20=20=20Module=20=20=20=20=20=20=20=20=20=20= a=20pair=20of=20a=20PackageId=20and=20ModuleName=0A=20=0A=20=20=20=20=20= A=20mapping=20from=20ModuleName=20can=20be=20a=20UniqFM,=20but=20a=20= mapping=20from=20Module=0A=20=20=20=20=20must=20be=20a=20FiniteMap=20(we=20= provide=20it=20as=20ModuleEnv).=0A=20=0A=20=20=20-=20The=20"HomeModules"=20= type=20that=20was=20passed=20around=20the=20compiler=20is=20now=0A=20=20=20= =20=20gone,=20replaced=20in=20most=20cases=20by=20the=20current=20= package=20name=20which=20is=0A=20=20=20=20=20contained=20in=20DynFlags.=20= =20We=20can=20tell=20whether=20a=20Module=20comes=20from=20the=0A=20=20=20= =20=20current=20package=20by=20comparing=20its=20package=20name=20= against=20the=20current=0A=20=20=20=20=20package.=0A=20=0A=20=20=20-=20= While=20I=20was=20here,=20I=20changed=20PrintUnqual=20to=20be=20a=20= little=20more=20useful:=0A=20=20=20=20=20it=20now=20returns=20the=20= ModuleName=20that=20the=20identifier=20should=20be=20qualified=0A=20=20=20= =20=20with=20according=20to=20the=20current=20scope,=20rather=20than=20= its=20original=0A=20=20=20=20=20module.=20=20Also,=20PrintUnqual=20tells=20= whether=20to=20qualify=20module=20names=20with=0A=20=20=20=20=20package=20= names=20(currently=20unused).=0A=20=0A=20Docs=20to=20follow.=0A]=20=0A= [comment=20formatting=0ASimon=20Marlow=20= <[email protected]>**20060725110519=0A=20=0A]=20=0A[unused=20import=0A= Simon=20Marlow=20<[email protected]>**20060706141349]=20=0A[unused=20= import=0ASimon=20Marlow=20<[email protected]>**20060706141205]=20=0A= [remove=20more=20Addr=20bits=0ASimon=20Marlow=20= <[email protected]>**20060704151217]=20=0A[unused=20import=0ASimon=20= Marlow=20<[email protected]>**20060704141319]=20=0A[add=20default=20= cases=0ASimon=20Marlow=20<[email protected]>**20060704135444]=20=0A= [redundant=20import=0ASimon=20Marlow=20= <[email protected]>**20060704135435]=20=0A[unused=20imports=0ASimon=20= Marlow=20<[email protected]>**20060704135117]=20=0A[unused=20import=0A= Simon=20Marlow=20<[email protected]>**20060704134557]=20=0A[remove=20= unused=20bits,=20mostly=20to=20do=20with=20the=20Addr=20type=0ASimon=20= Marlow=20<[email protected]>**20060704124912]=20=0A[In=20interface=20= files,=20store=20FastStrings=20rather=20than=20OccNames=20where=20= possible=0ASimon=20Marlow=20<[email protected]>**20060724154826=0A=20= In=20all=20cases=20the=20namespace=20is=20known=20from=20the=20context,=20= so=20this=20saves=201=0A=20byte=20per=20variable=20binding/occurrence=20= (a=20few=20percent=20per=20iface=20file).=0A]=20=0A[Add=20= -fmono-pat-binds,=20and=20make=20it=20the=20default=0A= [email protected]**20060722102245=0A=20=0A=20In=20Haskell=2098,=20= pattern=20bindings=20are=20generalised.=20=20Thus=20in=0A=20=09(f,g)=20=3D= =20(\x->x,=20\y->y)=0A=20both=20f=20and=20g=20will=20get=20polymorphic=20= types.=20=20I=20have=20become=20convinced=0A=20that=20generalisation=20= for=20pattern-bound=20variables=20is=20just=20a=20bridge=0A=20toof=20= far.=20It=20is=20(I=20claim)=20almost=20never=20needed,=20and=20it=20= adds=20significant=0A=20complication.=20=20(All=20the=20more=20so=20if=20= we=20add=20bang=20patterns.)=0A=20=0A=20So=20the=20flag=20= -fmono-pat-binds=20switches=20off=20generalisation=20for=20pattern=0A=20= bindings.=20=20(A=20single=20variable=20is=20treated=20as=20a=20= degnerate=20funtction=0A=20binding.)=20=20=0A=20=0A=20Furthremore,=20as=20= an=20experiment,=20I'm=20making=20it=20the=20default.=20=20I=20want=0A=20= to=20see=20how=20many=20progarms=20fail=20with=20monomorphic=20pattern=20= bindings.=0A=20=0A=20You=20can=20recover=20the=20standard=20behaviour=20= with=20-fno-mono-pa-binds.=0A=20=0A]=20=0A[Fix=20RULES=20lossage=0A= [email protected]**20060722101756=0A=20=0A=20Don=20Stewart=20and=20= Duncan=20Coutts=20encountered=20the=20following=20situation.=0A=20=09f=20= =3D=20<rhs>=0A=20=09{-#=20RULES=20f=20...=20#-}=0A=20where=20f=20is=20= not=20exported,=20but=20appears=20in=20the=20inlinings=20of=20other=0A=20= functions=20that=20are=20exported.=20=20Then=20what=20happened=20was=20= that=20the=20desugarer=0A=20produced=20this:=0A=20=09M.f=20=3D=20f=0A=20=09= f=20=3D=20<rhs>=0A=20where=20the=20rules=20get=20attached=20to=20the=20= M.f.=20But=20since=20M.f's=20RHS=20is=20trivial=0A=20(just=20f)=20it=20= was=20unconditionally=20inlinined=20at=20all=20its=20call=20sites,=20=0A=20= thereby=20losing=20the=20RULES=20attached=20to=20it.=0A=20=0A=20This=20= *is*=20a=20fragile=20aspect=20of=20rules.=20However=20this=20fix=20= solves=20the=20=0A=20problem=20by=20instead=20generating=0A=20=09f=20=3D=20= M.f=0A=20=09M.f=20=3D=20<rhs>=0A=20=0A=20A=20pretty=20small=20chanage=20= to=20the=20desugarer=20does=20the=20job.=20=20It=20still=20feels=0A=20a=20= little=20fragile,=20bt=20it's=20certainly=20more=20robust=20than=20= before.=0A=20=0A]=20=0A[Fix=20broken=20regex=0ASimon=20Marlow=20= <[email protected]>**20060721111144=0A=20Don't=20know=20how=20I=20= managed=20to=20use=20this=20before...=20maybe=20a=20different=20regex=0A=20= library.=0A]=20=0A[fix=20bug=20in=20sample=20code=0ASimon=20Marlow=20= <[email protected]>**20060721083200]=20=0A[fix=20eran=20error=20= message=20by=20reordering=20a=20couple=20of=20tests=0A= [email protected]**20060719111638]=20=0A[Use=20a=20recursive=20= error=20handler=20in=20case=20the=20exception=20causes=20more=20= exceptions.=0ALemmih=20<[email protected]>**20060717232553]=20=0A[Check=20= for=20overlap-flag=20differences=20in=20hi=20files=0A= [email protected]**20060714163843=0A=20=0A=20=09MERGE=20TO=20STABLE=0A= =20=0A=20I'd=20forgotten=20to=20compare=20the=20per-instance=20overlap=20= flag=20when=20=0A=20comparing=20interface=20files,=20and=20that=20meant=20= that=20consequential=0A=20recompilations=20weren't=20being=20triggered=20= when=20the=20only=20change=0A=20was=20to=20add=20= -fallow-overlapping-instances=0A=20=0A=20Fixes=20Trac=20bug=20#824=0A=20=0A= =20=0A]=20=0A[Add=20a=20clarification=20about=20overlapping=20instances=20= [email protected]**20060714143220]=20=0A= [Comments=20and=20import=20trimming=0A= [email protected]**20060712153306]=20=0A[Experimental=20flag=20= [email protected]**20060712153204=0A=20=0A=20This=20= experimental=20flag,=20-fdicts-cheap,=20makes=20a=20let-binding=20that=20= bind=20a=0A=20value=20of=20dictionary=20type=20look=20cheap.=20=20That=20= in=20turn=20leads=20to=20more=0A=20eta=20expansion.=20=20Instead=20of=0A=20= =09f=20=3D=20/\a.=20\(d1:Ord=20a).=20let=20d2:Ord=20[a]=20=3D=20dfOrd=20= a=20d1=20in=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= \(x:a).=20<stuff>=0A=20which=20has=20arity=201,=20you=20get=0A=20=09f=20= =3D=20/\a.=20\(d1:Ord=20a).=20\(x:a).=0A=20=09=20=20=20=20=20=20=20=20=20= let=20d2:Ord=20[a]=20=3D=20dfOrd=20a=20d1=20in=20<stuff>=0A=20Now=20f=20= has=20arity=202.=0A=20=0A=20This=20can=20cretainly=20waste=20= dictionary-construction=20work,=20if=20f=20is=0A=20partially=20applied=20= to=20its=20dictionary=20argument.=20=20However=20it=20has=20knock-on=0A=20= effects.=20=20Because=20f=20has=20arity=202,=20we=20won't=20float=20(f=20= Int=20d)=20out=20of=0A=20=09\x.=20h=20(f=20Int=20d)=0A=20Floating=20f=20= out=20of=20this=20lambda=20makes=20it=20impossible=20for=20an=20h/f=20= fusion=0A=20rule=20to=20fire;=20and=20this=20unexpected=20loss=20of=20= RULE=20application=20was=20the=0A=20immediate=20reason=20for=20= implementing=20this=20flag.=20(Roman=20Leshchinskiy=20came=0A=20across=20= this=20when=20working=20on=20array=20fusion.)=0A=20=0A=20=0A=20I've=20= implemented=20the=20change=20only=20in=20CoreUtils.arityType,=20which=0A=20= only=20affects=20eta=20expansion.=20=20I=20thought=20of=20putting=20the=20= change=20in=0A=20exprIsCheap,=20which=20is=20a=20more=20systematic=20= place=20(the=20former=20calls=0A=20the=20latter)=20but=0A=20=0A=20=09a)=20= I=20wanted=20this=20under=20flag=20control,=20and=20the=20flags=20=0A=20=09= are=20not=20readily=20available=20to=20all=20callers=20of=20exprIsCheap=0A= =20=0A=20=09b)=20I'm=20not=20100%=20convinced=20that=20this=20change=20= is=20a=20good=0A=20=09idea,=20so=20it's=20reasonable=20to=20do=20the=20= narrowest=20change=0A=20=09that=20solves=20the=20immediate=20problem.=0A= ]=20=0A[document=20that=20-fglasgow-exts=20is=20needed=20for=20RULES=20= [email protected]**20060712093907]=20=0A[do=20a=20= better=20job=20of=20ignoring=20unrecognised=20pragmas=0ASimon=20Marlow=20= <[email protected]>**20060712083550]=20=0A[Don't=20z-encode=20= module=20names=20in=20external-core=20output=0AJan=20Rochel=20= <[email protected]>**20060706131109]=20=0A[re-add=20-fvia-C=0ASimon=20= Marlow=20<[email protected]>**20060710081522=0A=20There=20are=20= still=20some=20fixes=20required=20to=20get=20the=20threaded=20RTS=20= compilable=0A=20with=20the=20NCG,=20and=20apparently=20there=20are=20= problems=20on=2032-bit=20archs=20too.=0A=20=0A]=20=0A[Be=20lazier=20in=20= user=20config=20creation,=20and=20don't=20fail=20on=20missing=20configs.=0A= Ian=20Lynagh=20<[email protected]>**20060624230800]=20=0A[Z-Encode=20= external-core=20output=0AJan=20Rochel=20= <[email protected]>**20060702214438=0A=20=0A=20HEAD=20doesn't=20= z-encode=20external-core=20output=20(unlike=206.4).=20I=20suppose,=20= that=0A=20this=20is=20unwanted=20behaviour.=20It=20probably=20results=20= from=20this=20patch:=0A=20=0A=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=20= Fri=20Jan=20=206=2017:30:19=20CET=202006=20=20simonmar=0A=20=20=20*=20= [project=20@=202006-01-06=2016:30:17=20by=20simonmar]=0A=20=20=20Add=20= support=20for=20UTF-8=20source=20files=0A=20=0A=20[...]=20=20=20=20=0A=20= =0A=20Z-encoding=20has=20been=20moved=20right=20to=20the=20back=20end.=20= =20Previously=20we=0A=20used=20to=20Z-encode=20every=20identifier=20on=20= the=20way=20in=20for=20simplicity,=0A=20and=20only=20decode=20when=20we=20= needed=20to=20show=20something=20to=20the=20user.=0A=20Instead,=20we=20= now=20keep=20every=20string=20in=20its=20UTF-8=20encoding,=20and=0A=20= Z-encode=20right=20before=20printing=20it=20out.=0A=20=0A=20[...]=0A=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=20=0A= =20Greetings=0A=20Jan=0A]=20=0A[Add=20%local-tag=20to=20external=20core=20= output=0AJan=20Rochel=20<[email protected]>**20060702204559=0A=20=0A= =20Hello,=20this=20is=20my=20first=20patch=20contributed=20to=20GHC.=20= If=20there=20are=20any=0A=20inadequacies=20about=20it=20(maybe=20like=20= this=20introductory=20disclaimer),=20please=0A=20let=20me=20know=20about=20= it.=0A=20=0A=20So,=20the=20need=20for=20this=20patch=20arose,=20while=20= I=20was=20involved=20with=20processing=0A=20hcr=20files=20(external=20= core=20output)=20and=20I=20noticed,=20that=20the=20output=20didn't=0A=20= fully=20conform=20to=20the=20specification=20[1].=0A=20No=20%local-tags=20= were=20used,=20which=20turned=20out=20to=20be=20a=20real=20nuisance=20as=20= it=0A=20was=20not=20possible=20to=20determine=20which=20VDEFs=20can=20be=20= erased=20in=20a=20further=0A=20optimization=20process=20and=20which=20= ones=20are=20exported=20by=20the=20module.=0A=20=0A=20Since=20the=20= specification=20does=20not=20define=20the=20meaning=20of=20the=20= %local-tag,=20I=0A=20assume,=20it=20makes=20sense,=20that=20it=20tags=20= all=20functions,=20that=20are=20not=0A=20exported=20by=20the=20module.=0A= =20=0A=20The=20patch=20does=20not=20fully=20comply=20to=20the=20= specification,=20as=20in=20my=0A=20implementation=20a=20local=20tag=20= may=20appear=20before=20a=20VDEF=20but=20not=20before=20a=0A=20VDEFG.=0A=20= =0A=20[1]=20An=20External=20Representation=20for=20the=20GHC=20Core=20= Language=0A=20=20=20=20=20(DRAFT=20for=20GHC5.02),=20page=203,=20line=20= 1=0A=20=0A=20Greetings=0A=20Jan=0A]=20=0A[Remove=20bashisms=20from=20= darcs-all=0AAlec=20Berryman=20<[email protected]>**20060703012911=0A=20=0A=20= darcs-all=20may=20now=20be=20run=20with=20any=20POSIX-compatible=20= /bin/sh.=0A]=20=0A[Fix=20for=20warning=20message=20(bug=20#812)=0ADuncan=20= Coutts=20<[email protected]>**20060704163413=0A=20say=20"{-#=20= SOURCE=20#-}"=20rather=20than=20"{-=20SOURCE=20-}"=20in=20warning=20= message.=0A=20Fixes=20http://hackage.haskell.org/trac/ghc/ticket/812=0A]=20= =0A[The=20dict-bindings=20in=20an=20IPBinds=20need=20not=20be=20in=20= [email protected]**20060703151517=0A=20=0A=20= This=20appears=20to=20be=20a=20long-standing=20bug,=20discovered=20by=20= BlueSpec=20=0A=20([email protected]),=20Trac=20bug=20#795=0A=20=0A=20The=20= problem=20was=20that=20in=20an=20IP=20binding=20group,=20the=20dict=20= bindings=0A=20aren't=20necessarily=20in=20dependency=20order;=20and=20if=20= they=20aren't=20=0A=20we=20get=20a=20core-lint=20error.=0A=20=0A=20Test=20= tc203=20checks=20this=20case.=20=20(Though=20whether=20it=20shows=20up=20= at=0A=20all=20depends=20a=20bit=20on=20accidental=20factors=20of=20= binding=20ordering.)=0A=20=0A]=20=0A[x86=20needs=20-fno-unit-at-a-time=20= too=0ASimon=20Marlow=20<[email protected]>**20060704083308=0A=20= Fixes=20#809=0A]=20=0A[x86-64:=20fix=20a=20problem=20exposed=20by=20= negative=20offsets=20in=20vector=20tables=0ASimon=20Marlow=20= <[email protected]>**20060629140608=0A=20static=20relative=20= offsets=20(eg=20.long=20l1-l2)=20are=20restricted=20to=2032=20bits=20on=0A= =20x86-64=20due=20to=20lack=20of=20support=20in=20the=20linker.=20=20The=20= codegen,=20NCG=20and=0A=20runtime=20work=20around=20this,=20using=20= 32-bit=20offsets=20instead=20of=2064.=0A=20However,=20we=20were=20= missing=20a=20workaround=20for=20vector=20tables,=20and=20it=0A=20= happened=20to=20work=20by=20accident=20because=20the=20offsets=20were=20= always=20positive=0A=20and=20resolved=20by=20the=20assembler.=20=20The=20= bug=20was=20exposed=20by=20using=20the=20NCG=0A=20to=20compile=20the=20= RTS,=20where=20the=20offsets=20became=20negative,=20again=20by=0A=20= accident.=0A]=20=0A[No=20longer=20force=20-fvia-C=20for=20the=20RTS,=20= it=20can=20now=20be=20compiled=20with=20the=20NCG=0ASimon=20Marlow=20= <[email protected]>**20060629135836]=20=0A[Replace=20inline=20C=20= functions=20with=20C--=20macros=20in=20.cmm=20code=0ASimon=20Marlow=20= <[email protected]>**20060629134726=0A=20So=20that=20we=20can=20= build=20the=20RTS=20with=20the=20NCG.=0A]=20=0A[remove=20conditionals=20= from=20definition=20of=20StgRegTable=0ASimon=20Marlow=20= <[email protected]>**20060629134405=0A=20so=20that=20we=20can=20= calculate=20deterministic=20offsets=20to=20some=20of=20the=20fields=0A=20= of=20Capability.=0A]=20=0A[mpz_foo()=20functions=20are=20really=20called=20= __gmpz_foo()=20in=20GMP=0ASimon=20Marlow=20= <[email protected]>**20060629122217=0A=20gmp.h=20#defines=20mpz_foo=20= to=20__gmpz_foo,=20so=20the=20real=20ABI=20is=20__gmpz_foo,=0A=20so=20= that=20is=20what=20we=20must=20invoke=20in=20order=20to=20be=20portable=20= here.=0A=20Similarly=20for=20mpn=20-->=20__gmpn.=0A]=20=0A[use=20the=20= new=20"prim=20%write_barrier()"=20in=20.cmm=20instead=20of=20calls=20to=20= wb()=0ASimon=20Marlow=20<[email protected]>**20060629120526]=20=0A= [fix=20some=20problems=20with=20the=20fixup=20block=20code=0ASimon=20= Marlow=20<[email protected]>**20060629120210=0A=20We=20weren't=20= handling=20InBoth=20properly.=20=20InBoth=20needs=20to=20be=20expanded=20= to=0A=20appropriate=20InReg/InMem=20locations=20*before*=20building=20= the=20interference=0A=20graph,=20otherwise=20an=20InBoth=20will=20not=20= be=20seen=20to=20conflict=20with=20other=0A=20InReg/InMem=20locations.=0A= ]=20=0A[small=20optimisation:=20eliminate=20more=20register-to-register=20= moves=0ASimon=20Marlow=20<[email protected]>**20060629120029]=20=0A= [new=20syntax:=20"prim=20%OP=20(args)"=20=20for=20using=20CallishMachOps=20= in=20.cmm=0ASimon=20Marlow=20<[email protected]>**20060629115949=0A=20= =0A=20=0A]=20=0A[add=20MO_WriteBarrier=20to=20CallishMachOps=0ASimon=20= Marlow=20<[email protected]>**20060629115837=0A=20This=20will=20let=20= us=20express=20write=20barriers=20in=20C--=0A]=20=0A[Use=20= -fno-strict-aliasing=20for=20*all*=20C=20files=20in=20the=20runtime=0A= Simon=20Marlow=20<[email protected]>**20060629082902=0A=20as=20a=20= precautionary=20measure.=20=20It=20is=20definitely=20required=20for=20= GC.c,=0A=20but=20it=20may=20well=20become=20necessary=20for=20other=20= files=20in=20the=20future=20due=20to=0A=20our=20(mis-)use=20of=20the=20C=20= "type=20system".=0A]=20=0A[the=20unlifted=20kind=0ASimon=20Marlow=20= <[email protected]>**20060623152626]=20=0A[fix=20a=20lint-o=0ASimon=20= Marlow=20<[email protected]>**20060620151901]=20=0A[fix=20sloppy=20= conditionals=0ASimon=20Marlow=20= <[email protected]>**20060620151758]=20=0A[fix=20sloppy=20= conditionals=0ASimon=20Marlow=20= <[email protected]>**20060620151039]=20=0A[fix=20a=20few=20sloppy=20= conditionals=20caught=20by=20new=20test=20in=20CmmLint=0ASimon=20Marlow=20= <[email protected]>**20060620150618]=20=0A[flattenCgStmts:=20fix=20= a=20case=20of=20empty=20code=20blocks=20being=20generated=0ASimon=20= Marlow=20<[email protected]>**20060620150520]=20=0A[improve=20a=20= panic=20message=0ASimon=20Marlow=20= <[email protected]>**20060620141219]=20=0A[check=20that=20the=20= argument=20to=20CmmCondBranch=20is=20really=20a=20conditional=0ASimon=20= Marlow=20<[email protected]>**20060620141204]=20=0A[Generate=20a=20= new=20unique=20for=20each=20label=0ASimon=20Marlow=20= <[email protected]>**20060620140106]=20=0A[Remove=20long-redundant=20= [email protected]**20060629105321]=20=0A[Add=20= [email protected]**20060627161520]=20=0A= [fix=20up=20slop-overwriting=20for=20THUNK_SELECTORS=20in=20DEBUG=20mode=0A= Simon=20Marlow=20<[email protected]>**20060627123951]=20=0A[Make=20= SpecConstr=20work=20better=20for=20nested=20functions=0A= [email protected]**20060627094742=0A=20=0A=20In=20SpecConstr.scBind,=20= we=20should=20pass=20the=20optimised=20body=20(body')=20to=0A=20= specialise,=20not=20the=20un-optimised=20one.=20In=20this=20way=20we'll=20= benefit=20from=0A=20specialising=20any=20nested=20functions=20inside=20= body.=0A=20=0A=20Discovered=20by=20Roman.=0A=20=0A]=20=0A[More=20= [email protected]**20060626201709=0A=20=0A=20= For=20some=20reason,=20SpecConstr=20wasn't=20taking=20account=20of=20= let-bound=20constructors:=0A=20=09let=20v=20=3D=20Just=204=0A=20=09in=20= ...(f=20v)...=0A=20=0A=20Now=20it=20does.=20=20An=20easy=20fix=20= fortunately.=0A=20=0A]=20=0A[Improve=20consistency=20checking=20for=20= [email protected]**20060626100034=0A=20=0A=20= This=20patch=20arranges=20that=20derived=20instances=20use=20the=20same=20= instance-decl=0A=20checking=20code=20as=20user-defined=20instances.=20=20= That=20gives=20greater=20consistency=0A=20in=20error=20messages.=0A=20=0A= =20Furthermore,=20the=20error=20description=20if=20this=20consistency=20= check=20fails=20is=20now=0A=20much=20more=20explicit.=20=20For=20= example,=20drvfail003=20now=20says=0A=20=20=20=20=20=20Variable=20occurs=20= more=20often=20in=20a=20constraint=20than=20in=20the=20instance=20head=0A= =20=20=20=20=20=20=20=20in=20the=20constraint:=20Show=20(v=20(v=20a))=0A=20= =20=20=20=20=20(Use=20-fallow-undecidable-instances=20to=20permit=20= this)=0A=20=20=20=20=20=20In=20the=20derived=20instance=0A=20=20=20=20=20= =20=20=20instance=20(Show=20(v=20(v=20a)))=20=3D>=20Show=20(Square_=20v=20= w=20a)=0A=20=0A]=20=0A[Slight=20improvement=20in=20TH=20error=20= [email protected]**20060626095952]=20=0A[Improve=20= location=20info=20when=20typechecking=20interface=20fiels=0A= [email protected]**20060614114813]=20=0A[Fix=20a=20bug=20in=20the=20= pretty=20printing=20of=20class=20declarations=0A= [email protected]**20060625160826]=20=0A[Improve=20RULE=20matching=20= [email protected]**20060624160421=0A=20=0A=20= Consider=20this=20example=20(provided=20by=20Roman)=0A=20=0A=20=09foo=20= ::=20Int=20->=20Maybe=20Int=20->=20Int=0A=20=09foo=200=20(Just=20n)=20=3D=20= n=0A=20=09foo=20m=20(Just=20n)=20=3D=20foo=20(m-n)=20(Just=20n)=0A=20=0A=20= SpecConstr=20sees=20this=20fragment:=0A=20=0A=20=09case=20w_smT=20of=20= wild_Xf=20[Just=20A]=20{=0A=20=09=20=20Data.Maybe.Nothing=20->=20= lvl_smf;=0A=20=09=20=20Data.Maybe.Just=20n_acT=20[Just=20S(L)]=20->=0A=20= =09=20=20=20=20case=20n_acT=20of=20wild1_ams=20[Just=20A]=20{=20= GHC.Base.I#=20y_amr=20[Just=20L]=20->=0A=20=09=20=20=20=20$wfoo_smW=20= (GHC.Prim.-#=20ds_Xmb=20y_amr)=20wild_Xf=0A=20=09=20=20=20=20}};=0A=20=0A= =20and=20correctly=20generates=20the=20rule=0A=20=0A=20=09RULES:=20= "SC:$wfoo1"=20[0]=20__forall=20{y_amr=20[Just=20L]=20::=20GHC.Prim.Int#=0A= =20=09=09=09=09=09=20=20sc_snn=20::=20GHC.Prim.Int#}=0A=20=09=20=20= $wfoo_smW=20sc_snn=20(Data.Maybe.Just=20@=20GHC.Base.Int=20(GHC.Base.I#=20= y_amr))=0A=20=09=20=20=3D=20$s$wfoo_sno=20y_amr=20sc_snn=20;]=0A=20=0A=20= BUT=20we=20must=20ensure=20that=20this=20rule=20matches=20in=20the=20= original=20function!=0A=20Note=20that=20the=20call=20to=20$wfoo=20is=0A=20= =09=20=20=20=20$wfoo_smW=20(GHC.Prim.-#=20ds_Xmb=20y_amr)=20wild_Xf=0A=20= =0A=20During=20matching=20we=20expand=20wild_Xf=20to=20(Just=20n_acT).=20= =20But=20then=20we=20must=20also=0A=20expand=20n_acT=20to=20(I#=20= y_amr).=20=20And=20we=20can=20only=20do=20that=20if=20we=20look=20up=20= n_acT=0A=20in=20the=20in-scope=20set,=20because=20in=20wild_Xf's=20= unfolding=20it=20won't=20have=20an=20unfolding=0A=20at=20all.=20=0A=20=0A= =20Happily,=20fixing=20the=20bug=20is=20easy:=20add=20a=20call=20to=20= 'lookupRnInScope'=20in=20the=20=0A=20(Var=20v2)=20case=20of=20'match'.=0A= =20=0A]=20=0A[--enable-src-tree-haddock=20and=20friends=20are=20no=20= longer=20required=0ASimon=20Marlow=20= <[email protected]>**20060623113303=0A=20Happy,=20Alex=20and=20= Haddock=20are=20built=20separately=20using=20Cabal=20now.=0A]=20=0A[fix=20= a=20couple=20of=20bugs=20in=20markSparkQueue=20(#799)=0ASimon=20Marlow=20= <[email protected]>**20060623092044]=20=0A[pull=20in=20STABLE(!)=20= [email protected]**20060622202734]=20=0A[fix=20for=20when=20path=20= to=20GHC=20contains=20spaces,=20from=20#695=0ASimon=20Marlow=20= <[email protected]>**20060622131700]=20=0A[Comment=20only=0A= [email protected]**20060621223940]=20=0A[Transfer=20INLINE=20to=20= [email protected]**20060621223637=0A=20=0A=20= When=20the=20Specialise=20pass=20generates=20a=20specialised=20copy=20of=20= a=20function,=0A=20it=20should=20transfer=20the=20INLINE=20information=20= to=20the=20specialised=20function.=0A=20Otherwise,=20whether=20or=20not=20= the=20INLNE=20happens=20can=20depend=20on=20whether=0A=20specialisation=20= happens,=20which=20seems=20wrong.=20=20See=20Note=20[Inline=20= specialisation]=0A=20in=20Specialise.lhs=0A=20=0A=20Here's=20the=20= example=20Roman=20reported=0A=20=0A=20=20=20=20=20primWriteMU=20::=20UAE=20= e=20=3D>=20MUArr=20e=20s=20->=20Int=20->=20e=20->=20ST=20s=20()=0A=20=20=20= =20=20{-#=20INLINE=20primWriteMU=20#-}=0A=20=20=20=20=20primWriteMU=20=3D=20= writeMBU=20.=20unMUAPrim=0A=20=20=20=20=20------=0A=20=20=20=20=20=0A=20=20= =20=20=20The=20problem=20is=20that=20primWriteMU=20doesn't=20get=20= inlined=20*sometimes*,=20which=0A=20=20=20=20=20results=20in=20code=20= like=0A=20=20=20=20=20=0A=20=20=20=20=20case=20= Data.Array.Parallel.Unlifted.Flat.UArr.$sprimWriteMU=0A=20=09=20=20=20=20= @=20s11_X1nJ=0A=20=09=20=20=20=20marr_s25s=0A=20=09=20=20=20=20= (GHC.Base.I#=20sc_s27F)=0A=20=09=20=20=20=20GHC.Base.False=0A=20=09=20=20= =20=20new_s_a1Db=0A=20=09=20=20=20=20of=20wild3_a1Dd=20{=20(#=20= new_s1_X1F9,=20r_a1Dc=20#)=20->=20...=0A=20=0A=20Note=20the=20fact=20= that=20we=20have=20a=20call=20to=20the=20*specialised*=20$sprimWriteMU.=0A= =20=0A]=20=0A[Arity=20and=20eta-expansion=20tuning=0A= [email protected]**20060621205855=0A=20=0A=20Roman=20found=20that=20=0A= =20=20=20=20=20loop=20::=20STRef=20s=20a=20->=20Int=20->=20ST=20s=20Int=0A= =20=20=20=20=20loop=20ref=20n=20=3D=20case=20n=20of=0A=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=200=20->=20return=20n=0A=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20n=20->=20loop=20ref=20= (n-1)=0A=20wasn't=20eta-expanding=20nicely,=20despite=20the=20'state=20= hack'=0A=20(see=20Id.isStateHackType).=20=20The=20reason=20was=20= two-fold:=0A=20=0A=20=20=20a)=20a=20bug=20in=20CoreUtils.arityType=20= (the=20Var=20case)=0A=20=0A=20=20=20b)=20the=20arity=20of=20a=20= recursive=20function=20was=20not=20being=0A=20=09exposed=20in=20its=20= RHS=20(see=20commments=20with=0A=20=09SimplEnv.addLetIdInfo=0A=20=0A=20= The=20commit=20fixes=20both.=20=20=0A=20=0A]=20=0A[documentation=20for=20= TH=20w/=20profiling=0ASimon=20Marlow=20= <[email protected]>**20060621112523]=20=0A[Allow=20Template=20= Haskell=20to=20be=20used=20with=20-prof=0ASimon=20Marlow=20= <[email protected]>**20060621110436=0A=20=0A=20In=20order=20for=20= this=20to=20work,=20you=20need=20to=20build=20the=20program=20first=20in=20= the=0A=20normal=20way=20(without=20-prof),=20and=20then=20again=20with=20= -prof=20and=20a=20suitable=0A=20-osuf=20(eg.=20-osuf=20p_o).=20=20The=20= compiler=20will=20pick=20up=20the=20object=20files=0A=20from=20the=20= normal=20way=20for=20running=20TH=20expressions,=20when=20it=20sees=20= -prof=0A=20together=20with=20-osuf.=20=20If=20you=20omit=20the=20-osuf,=20= you=20get=20an=20error=20message:=0A=20=0A=20TH_genEx.hs:12:2:=0A=20=20=20= =20=20Dynamic=20linking=20required,=20but=20this=20is=20a=20non-standard=20= build=20(eg.=20prof).=0A=20=20=20=20=20You=20need=20to=20build=20the=20= program=20twice:=20once=20the=20normal=20way,=20and=20then=0A=20=20=20=20= =20in=20the=20desired=20way=20using=20-osuf=20to=20set=20the=20object=20= file=20suffix.=0A=20=0A=20If=20you=20use=20-osuf,=20but=20haven't=20= built=20the=20program=20the=20normal=20way=20first,=0A=20then=20you=20= see:=0A=20=0A=20TH_genEx.hs:12:2:=0A=20=20=20=20=20cannot=20find=20= normal=20object=20file=20`TH_genExLib.o'=0A=20=20=20=20=20while=20= linking=20an=20interpreted=20expression=0A=20=0A=20Documentation=20to=20= follow.=0A=20=0A=20Fixes:=20#651=0A]=20=0A[add=20decl=20for=20= stg_block_throwto_ret=0ASimon=20Marlow=20= <[email protected]>**20060620083410]=20=0A[comment=20out=20a=20= non-true=20assertion=0ASimon=20Marlow=20= <[email protected]>**20060616140750]=20=0A[make=20compilation=20a=20= little=20less=20noisy=0ASimon=20Marlow=20= <[email protected]>**20060616140652]=20=0A[allow=20the=20max=20= number=20of=20workers=20to=20scale=20with=20+RTS=20-N=0ASimon=20Marlow=20= <[email protected]>**20060616140633]=20=0A[fix=20one-character=20= error=20in=20stack=20check=0ASimon=20Marlow=20= <[email protected]>**20060616135621]=20=0A[add=20STM=20support=20to=20= the=20new=20throwTo=20mechanism=0ASimon=20Marlow=20= <[email protected]>**20060616111937]=20=0A[remove=20duplicate=20way=20= names=20(-debug=20-debug=20didn't=20work)=0ASimon=20Marlow=20= <[email protected]>**20060616110258]=20=0A[Asynchronous=20exception=20= support=20for=20SMP=0ASimon=20Marlow=20= <[email protected]>**20060616103342=0A=20=0A=20This=20patch=20makes=20= throwTo=20work=20with=20-threaded,=20and=20also=20refactors=20large=0A=20= parts=20of=20the=20concurrency=20support=20in=20the=20RTS=20to=20clean=20= things=20up.=20=20We=0A=20have=20some=20new=20files:=0A=20=0A=20=20=20= RaiseAsync.{c,h}=09asynchronous=20exception=20support=0A=20=20=20= Threads.{c,h}=20=20=20=20=20=20=20=20=20general=20threading-related=20= utils=0A=20=0A=20Some=20of=20the=20contents=20of=20these=20new=20files=20= used=20to=20be=20in=20Schedule.c,=0A=20which=20is=20smaller=20and=20= cleaner=20as=20a=20result=20of=20the=20split.=0A=20=0A=20Asynchronous=20= exception=20support=20in=20the=20presence=20of=20multiple=20running=0A=20= Haskell=20threads=20is=20rather=20tricky.=20=20In=20fact,=20to=20my=20= annoyance=20there=20are=0A=20still=20one=20or=20two=20bugs=20to=20track=20= down,=20but=20the=20majority=20of=20the=20tests=20run=0A=20now.=0A]=20=0A= [make=20rmp_tmp_w=20an=20StgWord=20instead=20of=20StgInt=0ASimon=20= Marlow=20<[email protected]>**20060616102311]=20=0A= [__compat_long_path_size():=20have=20proto=20and=20defn=20agree=20on=20= [email protected]**20060614164650]=20=0A[call=20wakeUpRts()=20= in=20the=20correct=20place=0ASimon=20Marlow=20= <[email protected]>**20060614134728]=20=0A[readerProc:=20split=20up=20= text=20output=20using=20host's=20line=20termination=20convention=0A= [email protected]**20060613232605]=20=0A[Improve=20pretty-printing=20for=20= [email protected]**20060612114020]=20=0A[Make=20scoped=20type=20= variables=20work=20for=20default=20methods=0A= [email protected]**20060612113855=0A=20=0A=20Consider=0A=20=20=20= class=20C=20a=20where=0A=20=20=20=20=20op=20::=20forall=20b.=20a=20->=20= b=20->=20b=0A=20=20=20=20=20op=20=3D=20<rhs>=0A=20=0A=20Then=20'b'=20= should=20be=20in=20scope=20in=20<rhs>.=20=20I=20had=20omitted=20this=20= case.=0A=20This=20patch=20fixes=20it.=0A=20=0A]=20=0A[And=20move=20= 'Chasing=20...'=20messages=20into=20verbosity=202=20as=20well=0ADon=20= Stewart=20<[email protected]>**20060612084656]=20=0A[Emit=20'linking=20= not=20required'=20messages=20only=20with=20-v=202=20or=20above.=0ADon=20= Stewart=20<[email protected]>**20060611071041=0A=20=0A=20Similar=20in=20= philosophy=20to=20the=20'Skipping'=20patch,=20this=20is=20another=20case=20= of=0A=20printing=20noisy=20messages=20when=20no=20work=20is=20being=20= done.=20This=20patch=20makes=20the=0A=20building-when-nothing-to-do=20= case=20smoother.=0A=20=0A]=20=0A[Don't=20emit=20'Skipping'=20messages=20= unless=20-v2=20or=20higher=20is=20on=0ADon=20Stewart=20= <[email protected]>**20060610145713=0A=20=0A=20Following=20GNU=20= make,=20this=20patch=20makes=20GHC=20not=20emit=20messages=20about=20= modules=0A=20its=20skipping.=20This=20makes=20builds=20much=20quieter,=20= and=20its=20a=20lot=20easier=20to=0A=20work=20out=20what=20effects=20a=20= change=20had=20on=20the=20code.=0A=20=0A=20The=20current=20behaviour=20= can=20be=20recovered=20with=20-v2=0A=20=0A]=20=0A[fix=20the=20stage3=20= build=0ASimon=20Marlow=20<[email protected]>**20060612084114]=20=0A= [oops,=20undo=20accidental=20commit=20of=20version=20number=0ASimon=20= Marlow=20<[email protected]>**20060612083520]=20=0A[Move=20readline=20= configuration=20into=20the=20readline=20package=0ASimon=20Marlow=20= <[email protected]>**20060609135840]=20=0A[fix=20possible=20^C=20= problems=0ASimon=20Marlow=20<[email protected]>**20060608144457=0A=20= Calling=20prodAllCapabilities()=20from=20interruptStgRts()=20was=20= wrong,=20for=0A=20the=20same=20reasons=20that=20we=20stopped=20doing=20= it=20in=20handle_tick().=20=20We=20now=0A=20use=20the=20same=20mechanism=20= (send=20a=20byte=20down=20the=20pipe=20to=20the=20IO=20manager=0A=20= thread),=20but=20abstract=20it=20in=20a=20wakeUpRts()=20function=20in=20= the=20scheduler.=0A]=20=0A[New=20tracing=20interface=0ASimon=20Marlow=20= <[email protected]>**20060608144210=0A=20A=20simple=20interface=20= for=20generating=20trace=20messages=20with=20timestamps=20and=0A=20= thread=20IDs=20attached=20to=20them.=20=20Most=20debugging=20output=20= goes=20through=20this=0A=20interface=20now,=20so=20it=20is=20= straightforward=20to=20get=20timestamped=20debugging=0A=20traces=20with=20= +RTS=20-vt.=20=20Also,=20we=20plan=20to=20use=20this=20to=20generate=0A=20= parallelism=20profiles=20from=20the=20trace=20output.=0A]=20=0A[fix=20= warnings=0ASimon=20Marlow=20<[email protected]>**20060608143635]=20=0A= [fix=20warnings=0ASimon=20Marlow=20= <[email protected]>**20060608143520]=20=0A[Make=20it=20so=20that=20= StgWord/StgInt=20are=20longs=0ASimon=20Marlow=20= <[email protected]>**20060608143438=0A=20This=20means=20we=20can=20= use=20a=20%ld=20format=20specifier=20for=20StgWord/StgInt=20with=0A=20= printf=20and=20not=20get=20shouted=20at=20by=20gcc.=0A]=20=0A[more=20= warning=20fixage=0ASimon=20Marlow=20= <[email protected]>**20060608142844]=20=0A[fix=20a=20warning=0A= Simon=20Marlow=20<[email protected]>**20060608141903]=20=0A[fix=20= some=20warnings=0ASimon=20Marlow=20= <[email protected]>**20060608140201]=20=0A[Add=20new=20RTS=20flags=20= for=20tracing:=0ASimon=20Marlow=20= <[email protected]>**20060608130101=0A=20=0A=20=20=20-vs=20=20=20=20= =20=20=20Trace=20scheduler=20events=20(see=20also=20-Ds=20with=20-debug)=0A= =20=20=20-vt=20=20=20=20=20=20=20Time-stamp=20trace=20messages=0A=20=0A=20= the=20intention=20is=20that=20we=20will=20pipe=20the=20-vs=20output=20= into=20a=0A=20profile-generating=20tool.=20=20This=20commit=20includes=20= the=20flags=20only,=0A=20functionality=20to=20follow.=0A]=20=0A[codegen=20= debug=20flag=20(+RTS=20-Dc)=20was=20unused;=20remove=20it=0ASimon=20= Marlow=20<[email protected]>**20060607145848]=20=0A[add=20'const'=20= modifiers=20to=20types=20where=20appropriate=0ASimon=20Marlow=20= <[email protected]>**20060607145800]=20=0A[rearrange=20casts=20to=20= avoid=20gcc=20warnings=0ASimon=20Marlow=20= <[email protected]>**20060607145626]=20=0A[warning=20fix=0ASimon=20= Marlow=20<[email protected]>**20060607141013]=20=0A[remove=20//@=20= stuff=0ASimon=20Marlow=20<[email protected]>**20060607134553]=20=0A= [Gather=20timing=20stats=20for=20a=20Task=20when=20it=20completes.=0A= Simon=20Marlow=20<[email protected]>**20060607124407=0A=20= Previously=20we=20did=20this=20just=20for=20workers,=20now=20we=20do=20= it=20for=20the=20main=0A=20thread=20and=20for=20forkOS=20threads=20too.=0A= ]=20=0A[Remove=20unnecessary=20SCHED_INTERRUPTED=20scheduler=20state=0A= Simon=20Marlow=20<[email protected]>**20060607115105=0A=20=0A]=20=0A= [fix=20a=20warning=0ASimon=20Marlow=20= <[email protected]>**20060427130048]=20=0A[re-enable=20time=20= [email protected]**20060606124656]=20=0A= [fix=20a=20case=20of=20"naughty=20I386=20byte=20reg"=0ASimon=20Marlow=20= <[email protected]>**20060606112357=0A=20The=20fix=20is=20a=20= little=20hacky,=20because=20we=20don't=20have=20support=20for=20register=0A= =20classes=20in=20general,=20but=20it's=20an=20improvement.=0A]=20=0A[A=20= better=20icon=20for=20GHCi=0ANeil=20Mitchell=20= <http://www.cs.york.ac.uk/~ndm/>**20060602145913]=20=0A= [markSignalHandlers():=20implementation=20was=20unnecessary,=20and=20had=20= [email protected]**20060606085805=0A=20=0A=20There's=20no=20= need=20to=20mark=20the=20signal=20handler=20here,=20because=20it=20is=20= stored=0A=20in=20a=20StablePtr=20and=20hence=20is=20a=20root=20anyway.=20= =20Furthermore,=20the=20call=20to=0A=20evac()=20was=20passing=20the=20= address=20of=20a=20local=20variable,=20which=20turned=20out=0A=20to=20be=20= harmless=20for=20copying=20GC,=20but=20fatal=20for=20compacting=20GC:=20= compacting=0A=20GC=20assumes=20that=20the=20addresses=20of=20the=20roots=20= are=20the=20same=20each=20time.=0A=20=0A=20Fixes:=20possibly=20#783,=20= possibly=20#776,=20definitely=20#787=0A]=20=0A[disable=20time=20package=20= [email protected]**20060605165125]=20=0A= [Remove=20one=20more=20IfaceInlineCall=0A= [email protected]**20060605154305]=20=0A[Remove=20InlinePlease=20and=20= add=20inline=20function=20and=20RULE=0A= [email protected]**20060605114900=0A=20=0A=20For=20a=20long=20time=20= GHC=20has=20had=20some=20internal=20mechanism=20designed=20to=20support=0A= =20a=20call-site=20inline=20directive,=20thus=0A=20=09inline=20f=20xs=0A=20= makes=20f=20be=20inlined=20at=20the=20call=20site=20even=20if=20f=20is=20= big.=0A=20=0A=20However,=20the=20surface=20syntax=20seems=20to=20have=20= gone,=20and=20in=20any=20case=20it=0A=20can=20be=20done=20more=20neatly=20= using=20a=20RULE.=0A=20=0A=20This=20commit:=0A=20=20=20*=20Removes=20the=20= InlineCall=20constructor=20for=20Note=0A=20=20=20=20=20and=20= InlinePlease=20for=20SimplCont=0A=20=0A=20=20=20*=20Adds=20a=20new=20= known-key=20Id=20called=20'inline',=20whose=20definition=20in=0A=20=20=20= =20=20GHC.Base=20is=20just=20the=20identity=20function=0A=20=0A=20=20=20= *=20Adds=20a=20built-in=20RULE=20in=20PrelRules=20that=20rewrites=20= (inline=20f)=20to=0A=20=20=20=20=20the=20body=20of=20f,=20if=20possible=0A= =20=0A=20=20=20*=20Adds=20documentation=0A=20=0A=20NOTE:=20I=20have=20= not=20tested=20this=20(aeroplane=20work).=20=20Give=20it=20a=20try!=0A=20= =0A]=20=0A[[email protected]**20060605114719]=20=0A[fix=20= type=20of=20allocateExec=0ASimon=20Marlow=20= <[email protected]>**20060601125406]=20=0A[stgMallocBytesRWX=20-->=20= allocateExec=0ASimon=20Marlow=20= <[email protected]>**20060601123314]=20=0A[fix=20non-Windows=20= build=0ASimon=20Marlow=20<[email protected]>**20060601121435]=20=0A= [Win32:=20set=20up=20the=20console=20code=20pages=0A= [email protected]**20060601115423=0A=20This=20may=20help=20with=20= entering=20non-ASCII=20characters=20at=20the=20GHCi=20prompt,=0A=20but=20= as=20usual=20with=20Unicode=20there's=20no=20simple=20solution=20that=20= just=20works.=0A=20See=20commentary=20in=20InteractiveUI.hs=20for=20more=20= details.=0A]=20=0A[add=20a=20type=20signature=0A= [email protected]**20060601115335]=20=0A[improvements=20to=20= [email protected]**20060601115306]=20=0A= [commented-out=20debugging=20code=0A= [email protected]**20060601115247]=20=0A[understand=20Latin-1=20= [email protected]**20060601115149]=20=0A= [stgMallocBytesRWX=20-->=20allocateExec=0ASimon=20Marlow=20= <[email protected]>**20060531091202=0A=20Not=20sure=20how=20I=20= left=20this=20out=20of=20the=20previous=20patch,=20oh=20well.=0A]=20=0A= ['time'=20depends=20on=20'Win32'=20when=20Windows=3DYES;=20mirror=20that=0A= [email protected]**20060530223009=0A=20when=20setting=20up=20SUBDIRS.=0A]=20= =0A[Win32:=20add=20_imp__tzname=0A= [email protected]**20060530101452]=20=0A[fix=20Win32=20build=0A= [email protected]**20060530101418]=20=0A[replace=20= stgMallocBytesRWX()=20with=20our=20own=20allocator=0ASimon=20Marlow=20= <[email protected]>**20060530100211=0A=20=0A=20See=20bug=20#738=0A=20= =0A=20Allocating=20executable=20memory=20is=20getting=20more=20difficult=20= these=20days.=20=20In=0A=20particular,=20the=20default=20SELinux=20= policy=20on=20Fedora=20Core=205=20disallows=0A=20making=20the=20heap=20= (i.e.=20malloc()'d=20memory)=20executable,=20although=20it=20does=0A=20= apparently=20allow=20mmap()'ing=20anonymous=20executable=20memory=20by=20= default.=0A=20=0A=20Previously,=20stgMallocBytesRWX()=20used=20malloc()=20= underneath,=20and=20then=0A=20tried=20to=20make=20the=20page=20holding=20= the=20memory=20executable.=20=20This=20was=20rather=0A=20hacky=20and=20= fails=20with=20Fedora=20Core=205.=20=20=0A=20=0A=20This=20patch=20adds=20= a=20mini-allocator=20for=20executable=20memory,=20based=20on=20the=0A=20= block=20allocator.=20=20We=20grab=20page-sized=20blocks=20and=20make=20= them=20executable,=0A=20then=20allocate=20small=20objects=20from=20the=20= page.=20=20There's=20a=20simple=20free=0A=20function,=20that=20will=20= free=20whole=20pages=20back=20to=20the=20system=20when=20they=20are=0A=20= empty.=0A=20=0A]=20=0A[add=20time=20subdir=0ASimon=20Marlow=20= <[email protected]>**20060530070721]=20=0A[Make=20rule-matching=20= [email protected]**20060525154447=0A=20=0A=20= Consider=20a=20RULE=20like=0A=20=09forall=20arr.=20splitD=20(joinD=20= arr)=20=3D=20arr=0A=20=0A=20Until=20now,=20this=20rule=20would=20not=20= match=20code=20of=20form=0A=20=09splitD=20(let=20{=20d=20=3D=20...=20}=20= in=20joinD=20(...d...))=0A=20because=20the=20'let'=20got=20in=20the=20= way.=0A=20=0A=20This=20patch=20makes=20the=20rule-matcher=20robust=20to=20= lets.=20=20See=20comments=20with=0A=20the=20Let=20case=20of=20= Rules.match.=0A=20=0A=20This=20improvement=20is=20highly=20desirable=20= in=20the=20fusion=20rules=20for=20NDP=0A=20stuff=20that=20Roman=20is=20= working=20on,=20where=20we=20are=20doing=20fusion=20of=20*overloaded*=0A=20= functions=20(which=20may=20look=20lazy).=20=20The=20let=20expression=20= that=20Roman=20tripped=0A=20up=20on=20was=20a=20dictioary=20binding.=0A=20= =0A]=20=0A[Improve=20error=20reporting=20in=20interface=20typechecking=0A= [email protected]**20060525094545]=20=0A[Fix=20egregious=20and=20= [email protected]**20060525094300=0A=20= =0A=20A=20typo=20in=20tidyAlt=20meant=20that=20we=20could=20get=20= shadowing=20of=20occurrence=20names=0A=20in=20the=20output=20of=20= tidying.=20=20(Specifically,=20of=20existentially=20bound=20type=20=0A=20= variables.)=20=20That=20in=20turn=20meant=20that=20an=20IfaceExpr=20= could=20have=20shadowing,=20so=0A=20when=20the=20IfaceExpr=20was=20read=20= in,=20it=20meant=20something=20different.=0A=20That=20in=20turn=20led=20= to=20an=20obscure=20crash=20like:=0A=20=09Panic:=20tcIfaceTyVar=0A=20=0A=20= Anyway,=20this=20fixes=20it.=20=20MERGE=20into=206.4.3.=0A=20=0A=20=0A]=20= =0A[[email protected]**20060525094251]=20=0A= [performGC_():=20don't=20use=20the=20existing=20Task,=20always=20grab=20= a=20new=20one=0ASimon=20Marlow=20= <[email protected]>**20060525090035]=20=0A[Better=20control=20of=20= the=20IO=20manager=20thread;=20improvements=20to=20deadlock=20checking=0A= Simon=20Marlow=20<[email protected]>**20060524122839=0A=20=20=20=20=20= =0A=20In=20the=20threaded=20RTS=20on=20*nix=20platforms:=0A=20=20=20=20=20= =0A=20=20-=20we=20now=20start=20the=20IO=20manager=20thread=20eagerly=20= at=20startup=20time=0A=20=20=20=20(previously=20was=20started=20on=20= demand).=0A=20=0A=20=20-=20we=20now=20ask=20the=20IO=20manager=20thread=20= to=20stop=20at=20shutdown=0A=20=20=20=20=20=0A=20=20-=20In=20= Timer.c:handle_tick,=20if=20it=20looks=20like=20we=20might=20be=20in=20a=0A= =20=20=20=20deadlock,=20instead=20of=20calling=20prodOneCapability()=20= which=20was=20known=20to=20be=0A=20=20=20=20wrong,=20we=20now=20send=20a=20= byte=20down=20the=20IO=20manager's=20pipe=20to=20wake=20it=20up.=0A=20=20= =20=0A=20This=20also=20avoids=20a=20case=20of=20double-acquisition=20of=20= a=20mutex,=20which=0A=20happened=20if=20prodOneCapability()=20was=20= called=20while=20the=20current=20thread=0A=20was=20holding=20a=20mutex.=0A= ]=20=0A[TARGET_OS=20=3D=3D>=20HOST_OS=0ASimon=20Marlow=20= <[email protected]>**20060524122103]=20=0A[fix=20a=20_TARGET_ARCH=20= that=20should=20be=20_HOST_ARCH=0ASimon=20Marlow=20= <[email protected]>**20060524122022]=20=0A[we=20don't=20need=20= OutOfHeapHook(),=20and=20the=20version=20in=20the=20RTS=20has=20a=20= better=20message=0ASimon=20Marlow=20= <[email protected]>**20060524112007]=20=0A[Bug-fix=20to=20patch=20= "Run=20simplifier=20before=20SpecConstr"=0A= [email protected]**20060523130022]=20=0A[Run=20simplifier=20before=20= [email protected]**20060523085546=0A=20=0A=20Arrange=20= to=20run=20the=20simplifier=20before=20SpecConstr,=20to=20(almost=20= entirely)=20=0A=20eliminate=20shadowing.=0A=20=0A=20Reason:=20otherwise=20= SpecConstr=20can=20generate=20a=20RULE=20that=20never=0A=20files;=20and=20= LiberateCase=20specifically=20*does*=20generate=20lots=20of=20shadowing.=0A= =20=0A=20See=20Note=20[Shadowing]=20in=20SpecConstr.lhs=0A=20=0A=20=0A]=20= =0A[[email protected]**20060522192532]=20=0A[Add=20= [email protected]**20060522192404=0A=20=0A=20Add=20= CoreSubst.deShadowBinds,=20which=20removes=20shadowing=20from=20=0A=20a=20= Core=20term.=20=20I=20thought=20we=20wanted=20it=20for=20SpecConstr,=20= but=20in=20=0A=20fact=20decided=20not=20to=20use=20it.=20Nevertheless,=20= it's=20a=20useful=20sort=0A=20of=20function=20to=20have=20around,=20and=20= it=20has=20a=20particularly=20simple=0A=20definition!=0A=20=0A]=20=0A= [Inline=20in=20a=20call=20argument=20if=20the=20caller=20has=20RULES=0A= [email protected]**20060522163255=0A=20=0A=20This=20is=20an=20= experimental=20change=20suggested=20by=20Roman.=20=20Consider=0A=20=09=0A= =20=09{-#=20INLINE=20f=20#-}=0A=20=09f=20x=20y=20=3D=20...=0A=20=0A=20=09= ....(g=20(f=20a=20b))...=0A=20=0A=20where=20g=20has=20RULES.=20=20Then=20= we'd=20like=20to=20inline=20f,=20even=20though=20the=20context=20of=0A=20= the=20call=20is=20otherwise=20100%=20boring=20--=20g=20is=20lazy=20and=20= we=20know=20nothing=20about=0A=20x=20and=20y.=20=0A=20=0A=20This=20patch=20= just=20records=20in=20the=20continuation=20that=20f=20has=20rules.=20=20= And=20does=20so=0A=20somewhat=20recursively...e.g.=0A=20=0A=20=09...(g=20= (h=20(f=20a=20b)))...=0A=20=0A=20where=20g=20has=20rules.=20=20=0A=20=0A=20= =0A]=20=0A[[email protected]**20060522163109=0A=20= =0A=20Add=20Id.idHasRules=20::=20Id=20->=20Bool,=20with=20the=20obvious=20= semantics.=0A=20This=20patch=20makes=20sense=20by=20itself,=20but=20it's=20= just=20a=20tidy-up.=0A=20=0A=20=0A]=20=0A[Transmit=20inline=20pragmas=20= [email protected]**20060522110256=0A=20=0A=20***=20= WARNING:=20you=20will=20need=20to=20recompile=20your=20libraries=20=0A=20= ***=09=20=20=20=20=20when=20you=20pull=20this=20patch=20(make=20clean;=20= make)=0A=20=0A=20The=20inline=20pragma=20on=20wrapper-functions=20was=20= being=20lost;=20this=20patch=20=0A=20makes=20it=20be=20transmitted=20= faithfully.=0A=20=0A=20The=20reason=20is=20that=20we=20don't=20write=20= the=20full=20inlining=20for=20a=20wrapper=20into=0A=20an=20interface=20= file,=20because=20it's=20generated=20algorithmically=20from=20its=20= strictness=0A=20info.=20=20But=20previously=20the=20inline=20pragma=20as=20= being=20written=20out=20only=20when=20we=0A=20wrote=20out=20an=20= unfolding,=20and=20hence=20it=20was=20lost=20for=20a=20wrapper.=0A=20=0A=20= This=20makes=20a=20particular=20difference=20when=20a=20function=20has=20= a=20NOINLINE[k]=20pragma.=0A=20Then=20it=20may=20be=20w/w'd,=20and=20we=20= must=20retain=20the=20pragma.=20=20It's=20the=20only=20consistent=0A=20= thing=20to=20do=20really.=0A=20=0A=20The=20change=20does=20change=20the=20= binary=20format=20of=20interface=20files,=20slightly.=0A=20So=20you=20= need=20to=20recompile=20all=20your=20libraries.=0A=20=0A]=20=0A[Improved=20= RULE=20lhs=20typechecking;=20less=20dictionary=20sharing=0A= [email protected]**20060519103433=0A=20=0A=20See=20long=20comment=20= with=20Simplify.tcSimplifyRuleLhs.=0A=20=0A=20Here's=20the=20key=20= example:=0A=20=0A=20=20=20RULE=20"g"=20=20forall=20x=20y=20z.=20g=20(x=20= =3D=3D=20y)=20(y=20=3D=3D=20z)=20=3D=20...=0A=20=0A=20Here,=20the=20two=20= dictionaries=20are=20*identical*,=20but=20we=20do=20NOT=20WANT=20to=0A=20= generate=20the=20rule=0A=20=0A=20RULE=09forall=20x::a,=20y::a,=20z::a,=20= d1::Eq=20a=0A=20=09=20=20f=20((=3D=3D)=20d1=20x=20y)=20((>)=20d1=20y=20= z)=20=3D=20...=0A=20=0A=20Instead=20we=20want=0A=20=0A=20RULE=09forall=20= x::a,=20y::a,=20z::a,=20d1::Eq=20a,=20d2:Eq=20a=0A=20=09=20=20f=20((=3D=3D= )=20d1=20x=20y)=20((>)=20d2=20y=20z)=20=3D=20...=0A=20=0A]=20=0A[Bug-fix=20= for=20infix=20function=20definitions=20(parse/rename)=0A= [email protected]**20060519095022=0A=20=20=20=0A=20Fix=20a=20crash=20= provoked=20by=0A=20=0A=20=09x=20`op`=20y=20=3D=20x=0A=20=09op=20=20=20=20= =20=20=20=3D=20True=0A=20=0A=20The=20trouble=20was=20that=20there=20is=20= currently=20a=20single=20'infix'=20flag=20for=20the=0A=20whole=20group;=20= and=20RnTypes.checkPrecMatch=20was=20therefore=20expecting=20the=0A=20= second=20eqn=20to=20have=20two=20args.=0A=20=0A=20This=20fixes=20the=20= crash,=20and=20also=20or-s=20the=20infix=20flags=20for=20the=20various=0A= =20eqns=20together;=20previously=20it=20was=20just=20taken=20from=20the=20= first=20eqn,=20which=0A=20was=20wrong.=0A=20=0A=20=0A]=20=0A[Remove=20= [email protected]**20060519094936]=20=0A[Fix=20= a=20nasty=20continuation-duplication=20bug=0A= [email protected]**20060518163617=0A=20=0A=20For=20a=20long-time=20= mkDupableCont=20has=20had=20a=20bug=20that=20allows=20it=20to=20= duplicate=0A=20an=20arbitrary=20continuation,=20which=20it=20should=20= not=20do,=20of=20course.=0A=20=0A=20The=20bug=20was=20that=20in=20the=20= Select=20case=20of=20mkDupableCont=20we=20were=20calling=0A=20= prepareCaseCont,=20which=20did=20not=20duplicate=20the=20continuation=20= if=20there=20is=0A=20but=20a=20single=20alternative.=20=20This=20is=20= quite=20right=20in=20the=20case=20of=20the=20call=0A=20in=20rebuildCase,=20= but=20quite=20wrong=20in=20mkDupableCont.=0A=20=0A=20The=20bug=20= manifest=20as=20follows.=20In=20the=20expression=0A=20=09f=20(case=20...=20= of=20{=20..several=20alts..=20})=0A=20(when=20f=20is=20strict),=20we=20= should=20transform=20to=0A=20=09f=20(...transformed=20arg...)=0A=20The=20= application=20of=20f=20should=20not=20be=20pushed=20down=20(see=20notes=20= with=20the=0A=20ArgOf=20case=20of=20mkDupableCont.=20=20But=20that=20was=20= not=20happening=20in=20an=20example=0A=20like=20this=20(see=20how=20the=20= call=20to=20f=20is=20pushed=20inwards).=0A=20=0A=20f=20(a=20`div`=20abs=20= (b::Int))=0A=20=09--->=0A=20=20=20=20=20case=20b_afT=20of=20wild_aHa=20{=20= GHC.Base.I#=20x_aHc=20->=0A=20=20=20=20=20let=20{=0A=20=20=20=20=20=20=20= $j_sIe=20::=20GHC.Prim.Int#=20->=20GHC.Base.Int=0A=20=20=20=20=20=20=20= []=0A=20=20=20=20=20=20=20$j_sIe=20=3D=0A=20=09\=20(ds1_aHr=20[Nothing=20= OneShot]=20::=20GHC.Prim.Int#)=20->=0A=20=09=20=20Foo7.f=0A=20=09=20=20=20= =20(case=20ds1_aHr=20of=20ds2_aHq=20{=0A=20=09=20=20=20=20=20=20=20= __DEFAULT=20->=0A=20=09=09=20case=20a_afS=20of=20wild1_aHM=20{=20= GHC.Base.I#=20x_aHO=20->=0A=20=09=09=20GHC.Base.I#=20(GHC.Base.divInt#=20= x_aHO=20ds2_aHq)=0A=20=09=09=20};=0A=20=09=20=20=20=20=20=20=200=20->=20= GHC.Err.divZeroError=20@=20GHC.Base.Int=0A=20=09=20=20=20=20=20})=0A=20=20= =20=20=20}=20in=20=0A=20=20=20=20=20=20=20case=20GHC.Prim.>=3D#=20x_aHc=20= 0=20of=20wild1_aHe=20[Dead=20Nothing]=20{=0A=20=09GHC.Base.False=20->=0A=20= =09=20=20let=20{=0A=20=09=20=20=20=20ds1_aHr=20::=20GHC.Prim.Int#=0A=20=09= =20=20=20=20[]=0A=20=09=20=20=20=20ds1_aHr=20=3D=20GHC.Prim.negateInt#=20= x_aHc=0A=20=09=20=20}=20in=20=20$j_sIe=20ds1_aHr;=0A=20=09GHC.Base.True=20= ->=20$j_sIe=20x_aHc=0A=20=20=20=20=20=20=20}=0A=20=20=20=20=20}=0A=20=0A=20= =0A]=20=0A[Make=20simplifier=20report=20which=20phase=20it=20is=20doing=20= [email protected]**20060518163448]=20=0A= [[email protected]**20060518163425]=20=0A[take=20= parsec=20out=20of=20$(GhcBootLibs)=0ASimon=20Marlow=20= <[email protected]>**20060518131506]=20=0A[Improve=20documentation=20= [email protected]**20060518113212]=20=0A[a=20= couple=20of=20additions=0ASimon=20Marlow=20= <[email protected]>**20060518104025]=20=0A[#define=20_REENTRANT=201=20= =20=20(needed=20to=20get=20the=20right=20errno=20on=20some=20OSs)=0A= Simon=20Marlow=20<[email protected]>**20060518103715=0A=20Partial=20= fix=20for=20hanging=20problems=20on=20Solaris=20and=20possibly=20*BSD.=0A= =20A=20similar=20fix=20is=20also=20required=20to=20= libraries/base/includes/HsBase.h.=0A]=20=0A[Declare=20this=20file=20to=20= be=20POSIX=0ASimon=20Marlow=20<[email protected]>**20060518102858=0A= =20This=20is=20simpler=20than=20using=20_POSIX_THREAD_SEMANTICS=20on=20= Solaris=20to=20get=0A=20the=20right=20version=20of=20ctime_r().=0A]=20=0A= [somewhere=20to=20keep=20track=20of=20release=20notes=20for=206.6=0A= Simon=20Marlow=20<[email protected]>**20060518074415]=20=0A[Newtype=20= data=20constructors=20get=20a=20compulsory=20unfolding=0A= [email protected]**20060517155009=0A=20=0A=20With=20this=20change,=20= newtype=20data=20constructors=20get=20a=20"compulsory"=20unfolding,=0A=20= which=20means=20that=20they=20*must*=20be=20inlined,=20and=20no=20= top-level=20definition=20of=0A=20the=20constructor=20is=20provided=20at=20= all.=20=20Since=20these=20constructors=20are=20no-ops,=0A=20I'm=20not=20= sure=20why=20this=20wasn't=20the=20case=20all=20along.=0A=20=0A]=20=0A= [[email protected]**20060517154936]=20=0A= [Retain=20InlinePragInfo=20on=20wrappers=0A= [email protected]**20060517154725=0A=20=0A=20For=20some=20reason,=20= when=20doing=20the=20worker/wrapper=20split,=20we=20transferred=20the=0A=20= InlinePragInfo=20from=20the=20original=20function,=20but=20expunging=20= it=20from=20the=20wrapper.=0A=20This=20meant,=20for=20example,=20that=20= a=20NOINLINE=20function=20would=20have=20its=20wrapper=0A=20inlined,=20= which=20isn't=20sensible.=0A=20=0A=20For=20a=20change,=20fixing=20a=20= bug=20involves=20only=20deleting=20code!=0A=20=0A]=20=0A[Spelling=20= [email protected]**20060517154710]=20=0A[Retain=20= INLINE=20pragma=20information=20during=20indirection-shorting=0A= [email protected]**20060517154449=0A=20=0A=20During=20= indirection-shorting,=20we=20were=20dropping=20the=20InlinePragInfo,=0A=20= although=20were=20were=20carefully=20retaining=20strictness=20info=20= etc.=20=20=0A=20I=20think=20this=20is=20a=20long-standing=20bug.=0A=20=0A= ]=20=0A[Improve=20pretty-printing=0A= [email protected]**20060517154349]=20=0A[Comments=20only=0A= [email protected]**20060517154304]=20=0A[Improve=20pretty-printing=20= [email protected]**20060517154204]=20=0A[Let=20GHCi=20= work=20with=20with=20Sparc32+/V8+=20.o=20files=0ADuncan=20Coutts=20= <[email protected]>**20060516090430=0A=20Currently=20the=20= GHCi=20linker=20looks=20exclusively=20for=20V7=20ABI=20.o=20files.=0A=20=0A= =20You=20can=20generate=20V8+=20ABI=20.o=20files=20using=20flags=20to=20= gcc=20such=20as:=0A=20=20-optc-mcpu=3Dultrasparc=20-opta-mcpu=3Dultrasparc= =0A=20=0A=20Note=20that=20this=20allows=20gcc=20to=20generate=20hardware=20= integer=20division=20and=0A=20hardware=20floating=20point=20instructions=20= rather=20than=20using=20software=20emulation.=0A=20All=20recent=20sparc=20= hardware=20is=20V8+=20or=20later.=20Perhaps=20we=20should=20check=20for=20= the=0A=20cpu=20generation=20in=20configure=20and=20use=20the=20later=20= ABI=20if=20possible.=0A=20=0A=20Tested=20briefly=20on=20a=20SunBlade=20= 100=20(TI=20UltraSparc=20IIe)=20sparc-unknown-linux=0A]=20=0A[match=20up=20= more=20closely=20with=20compiler/main/DynFlags.hs:machdepCCOpts=0ASimon=20= Marlow=20<[email protected]>**20060515090031=0A=20In=20particular,=20= add=20-fno-builtin=20to=20x86=20and=20x86_64,=20which=20was=20missing.=0A= ]=20=0A[set=20$(GhcVersion)=20and=20$(GhcPatchLevel)=20correctly=20when=20= $(UseStage1)=3D=3DYES=0ASimon=20Marlow=20= <[email protected]>**20060510124621]=20=0A[.raw_s=20and=20.s=20live=20= in=20$(odir),=20not=20the=20source=20dir=0ASimon=20Marlow=20= <[email protected]>**20060510121524]=20=0A[additions=20from=20= Reilly=20Hayes=0ASimon=20Marlow=20= <[email protected]>**20060510120000]=20=0A[some=20tweaks=20to=20the=20= HC=20bootstrapping=20instructions=0ASimon=20Marlow=20= <[email protected]>**20060510115236]=20=0A[Ignore=20unboxed=20= values=20in=20breakpoints.=0ALemmih=20= <[email protected]>**20060510072722]=20=0A[Don't=20read=20~/.ghci=20on=20= breakpoints.=0ALemmih=20<[email protected]>**20060509223455]=20=0A[make=20= it=20possible=20to=20define=20an=20alias=20for=20:quit=0ASimon=20Marlow=20= <[email protected]>**20060509083124]=20=0A[Do=20not=20put=20= wired-in=20things=20in=20interface=20files=0A= [email protected]**20060508142946=0A=20=0A=20There=20is=20no=20need=20= for=20wired-in=20things=20to=20go=20into=20interface=20files;=20the=20= compiler=0A=20knows=20about=20them=20anyway.=20=20Worse,=20it=20turns=20= ou=20that=20if=20they=20are=20in=20an=20interface=0A=20file,=20they=20= may=20get=20read=20in=20with=20not-quite-right=20type=20info=20(e.g.=20= GHC.Err.error),=0A=20and=20the=20not-quite-right=20thing=20gets=20into=20= the=20type=20envt.=20=20Than=20it=20gets=20used=20=0A=20instead=20of=20= the=20wired=20in=20thing.=0A=20=0A=20Best=20all=20round=20never=20to=20= put=20them=20into=20interface=20files.=20=20This=20is=20the=20way=0A=20= it=20used=20to=20be,=20but=20it=20looks=20as=20if=20it=20rotted=20away=20= some=20time=20ago.=0A=20=0A=20(I=20noticed=20this=20when=20fixing=20= unsafePerformIO=20stuff,=20becuase=20'lazy'=20was=20getting=0A=20an=20= unfolding=20when=20it=20shouldn't.)=0A=20=0A]=20=0A[Remove=20NOINLINE=20= [email protected]**20060508142834=0A=20=0A=20The=20= stricteness=20analyser=20used=20to=20have=20a=20HACK=20which=20ensured=20= that=20NOINLNE=20things=0A=20were=20not=20strictness-analysed.=20=20The=20= reason=20was=20unsafePerformIO.=20Left=20to=20itself,=0A=20the=20= strictness=20analyser=20would=20discover=20this=20strictness=20for=20= unsafePerformIO:=0A=20=09unsafePerformIO:=20=20C(U(AV))=0A=20But=20then=20= consider=20this=20sub-expression=0A=20=09unsafePerformIO=20(\s=20->=20= let=20r=20=3D=20f=20x=20in=20=0A=20=09=09=09=20=20=20=20=20=20=20case=20= writeIORef=20v=20r=20s=20of=20(#=20s1,=20_=20#)=20->=0A=20=09=09=09=20=20= =20=20=20=20=20(#=20s1,=20r=20#)=0A=20The=20strictness=20analyser=20will=20= now=20find=20that=20r=20is=20sure=20to=20be=20eval'd,=0A=20and=20may=20= then=20hoist=20it=20out.=20=20This=20makes=20= tests/lib/should_run/memo002=0A=20deadlock.=0A=20=0A=20Solving=20this=20= by=20making=20all=20NOINLINE=20things=20have=20no=20strictness=20info=20= is=20overkill.=0A=20In=20particular,=20it's=20overkill=20for=20runST,=20= which=20is=20perfectly=20respectable.=0A=20Consider=0A=20=09f=20x=20=3D=20= runST=20(return=20x)=0A=20This=20should=20be=20strict=20in=20x.=0A=20=0A=20= So=20the=20new=20plan=20is=20to=20define=20unsafePerformIO=20using=20the=20= 'lazy'=20combinator:=0A=20=0A=20=09unsafePerformIO=20(IO=20m)=20=3D=20= lazy=20(case=20m=20realWorld#=20of=20(#=20_,=20r=20#)=20->=20r)=0A=20=0A=20= Remember,=20'lazy'=20is=20a=20wired-in=20identity-function=20Id,=20of=20= type=20a->a,=20which=20is=20=0A=20magically=20NON-STRICT,=20and=20is=20= inlined=20after=20strictness=20analysis.=20=20So=0A=20unsafePerformIO=20= will=20look=20non-strict,=20and=20that's=20what=20we=20want.=0A=20=0A=20= Now=20we=20don't=20need=20the=20hack=20in=20the=20strictness=20analyser.=0A= =20=0A]=20=0A[[email protected]**20060508141804]=20=0A= [[email protected]**20060508141713]=20=0A= [GHC_MANGLER-->MANGLER=0ASimon=20Marlow=20= <[email protected]>**20060508111206]=20=0A[Fix=20bug=20#763:=20= Breakpoint=20mechanism=20crashes=20when=20there's=20a=20type=20error.=0A= Lemmih=20<[email protected]>**20060505232158]=20=0A[breakpointCond=0A= Lemmih=20<[email protected]>**20060502174340]=20=0A[Preserve=20type=20= variable=20names=20during=20type=20inference=0A= [email protected]**20060505153753=0A=20=0A=20During=20unification=20= we=20attempt=20to=20preserve=20the=20print-names=20of=20type=20= variables,=0A=20so=20that=20type=20error=20messages=20tend=20to=20= mention=20type=20variables=20using=20the=20=0A=20programmer's=20= vocabulary.=20=20=0A=20=0A=20This=20had=20bit-rotted=20a=20bit=20when=20= I=20added=20impredicative=20polymorphism;=20especially=0A=20when=20= unBoxing=20a=20boxy=20type=20variable=20we=20should=20not=20gratuitously=20= lose=20its=20name.=0A=20=0A]=20=0A[Trim=20imports=0A= [email protected]**20060505150506]=20=0A[fixup=20for=20new=20source=20= tree=20layout=0ASimon=20Marlow=20= <[email protected]>**20060505114100]=20=0A[FPTOOLS_TOP-->GHC_TOP,=20= and=20remove=20some=20references=20to=20"fptools"=0ASimon=20Marlow=20= <[email protected]>**20060505110520]=20=0A[$(FPTOOLS_TOP)=20is=20= now=20known=20as=20$(GHC_TOP)=0ASimon=20Marlow=20= <[email protected]>**20060505110127=0A=20I=20kept=20$(FPTOOLS_TOP)=20= as=20an=20alias=20for=20$(GHC_TOP)=20while=20we=20switch=0A]=20=0A= [update=20the=20build=20system=20documentation=0ASimon=20Marlow=20= <[email protected]>**20060505105843]=20=0A[update=20for=20new=20= source=20tree=20layout=0ASimon=20Marlow=20= <[email protected]>**20060505102903]=20=0A[partial=20update=20for=20= new=20source=20tree=20layout=0ASimon=20Marlow=20= <[email protected]>**20060505030218]=20=0A[update=20for=20new=20= source=20tree=20layout=20(untested)=0ASimon=20Marlow=20= <[email protected]>**20060505081549]=20=0A[Print=20a=20more=20= helpful=20error=20for=20find_thing=0A= [email protected]**20060504153337]=20=0A[Fix=20a=20bug=20in=20rule=20= [email protected]**20060504112430=0A=20=0A=20The=20rule=20= matcher=20uses=20a=20"rough-match"=20pre-filter,=20which=20was=20being=20= too=20=0A=20aggressive.=20=20The=20case=20looked=20like=20this:=0A=20=0A=20= =09rule:=09f=20True=0A=20=09expr:=09case=20e=20of=20x=20{=20True=20->=20= f=20x=20}=0A=20=0A=20Jues=20because=20x=20doesn't=20immediately=20look=20= like=20True,=20we=20shouldn't=20say=0A=20"can't=20match",=20but=20that=20= is=20exactly=20what=20ruleCantMatch=20was=20doing.=0A=20=0A=20=0A]=20=0A= [Fix=20constructor-specialisation=20bug=0A= [email protected]**20060504112131=0A=20=0A=20The=20= constructor-specialisation=20optimisation=20was=20not=20dealing=20with=20= the=20case=0A=20of=20=0A=20=09(letrec=20...=20in=20f)=20a1=20a2=0A=20=0A=20= We=20need=20to=20apply=20constructor=20specialisation=20in=20the=20= letrec;=20previously=0A=20we=20were=20leaving=20it=20untouched=20on=20= the=20grounds=20that=20the=20function=20part=20of=0A=20an=20application=20= is=20almost=20always=20a=20variable.=0A=20=0A=20But=20in=20fact,=20= float-in=20immediately=20precedes=20SpecConstr,=20so=20we=20can=20get=0A=20= these=20odd-looking=20applications.=0A=20=0A=20=0A]=20=0A[Fix=20= precedence=20for=20records=20in=20derived=20Read=0A= [email protected]**20060504111804=0A=20=0A=20The=20derived=20= instance=20for=20Read=20of=20records=20wasn't=20quite=20right.=0A=20= Consider=0A=20=09data=20T=20=3D=20T1=20T=20|=20T2=20{=20x::Int=20}=0A=20=0A= =20The=20string=20"T1=20T2=20{=20x=3D2=20}"=20should=20parse=20correctly=20= as=20=0A=20=09T1=20(T2=20{x=3D2})=0A=20because=20of=20Haskell's=20odd=20= precedence=20rules=20(record=20construction=20binds=0A=20even=20more=20= tightly=20than=20application),=20but=20the=20derived=20Read=20didn't=20= take=0A=20account=20of=20that.=0A=20=0A=20drvrun020=20is=20the=20= regression=20test=0A=20=0A=20=0A]=20=0A[Make=20rules=20available=20in=20= [email protected]**20060504111500=0A=20=0A=20After=20some=20= earlier=20re-factoring,=20the=20code=20that=20was=20carefully=20trying=0A= =20to=20make=20RULES=20available=20in=20a=20function's=20own=20RHS=20was=20= plain=20wrong.=0A=20=0A=20This=20commit=20fixes=20it.=20=20Some=20= programs=20should=20go=20faster!=0A=20=0A]=20=0A[Pretty=20printing=20= [email protected]**20060504111429]=20=0A= [small=20clarification=0ASimon=20Marlow=20= <[email protected]>**20060504103414]=20=0A[small=20fix=20to=20= booting=20instructions=20from=20#762=0ASimon=20Marlow=20= <[email protected]>**20060504083104]=20=0A[$(ProjectNameShort)=20=3D>= =20ghc=0ASimon=20Marlow=20<[email protected]>**20060503102419]=20=0A= [only=20pass=20-fno-unit-at-a-time=20to=20gcc=20if=20it=20is=20supported=0A= Simon=20Marlow=20<[email protected]>**20060503093614]=20=0A[Arrange=20= that=20-fth=20is=20no=20longer=20implied=20by=20-fglasgow-exts=0A= [email protected]**20060426182114=0A=20=0A=20Messages=20involving=20= Template=20Haskell=20are=20deeply=20puzzling=0A=20if=20you=20don't=20= know=20about=20TH,=20so=20it=20seems=20better=20to=20make=0A=20-fth=20an=20= explicit=20flag.=20=20It=20is=20no=20longer=20switched=20on=0A=20by=20= -fglasgow-exts.=0A=20=0A]=20=0A[remove=20code=20not=20required=20in=20= the=20new=20source=20tree=20layout=0ASimon=20Marlow=20= <[email protected]>**20060502114235]=20=0A[move=20"compat"=20= earlier=20in=20the=20build=20for=20.hc=20bootstrapping=0ASimon=20Marlow=20= <[email protected]>**20060502112001]=20=0A[fix=20ctime_r=20problem=20= on=20Solaris=20(I=20hope)=0ASimon=20Marlow=20= <[email protected]>**20060502111231]=20=0A[fix=20whitespace=20= problem=20that=20shows=20up=20on=20Solaris=20(x86)=0ASimon=20Marlow=20= <[email protected]>**20060502110001]=20=0A[libraries/time=20is=20= boring=0ASimon=20Marlow=20<[email protected]>**20060502105524]=20=0A= [add=20time=20package=20to=20libraries=20Makefile=0AAshley=20Yakeley=20= <[email protected]>**20060501092241]=20=0A[add=20time=20package=20to=20= default-packages=0AAshley=20Yakeley=20= <[email protected]>**20060426070445]=20=0A[Fix=20stage2=20segfault=20= [email protected]**20060428074811=0A=20=0A=20= Somewhere=20along=20the=206.5=20branch,=20gcc=20started=20compiling=20= the=20rts=20such=20that=0A=20it=20triggers=20the=20stack=20smash=20= handler,=20causing=20stage2=20to=20by=20kill'd=0A=20immediately.=20This=20= turns=20off=20the=20stack=20protector,=20which=20will=20do=20for=20now.=0A= =20=0A]=20=0A[fix=20quoting=20around=20${FPTOOLS_TOP_ABS}=20(fixes=20= #749)=0ASimon=20Marlow=20<[email protected]>**20060428085252]=20=0A= [Fix=20bug=20shown=20in=20the=20mod77=20test.=0ALemmih=20= <[email protected]>**20060427113313]=20=0A[Don't=20init=20root=20pointers=20= if=20they=20aren't=20gonna=20be=20used.=0ALemmih=20= <[email protected]>**20060426111143]=20=0A[Fix=20recompilation=20= checking.=0ASimon=20Marlow=20<[email protected]>**20060425140932=0A=20= One-shot=20compilation=20was=20throwing=20away=20the=20old=20iface=20= read=20by=0A=20checkOldIface,=20with=20the=20result=20that=20version=20= numbers=20were=20never=20being=0A=20incremented.=20=20Fixes=20the=20= recomp001=20test=20too.=0A]=20=0A[Solaris=20needs=20-lrt=20for=20the=20= threaded=20RTS=0ASimon=20Marlow=20= <[email protected]>**20060425082823]=20=0A[fix=20problem=20with=20= binary-dist=20docs=0ASimon=20Marlow=20= <[email protected]>**20060424090159]=20=0A[Enable=20breakpoint=20= support.=0ALemmih=20<[email protected]>**20060421113112]=20=0A[Fixing=20= some=20lexer=20errors=20with=20extcore=0AJosef=20Svenningsson=20= <[email protected]>**20060420222625]=20=0A[Extcore=20can=20= now=20handle=20data=20types=20without=20constructors=0AJosef=20= Svenningsson=20<[email protected]>**20060420213622]=20=0A= [Comments=20only=0AJosef=20Svenningsson=20= <[email protected]>**20060420213555]=20=0A[Resurrect=20= [email protected]**20060421085125]=20=0A[Remove=20the=20= section=20on=20platform=20support,=20link=20to=20the=20wiki=20page=0A= Simon=20Marlow=20<[email protected]>**20060420125555=0A=20The=20= section=20in=20the=20building=20guide=20was=20becoming=20out=20of=20= date,=20a=20wiki=0A=20page=20is=20much=20more=20likely=20to=20be=20kept=20= fresh.=0A]=20=0A[Fix=20workaround=20for=20a=20GHC=206.4=20bug=0A= [email protected]**20060420044223]=20=0A[hslibs=20is=20dead,=20Jim...=0A= [email protected]**20060419144609]=20=0A[Synched=20.spec=20file=20= [email protected]**20060419143138]=20=0A[Add=20.spec=20= file=20to=20source=20distribution=0A= [email protected]**20060419103725]=20=0A[remove=20paragraph=20about=20= mutable=20objects=20that=20doesn't=20apply=20now=0ASimon=20Marlow=20= <[email protected]>**20060419082038]=20=0A[HsBool=20should=20be=20= HsInt,=20not=20StgBool=0ASimon=20Marlow=20= <[email protected]>**20060418144214=0A=20StgBool=20is=20mapped=20to=20= C's=20int=20type.=20=20GHC=20doesn't=20currently=20know=20the=0A=20size=20= of=20a=20C=20int=20on=20the=20target=20arch,=20it's=20easier=20to=20use=20= StgInt=20instead.=0A=20I=20guess=20nobody=20ever=20uses=20Bool=20= arguments=20to=20foreign=20imports/exports.=0A]=20=0A[handle=20Bool=20= arg=20to=20foreign=20import=20"wrapper"=0ASimon=20Marlow=20= <[email protected]>**20060418143936=0A=20Fixes=20#746=0A]=20=0A= [update=20commentry=20for=20foreign=20import=20"wrapper"=20handling=0A= Simon=20Marlow=20<[email protected]>**20060418143714]=20=0A[remove=20= vestiges=20of=20ByteArray=20and=20MutableByteArray,=20which=20are=20no=20= more=0ASimon=20Marlow=20<[email protected]>**20060418143641]=20=0A= [[email protected]**20060418125624]=20=0A[Fix=20= [email protected]**20060418125350=0A=20=0A=20= GHC=20does=20not=20now=20do=20"hoisting"=20as=20it=20used=20to.=20=20= Instead,=20it=20allows=0A=20foralls=20to=20the=20right=20of=20fuction=20= arrows,=20as=20well=20as=20to=20the=20left.=0A=20=0A=20But=20the=20= type-validity=20tester=20hadn't=20caught=20up.=20=20This=20commit=20= fixes=20=0A=20it.=20The=20test=20is=20tc203.=0A=20=0A=20Incidentally,=20= GHC=20still=20doesn't=20let=20you=20write=0A=20=09forall=20a.=20Eq=20a=20= =3D>=20forall=20b.=20b=20->=20b=0A=20because=20we=20get=20a=20zillion=20= reduce/reduce=20errors=20if=20we=20allow=20that.=20=20I'm=0A=20sure=20= it's=20fixable.=20=20But=20meanwhile=20you=20have=20to=20use=20an=20= auxiliary=20type=0A=20synonym,=20which=20is=20a=20bit=20stupid.=0A=20=0A=20= =0A]=20=0A[Make=20the=20initial=20rdr=20and=20type=20scope=20available=20= in=20the=20ghc-api.=0ALemmih=20<[email protected]>**20060418023606]=20=0A= [Fix=20minor=20bug=20in=20Linker.withExtendedLinkEnv=0ALemmih=20= <[email protected]>**20060418023518]=20=0A[Export=20'insertSymbol'=20and=20= 'insertStableSymbol'.=0ALemmih=20<[email protected]>**20060418021806=0A=20= =0A=20'insertStableSymbol'=20is=20used=20for=20exporting=20closures=20= that=20are=20affected=20by=20the=20GC.=0A=20=0A]=20=0A[Allow=20$x,=20as=20= well=20as=20$(x),=20at=20top=20level=20in=20TH=0A= [email protected]**20060414121907=0A=20=0A=20Bulat=20pointed=20out=20= that=20in=20Template=20Haskell=0A=20=20=20=20$x=0A=20is=20allowed=20= instead=20of=20=0A=20=20=20=20$(x)=0A=20in=20expressions,=20but=20not=20= at=20the=20top=20level=20of=20modules.=0A=20=0A=20This=20commit=20fixes=20= the=20omission.=20=20Now=20you=20can=20say=0A=20=0A=20=09f=20x=20=3D=20x=0A= =20=20=09$h=0A=20=09data=20T=20=3D=20T=0A=20=0A=20and=20the=20$h=20will=20= run=20Template=20Haskell=20just=20as=20you'd=20expect.=0A=20=0A]=20=0A= [Fix=20TH=20erorr=20recovery=20(test=20is=20TH_recover)=0A= [email protected]**20060414120411]=20=0A[Comments=20only=0A= [email protected]**20060414120359]=20=0A[Recover=20gracefully=20from=20= a=20Template=20Haskell=20programmers=20error=0A= [email protected]**20060414115831=0A=20=0A=20If=20a=20TH=20= programmer=20uses=20a=20type=20constructor=20as=20a=20data=20= constructor,=0A=20GHC=20simply=20crashed.=20=20This=20commit=20makes=20= it=20report=20the=20error=20in=20a=0A=20graceful=20way.=0A=20=0A]=20=0A= [Document=20newtype-unwrapping=20for=20IO=20in=20FFI=0A= [email protected]**20060414105212]=20=0A[Cosmetics=20in=20SpecConstr=0A= [email protected]**20060412152721=0A=20=0A=20SpecConstr=20currently=20= uses=20substExpr=20for=20tiresome=20reasons=20to=20do=20with=0A=20GADTs.=20= =20Unfortunately=20the=20substExpr=20generates=20some=20WARNINGS=20(when=20= DEBUG)=0A=20is=20on,=20because=20we=20aren't=20adding=20all=20the=20= in-scope=20Ids=20to=20the=20in-scope=0A=20set=20of=20the=20substitution.=0A= =20=0A=20When=20we=20move=20to=20FC=20these=20substExprs=20will=20go=20= away,=20so=20I'm=20not=20going=20to=0A=20worry=20about=20this=20now.=0A=20= =0A]=20=0A[Improve=20pruning=20of=20case=20alternatives=20to=20account=20= [email protected]**20060412152327=0A=20=0A=20Consider=0A= =20=0A=20=20=20data=20T=20a=20where=0A=20=20=20=20=20T1=20::=20T=20Int=0A= =20=20=20=20=20T2=20::=20T=20Bool=0A=20=20=20=20=20T3=20::=20T=20Char=0A=20= =0A=20=20=20f=20::=20T=20Bool=20->=20Int=0A=20=20=20f=20x=20=3D=20case=20= x=20of=0A=20=09=20=20DEFAULT=20->=20...=0A=20=09=20=20T2=20->=203=0A=20=0A= =20Here=20the=20DEFAULT=20case=20covers=20multiple=20constructors=20= (T1,T3),=20but=20none=20=0A=20of=20them=20can=20match=20a=20scrutinee=20= of=20type=20(T=20Bool).=20=20So=20we=20can=20prune=20away=0A=20the=20= default=20case=20altogether.=0A=20=0A=20In=20implementing=20this,=20I=20= re-factored=20this=20bit=20of=20the=20simplifier,=20elminiating=0A=20= prepareAlts=20from=20SimplUtils,=20and=20putting=20all=20the=20work=20= into=20simplAlts=20in=0A=20Simplify=0A=20=0A=20The=20proximate=20cause=20= was=20a=20program=20written=20by=20Manuel=20using=20PArrays=0A=20=0A]=20=0A= [Fix=20a=20bug=20in=20optimising=20division=20to=20shift=20right=0ASimon=20= Marlow=20<[email protected]>**20060412144247=0A=20Division=20by=20= an=20integral=20log2=20can't=20be=20directly=20optimised=20to=20a=20= shift=0A=20right,=20because=20shift=20right=20behaves=20like=20a=20= division=20that=20rounds=20to=0A=20negative=20infinity,=20whereas=20we=20= want=20one=20that=20rounds=20to=20zero.=20=20Fix=20this=0A=20by=20adding=20= (divisor-1)=20to=20the=20dividend=20when=20it=20is=20negative=20before=0A= =20shifting.=20=20We=20do=20this=20without=20jumps,=20generating=20very=20= slightly=20worse=0A=20code=20than=20gcc,=20which=20uses=20conditional=20= moves=20on=20CPUs=20that=20support=20it.=0A]=20=0A[Omit=20lndir=20on=20= Windows,=20as=20it=20used=20to=20be=0A= [email protected]**20060411135334]=20=0A[remove=20a=20trace=0ASimon=20= Marlow=20<[email protected]>**20060411131531]=20=0A[Allow=20IO=20to=20= be=20wrapped=20in=20a=20newtype=20in=20foreign=20import/export=0A= [email protected]**20060411120441=0A=20=0A=20Up=20to=20now,=20the=20= silent=20unwrapping=20of=20newtypes=20in=20foreign=20import/export=0A=20= has=20been=20limited=20to=20data=20values.=20=20But=20it's=20useful=20= for=20the=20IO=20monad=0A=20itself:=0A=20=0A=20=09newtype=20MyIO=20a=20=3D= =20MIO=20(IO=20a)=0A=20=0A=20=09foreign=20import=20foo=20::=20Int=20->=20= MyIO=20Int=0A=20=0A=20This=20patch=20allows=20the=20IO=20monad=20to=20be=0A= =20wrapped=20too.=20This=20applies=20to=20foreign=20import=20"dynamic"=20= and=20"wrapper",=20=0A=20thus=0A=20=20=20=20foreign=20import=20"wrapper"=20= foo=20::=20MyIO=20()=20->=20HisIO=20(FunPtr=20(MyIO=20()))=20=0A=20=0A=20= Warning:=20I=20did=20on=20the=20plane,=20and=20I'm=20no=20longer=20sure=20= if=20its=20100%=20=0A=20complete,=20so=20needs=20more=20testing.=20=20In=20= particular=20the=20wrapper/dynamic=20bit.=0A=20=0A]=20=0A[Improve=20= [email protected]**20060402215911=0A=20=0A=20= Ross=20Paterson=20pointed=20out=20a=20useful=20generalisation=20of=20= GHC's=20=0A=20newtype-deriving=20mechanism.=20=20This=20implements=20it.=20= =20The=20idea=0A=20is=20to=20allow=0A=20=09newtype=20Wrap=20m=20a=20=3D=20= Wrap=20(m=20a)=20deriving=20(Monad,=20Eq)=0A=20where=20the=20= representation=20type=20doesn't=20start=20with=20a=20type=0A=20= constructor.=0A=20=0A=20Actually=20GHC=20already=20*did*=20implement=20= this,=20but=20the=20eta-ok=0A=20check=20in=20TcDeriv=20missed=20a=20= case,=20so=20there=20was=20a=20lurking=20bug.=0A=20=0A=20This=20patches=20= fixes=20the=20documentation=20too.=20=20drvrun019=20tests.=0A=20=0A=20=0A= ]=20=0A[add=20take=20to=20the=20list=20of=20functions=20deforestable=0A= Simon=20Marlow=20<[email protected]>**20060411090131]=20=0A[avoid=20= versionitis=20in=20Numeric.showHex=20(should=20fix=20tcrun007)=0ASimon=20= Marlow=20<[email protected]>**20060411085009]=20=0A[add=20a=20note=20= about=20full-laziness=0ASimon=20Marlow=20= <[email protected]>**20060410093824]=20=0A[robustify=20the=20test=20= for=20the=20top=20of=20the=20tree=20a=20little=0ASimon=20Marlow=20= <[email protected]>**20060410082224]=20=0A[Make=20darcs-all=20work=20= without=20a=20ghc=20toplevel=20directory=0AJosef=20Svenningsson=20= <[email protected]>**20060407161738]=20=0A[Fix=20typo=20in=20= darcsall=20warning=0AJosef=20Svenningsson=20= <[email protected]>**20060407161335]=20=0A[fix=20source=20= dists=0ASimon=20Marlow=20<[email protected]>**20060407150045]=20=0A= [add=20a=20README=20for=20binary=20dists=0ASimon=20Marlow=20= <[email protected]>**20060407143832]=20=0A[fix=20binary=20dists=0A= Simon=20Marlow=20<[email protected]>**20060407143822]=20=0A[remove=20= the=20last=20bits=20of=20the=20ghc/=20subdir=0ASimon=20Marlow=20= <[email protected]>**20060407085219]=20=0A[TAG=2007.04.06=0ALemmih=20= <[email protected]>**20060407130411]=20=0APatch=20bundle=20hash:=0A= a666793e57743676550506b673371fbe421b8857=0A= --Apple-Mail-2--123224419 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc --Apple-Mail-2--123224419--