Rename INLINABLE to SPECIALISABLE

Simon Peyton Jones simonpj at microsoft.com
Mon Jun 11 09:39:59 UTC 2018


For the record I don't have strong feelings here. Maybe SPECIALISABLE should simply be a synonym for INLINABLE, allowing the author to emphasise what's important to him or her.

S

|  -----Original Message-----
|  From: Libraries <libraries-bounces at haskell.org> On Behalf Of Matthew
|  Pickering
|  Sent: 08 June 2018 18:48
|  To: Daniel Cartwright <chessai1996 at gmail.com>
|  Cc: Haskell Libraries <libraries at haskell.org>
|  Subject: Re: Rename INLINABLE to SPECIALISABLE
|  
|  INLINABLE also ensures the definition ends up in the interface files so that
|  the function is able to be inlined across modules.
|  
|  Matt
|  
|  On Fri, Jun 8, 2018 at 7:10 PM, Daniel Cartwright <chessai1996 at gmail.com>
|  wrote:
|  > The "INLINABLE" pragma's name is misleading, it is more like
|  > "SPECIALISABLE". Consider the documentation for INLINABLE:
|  >
|  > Top-level definitions can be marked INLINABLE.
|  >
|  > myComplicatedFunction :: (Show a, Num a) => ...
|  > myComplicatedFunction = ...
|  >
|  > {-# INLINABLE myComplicatedFunction #-}
|  >
|  > This causes exactly two things to happens.
|  >
|  > The function's (exact) definition is included in the interface file
|  > for the module.
|  > The function will be specialised at use sites -- even across modules.
|  >
|  > Note that GHC is no more keen to inline an INLINABLE function than any
|  > other.
|  >
|  > I propose that we deprecate "INLINABLE" over a number of years at the
|  > same time as introducing "SPECIALISABLE". This wouldn't cause
|  > breakages for a long time.
|  >
|  > _______________________________________________
|  > Libraries mailing list
|  > Libraries at haskell.org
|  > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.h
|  > askell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Flibraries&data=02%7C01%7Cs
|  > imonpj%40microsoft.com%7C4dcb66ed3d844dcf119208d5cd67fa2a%7C72f988bf86
|  > f141af91ab2d7cd011db47%7C1%7C0%7C636640768833664956&sdata=oGZmlOi0PLsO
|  > ot%2FR5%2Fg3Vzl38sFyd6Dmzk6NPKB3DSo%3D&reserved=0
|  >
|  _______________________________________________
|  Libraries mailing list
|  Libraries at haskell.org
|  https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell
|  .org%2Fcgi-
|  bin%2Fmailman%2Flistinfo%2Flibraries&data=02%7C01%7Csimonpj%40microsoft.com%
|  7C4dcb66ed3d844dcf119208d5cd67fa2a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C
|  0%7C636640768833664956&sdata=oGZmlOi0PLsOot%2FR5%2Fg3Vzl38sFyd6Dmzk6NPKB3DSo
|  %3D&reserved=0


More information about the Libraries mailing list