Quantcast

RE: [commit: ghc] master: Deserialize IfaceId more lazily (6446254)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: [commit: ghc] master: Deserialize IfaceId more lazily (6446254)

GHC - devs mailing list
Reid

I beg you to add a comment to these carefully-placed used of laziness!
The informative commit message does not appear in the code :-).

Simon

|  -----Original Message-----
|  From: ghc-commits [mailto:[hidden email]] On Behalf
|  Of [hidden email]
|  Sent: 03 March 2017 21:36
|  To: [hidden email]
|  Subject: [commit: ghc] master: Deserialize IfaceId more lazily
|  (6446254)
|  
|  Repository : ssh://[hidden email]/ghc
|  
|  On branch  : master
|  Link       :
|  https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fghc.ha
|  skell.org%2Ftrac%2Fghc%2Fchangeset%2F644625449a9b6fbeb9a81f1a7d0e7d184
|  24fb707%2Fghc&data=02%7C01%7Csimonpj%40microsoft.com%7C9b1a8ffea4684b8
|  f5e7608d4627d690f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6362417
|  38152433434&sdata=H81TTDPPgdp%2BYQzqRFUtiyyfm%2Fn6YRQT%2BoOpJuehsOU%3D
|  &reserved=0
|  
|  >---------------------------------------------------------------
|  
|  commit 644625449a9b6fbeb9a81f1a7d0e7d18424fb707
|  Author: Reid Barton <[hidden email]>
|  Date:   Fri Mar 3 15:49:38 2017 -0500
|  
|      Deserialize IfaceId more lazily
|  
|      This change sped up the total validate --build-only time by 0.8%
|      on my test system; hopefully a representative result.
|  
|      I didn't bother making the other constructors lazy because for
|      IfaceData and IfaceClass we need to pull on some of the fields
|      in loadDecl, and all the others seem much more rare than IfaceId.
|  
|      Test Plan: validate, perf
|  
|      Reviewers: austin, bgamari
|  
|      Reviewed By: bgamari
|  
|      Subscribers: thomie
|  
|      Differential Revision: https://phabricator.haskell.org/D3269
|  
|  
|  >---------------------------------------------------------------
|  
|  644625449a9b6fbeb9a81f1a7d0e7d18424fb707
|   compiler/iface/IfaceSyn.hs | 8 ++------
|   1 file changed, 2 insertions(+), 6 deletions(-)
|  
|  diff --git a/compiler/iface/IfaceSyn.hs b/compiler/iface/IfaceSyn.hs
|  index d73a738..1c30476 100644
|  --- a/compiler/iface/IfaceSyn.hs
|  +++ b/compiler/iface/IfaceSyn.hs
|  @@ -1565,9 +1565,7 @@ instance Binary IfaceDecl where
|       put_ bh (IfaceId name ty details idinfo) = do
|           putByte bh 0
|           putIfaceTopBndr bh name
|  -        put_ bh ty
|  -        put_ bh details
|  -        put_ bh idinfo
|  +        lazyPut bh (ty, details, idinfo)
|  
|       put_ bh (IfaceData a1 a2 a3 a4 a5 a6 a7 a8 a9) = do
|           putByte bh 2
|  @@ -1657,9 +1655,7 @@ instance Binary IfaceDecl where
|           h <- getByte bh
|           case h of
|               0 -> do name    <- get bh
|  -                    ty      <- get bh
|  -                    details <- get bh
|  -                    idinfo  <- get bh
|  +                    ~(ty, details, idinfo) <- lazyGet bh
|                       return (IfaceId name ty details idinfo)
|               1 -> error "Binary.get(TyClDecl): ForeignType"
|               2 -> do a1  <- getIfaceTopBndr bh
|  
|  _______________________________________________
|  ghc-commits mailing list
|  [hidden email]
|  https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.h
|  askell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-
|  commits&data=02%7C01%7Csimonpj%40microsoft.com%7C9b1a8ffea4684b8f5e760
|  8d4627d690f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6362417381524
|  33434&sdata=L1dvXY%2BW%2Brv4gMqeWm8BGfIPifKK0DBndoJVF%2FCfu0c%3D&reser
|  ved=0
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [commit: ghc] master: Deserialize IfaceId more lazily (6446254)

Reid Barton-2
Done in commit fdb594ed3286088c1a46c95f29e277fcc60c0a01.

Regards,
Reid

On Wed, Mar 8, 2017 at 7:18 AM, Simon Peyton Jones
<[hidden email]> wrote:

> Reid
>
> I beg you to add a comment to these carefully-placed used of laziness!
> The informative commit message does not appear in the code :-).
>
> Simon
>
> |  -----Original Message-----
> |  From: ghc-commits [mailto:[hidden email]] On Behalf
> |  Of [hidden email]
> |  Sent: 03 March 2017 21:36
> |  To: [hidden email]
> |  Subject: [commit: ghc] master: Deserialize IfaceId more lazily
> |  (6446254)
> |
> |  Repository : ssh://[hidden email]/ghc
> |
> |  On branch  : master
> |  Link       :
> |  https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fghc.ha
> |  skell.org%2Ftrac%2Fghc%2Fchangeset%2F644625449a9b6fbeb9a81f1a7d0e7d184
> |  24fb707%2Fghc&data=02%7C01%7Csimonpj%40microsoft.com%7C9b1a8ffea4684b8
> |  f5e7608d4627d690f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6362417
> |  38152433434&sdata=H81TTDPPgdp%2BYQzqRFUtiyyfm%2Fn6YRQT%2BoOpJuehsOU%3D
> |  &reserved=0
> |
> |  >---------------------------------------------------------------
> |
> |  commit 644625449a9b6fbeb9a81f1a7d0e7d18424fb707
> |  Author: Reid Barton <[hidden email]>
> |  Date:   Fri Mar 3 15:49:38 2017 -0500
> |
> |      Deserialize IfaceId more lazily
> |
> |      This change sped up the total validate --build-only time by 0.8%
> |      on my test system; hopefully a representative result.
> |
> |      I didn't bother making the other constructors lazy because for
> |      IfaceData and IfaceClass we need to pull on some of the fields
> |      in loadDecl, and all the others seem much more rare than IfaceId.
> |
> |      Test Plan: validate, perf
> |
> |      Reviewers: austin, bgamari
> |
> |      Reviewed By: bgamari
> |
> |      Subscribers: thomie
> |
> |      Differential Revision: https://phabricator.haskell.org/D3269
> |
> |
> |  >---------------------------------------------------------------
> |
> |  644625449a9b6fbeb9a81f1a7d0e7d18424fb707
> |   compiler/iface/IfaceSyn.hs | 8 ++------
> |   1 file changed, 2 insertions(+), 6 deletions(-)
> |
> |  diff --git a/compiler/iface/IfaceSyn.hs b/compiler/iface/IfaceSyn.hs
> |  index d73a738..1c30476 100644
> |  --- a/compiler/iface/IfaceSyn.hs
> |  +++ b/compiler/iface/IfaceSyn.hs
> |  @@ -1565,9 +1565,7 @@ instance Binary IfaceDecl where
> |       put_ bh (IfaceId name ty details idinfo) = do
> |           putByte bh 0
> |           putIfaceTopBndr bh name
> |  -        put_ bh ty
> |  -        put_ bh details
> |  -        put_ bh idinfo
> |  +        lazyPut bh (ty, details, idinfo)
> |
> |       put_ bh (IfaceData a1 a2 a3 a4 a5 a6 a7 a8 a9) = do
> |           putByte bh 2
> |  @@ -1657,9 +1655,7 @@ instance Binary IfaceDecl where
> |           h <- getByte bh
> |           case h of
> |               0 -> do name    <- get bh
> |  -                    ty      <- get bh
> |  -                    details <- get bh
> |  -                    idinfo  <- get bh
> |  +                    ~(ty, details, idinfo) <- lazyGet bh
> |                       return (IfaceId name ty details idinfo)
> |               1 -> error "Binary.get(TyClDecl): ForeignType"
> |               2 -> do a1  <- getIfaceTopBndr bh
> |
> |  _______________________________________________
> |  ghc-commits mailing list
> |  [hidden email]
> |  https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.h
> |  askell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-
> |  commits&data=02%7C01%7Csimonpj%40microsoft.com%7C9b1a8ffea4684b8f5e760
> |  8d4627d690f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6362417381524
> |  33434&sdata=L1dvXY%2BW%2Brv4gMqeWm8BGfIPifKK0DBndoJVF%2FCfu0c%3D&reser
> |  ved=0
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Loading...