Done in commit fdb594ed3286088c1a46c95f29e277fcc60c0a01. Regards, Reid
On Wed, Mar 8, 2017 at 7:18 AM, Simon Peyton Jones <simo...@microsoft.com> 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:ghc-commits-boun...@haskell.org] On Behalf > | Of g...@git.haskell.org > | Sent: 03 March 2017 21:36 > | To: ghc-comm...@haskell.org > | Subject: [commit: ghc] master: Deserialize IfaceId more lazily > | (6446254) > | > | Repository : ssh://g...@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 <rwbar...@gmail.com> > | 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-comm...@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 _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs