RE: Help with debugging a batch mode (or type checker) bug

2019-10-15 Thread Simon Peyton Jones via ghc-devs
Great.  Before you are done with this patch, let's make sure there is an 
overview Note to explain the big picture.

Simon

|  -Original Message-
|  From: Ömer Sinan Ağacan 
|  Sent: 15 October 2019 08:31
|  To: Simon Peyton Jones 
|  Cc: ghc-devs 
|  Subject: Re: Help with debugging a batch mode (or type checker) bug
|  
|  Just confirmed that this is the problem -- thanks again.
|  
|  Ömer
|  
|  
|  Ömer Sinan Ağacan , 15 Eki 2019 Sal, 10:04
|  tarihinde şunu yazdı:
|  >
|  > Thanks Simon,
|  >
|  > I can't confirm just yet, because it's impossible to print the Id
|  details in the
|  > TypeEnv (probably because of some know-tying somewhere?), but looking at
|  the
|  > code I can't see where we update ModDetails returned by
|  hscIncrementalCompile in
|  > compileOne' (used by batch mode but not by one-shot mode), so I think
|  you're
|  > right about this being the problem.
|  >
|  > Ömer
|  >
|  > Simon Peyton Jones , 15 Eki 2019 Sal, 00:35
|  > tarihinde şunu yazdı:
|  > >
|  > > In --make mode, after compiling module M, rather than serialising M.hi
|  and the deserialising and typechecking it, we simply use the type
|  environment generated by compiling M and put it into M's entry of the Home
|  Package Table (HPT).
|  > >
|  > > But we have to take care to ensure that the IdInfo in that type-env
|  matches the IdInfo that would be obtained by reading M.hi.  This is the
|  tidy_type_env returned by TidyPgm.tidyPgm.
|  > >
|  > > Now, in your cafInfo work you are working out the CAFFy-ness of Ids
|  later, and popping this info into M's ModIface.  But of course, in --make
|  mode, you must _also_ put that same info into M's md_types type envt in
|  the ModDetails returned by tidyPgm.
|  > >
|  > > I bet that omitting that step is the problem.
|  > >
|  > > Simon
|  > >
|  > > | -Original Message-
|  > > | From: ghc-devs  On Behalf Of Ömer
|  Sinan
|  > > | Agacan
|  > > | Sent: 14 October 2019 20:31
|  > > | To: ghc-devs 
|  > > | Subject: Help with debugging a batch mode (or type checker) bug
|  > > |
|  > > | Hi,
|  > > |
|  > > | In !1304 I'm currently having a bug where I get correct IdInfos for
|  > > | imported Ids in one-shot mode (-c), but not when I use batch mode (-
|  -
|  > > | make). If I add a few prints I can see that in hscIncrementalCompile
|  > > | right before hscIncrementalFrontend the hsc_HPT has the correct
|  IdInfos
|  > > | for the imported Ids, but somehow in the desugarer output the IdInfo
|  is
|  > > | lost. Can anyone point me to the right places in the typechecker or
|  the
|  > > | desugarer for me to look at?
|  > > |
|  > > | Thanks,
|  > > |
|  > > | Ömer
|  > > | ___
|  > > | ghc-devs mailing list
|  > > | ghc-devs@haskell.org
|  > > |
|  https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.has
|  > > | kell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-
|  > > |
|  devsdata=02%7C01%7Csimonpj%40microsoft.com%7C82e14cca4ab94038a05208d
|  > > |
|  750dd31e1%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637066783278881153
|  > > |
|  sdata=grXCcgzashiOYGOLafr%2F32Q%2BYr5X1tonSavQ5pVlx0M%3Dreserve
|  > > | d=0
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Help with debugging a batch mode (or type checker) bug

2019-10-15 Thread Ömer Sinan Ağacan
Just confirmed that this is the problem -- thanks again.

Ömer


Ömer Sinan Ağacan , 15 Eki 2019 Sal, 10:04
tarihinde şunu yazdı:
>
> Thanks Simon,
>
> I can't confirm just yet, because it's impossible to print the Id details in 
> the
> TypeEnv (probably because of some know-tying somewhere?), but looking at the
> code I can't see where we update ModDetails returned by hscIncrementalCompile 
> in
> compileOne' (used by batch mode but not by one-shot mode), so I think you're
> right about this being the problem.
>
> Ömer
>
> Simon Peyton Jones , 15 Eki 2019 Sal, 00:35
> tarihinde şunu yazdı:
> >
> > In --make mode, after compiling module M, rather than serialising M.hi and 
> > the deserialising and typechecking it, we simply use the type environment 
> > generated by compiling M and put it into M's entry of the Home Package 
> > Table (HPT).
> >
> > But we have to take care to ensure that the IdInfo in that type-env matches 
> > the IdInfo that would be obtained by reading M.hi.  This is the 
> > tidy_type_env returned by TidyPgm.tidyPgm.
> >
> > Now, in your cafInfo work you are working out the CAFFy-ness of Ids later, 
> > and popping this info into M's ModIface.  But of course, in --make mode, 
> > you must _also_ put that same info into M's md_types type envt in the 
> > ModDetails returned by tidyPgm.
> >
> > I bet that omitting that step is the problem.
> >
> > Simon
> >
> > | -Original Message-
> > | From: ghc-devs  On Behalf Of Ömer Sinan
> > | Agacan
> > | Sent: 14 October 2019 20:31
> > | To: ghc-devs 
> > | Subject: Help with debugging a batch mode (or type checker) bug
> > |
> > | Hi,
> > |
> > | In !1304 I'm currently having a bug where I get correct IdInfos for
> > | imported Ids in one-shot mode (-c), but not when I use batch mode (--
> > | make). If I add a few prints I can see that in hscIncrementalCompile
> > | right before hscIncrementalFrontend the hsc_HPT has the correct IdInfos
> > | for the imported Ids, but somehow in the desugarer output the IdInfo is
> > | lost. Can anyone point me to the right places in the typechecker or the
> > | desugarer for me to look at?
> > |
> > | Thanks,
> > |
> > | Ömer
> > | ___
> > | ghc-devs mailing list
> > | ghc-devs@haskell.org
> > | https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.has
> > | kell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-
> > | devsdata=02%7C01%7Csimonpj%40microsoft.com%7C82e14cca4ab94038a05208d
> > | 750dd31e1%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637066783278881153
> > | sdata=grXCcgzashiOYGOLafr%2F32Q%2BYr5X1tonSavQ5pVlx0M%3Dreserve
> > | d=0
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Help with debugging a batch mode (or type checker) bug

2019-10-15 Thread Ömer Sinan Ağacan
Thanks Simon,

I can't confirm just yet, because it's impossible to print the Id details in the
TypeEnv (probably because of some know-tying somewhere?), but looking at the
code I can't see where we update ModDetails returned by hscIncrementalCompile in
compileOne' (used by batch mode but not by one-shot mode), so I think you're
right about this being the problem.

Ömer

Simon Peyton Jones , 15 Eki 2019 Sal, 00:35
tarihinde şunu yazdı:
>
> In --make mode, after compiling module M, rather than serialising M.hi and 
> the deserialising and typechecking it, we simply use the type environment 
> generated by compiling M and put it into M's entry of the Home Package Table 
> (HPT).
>
> But we have to take care to ensure that the IdInfo in that type-env matches 
> the IdInfo that would be obtained by reading M.hi.  This is the tidy_type_env 
> returned by TidyPgm.tidyPgm.
>
> Now, in your cafInfo work you are working out the CAFFy-ness of Ids later, 
> and popping this info into M's ModIface.  But of course, in --make mode, you 
> must _also_ put that same info into M's md_types type envt in the ModDetails 
> returned by tidyPgm.
>
> I bet that omitting that step is the problem.
>
> Simon
>
> | -Original Message-
> | From: ghc-devs  On Behalf Of Ömer Sinan
> | Agacan
> | Sent: 14 October 2019 20:31
> | To: ghc-devs 
> | Subject: Help with debugging a batch mode (or type checker) bug
> |
> | Hi,
> |
> | In !1304 I'm currently having a bug where I get correct IdInfos for
> | imported Ids in one-shot mode (-c), but not when I use batch mode (--
> | make). If I add a few prints I can see that in hscIncrementalCompile
> | right before hscIncrementalFrontend the hsc_HPT has the correct IdInfos
> | for the imported Ids, but somehow in the desugarer output the IdInfo is
> | lost. Can anyone point me to the right places in the typechecker or the
> | desugarer for me to look at?
> |
> | Thanks,
> |
> | Ömer
> | ___
> | ghc-devs mailing list
> | ghc-devs@haskell.org
> | https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.has
> | kell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-
> | devsdata=02%7C01%7Csimonpj%40microsoft.com%7C82e14cca4ab94038a05208d
> | 750dd31e1%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637066783278881153
> | sdata=grXCcgzashiOYGOLafr%2F32Q%2BYr5X1tonSavQ5pVlx0M%3Dreserve
> | d=0
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs