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

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:ghc-commits-bounces@haskell.org] On Behalf
| Of git@git.haskell.org
| Sent: 03 March 2017 21:36
| To: ghc-commits@haskell.org
| Subject: [commit: ghc] master: Deserialize IfaceId more lazily
| (6446254)
|
| Repository : ssh://git@git.haskell.org/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

Done in commit fdb594ed3286088c1a46c95f29e277fcc60c0a01.
Regards,
Reid
On Wed, Mar 8, 2017 at 7:18 AM, Simon Peyton Jones
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:ghc-commits-bounces@haskell.org] On Behalf | Of git@git.haskell.org | Sent: 03 March 2017 21:36 | To: ghc-commits@haskell.org | Subject: [commit: ghc] master: Deserialize IfaceId more lazily | (6446254) | | Repository : ssh://git@git.haskell.org/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
| 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 | ghc-commits@haskell.org | 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
participants (2)
-
Reid Barton
-
Simon Peyton Jones