[ghc-steering-committee] Proposal #412: Explicit Splice Imports; rec: accept

Vladislav Zavialov (int-index) vlad.z.4096 at gmail.com
Tue Sep 14 09:56:14 UTC 2021


I sent it back for revision until the author decides whether we want quote imports or not.

This is still on the trajectory to acceptance, though.

- Vlad

> On 14 Sep 2021, at 10:51, Joachim Breitner <mail at joachim-breitner.de> wrote:
> 
> Hi,
> 
> It looks like we have consensus, but I see there is was some more
> discussion after that on the Github trail. Back to revision? Or can we
> accept as it is?
> 
> Cheers,
> Joachim
> 
> Am Montag, dem 19.07.2021 um 20:26 +0000 schrieb Richard Eisenberg:
>> I support acceptance of the proposal.
>> 
>> RIchard
>> 
>>> On Jun 17, 2021, at 9:13 AM, Spiwack, Arnaud
>>> <arnaud.spiwack at tweag.io> wrote:
>>> 
>>> I agree with the sentiment so far: this is a well constructed
>>> proposal which makes a good case for the fine details of the
>>> proposed specification. The goal is also quite desirable (it has
>>> been brought up by other before, such as
>>> http://blog.ezyang.com/2016/07/what-template-haskell-gets-wrong-and-racket-gets-right/
>>> or https://github.com/ghc-proposals/ghc-proposals/pull/243 ).
>>> 
>>> On Tue, Jun 15, 2021 at 9:02 AM Alejandro Serrano Mena
>>> <trupill at gmail.com> wrote:
>>>>  Dear all,
>>>> I like the proposal, and I think my life will automatically
>>>> improve with this.
>>>> 
>>>> Alejandro
>>>> 
>>>> El 14 jun 2021 16:09:06, Vladislav Zavialov (int-index)
>>>> <vlad.z.4096 at gmail.com> escribió:
>>>>  
>>>>>  Dear Committee,
>>>>> 
>>>>> Proposal #412 "Explicit Splice Imports” by Matthew Pickering
>>>>> has been submitted for our consideration.
>>>>> 
>>>>> Read it here:
>>>>> https://github.com/mpickering/ghc-proposals/blob/splice-imports/proposals/0000-splice-imports.rst
>>>>> Discussion here:
>>>>> https://github.com/ghc-proposals/ghc-proposals/pull/412
>>>>> 
>>>>> The goals of this proposal are to (1) improve parallel
>>>>> compilation, (2) speed up -fno-code and IDEs that rely on it,
>>>>> (3) reduce binary sizes or at least reduce linking overhead,
>>>>> (4) create phase separation useful for cross-compilation.
>>>>> 
>>>>> All of the above are achieved by introducing a new form of
>>>>> import called a splice-import. Compare:
>>>>> 
>>>>>   import M
>>>>>   import splice H
>>>>> 
>>>>> Under this proposal, names imported from M can *not* be used in
>>>>> top-level Template Haskell splices, whereas names imported from
>>>>> H can be used *only* in Template Haskell splices.
>>>>> 
>>>>> At this point I will note that I do not particularly like the
>>>>> proposed syntax, which looks as if we’re importing a splice
>>>>> rather than importing names for use in splices. In the
>>>>> “Alternatives” section, you will find several other options
>>>>> such as “import {-# SPLICE #-} M”, “import for splice H”,
>>>>> “$(import H)”, and so on. That said, let us not get bogged down
>>>>> in the discussion of syntax before we agree on the semantics.
>>>>> If we choose to accept the proposal, I will organize a vote on
>>>>> the syntax.
>>>>> 
>>>>> Regarding the semantics, I believe the general idea behind the
>>>>> proposal is good, and I recommend acceptance. It provides a way
>>>>> for the programmer to specify the intended usage of an import
>>>>> (whether it is for normal programming or metaprogramming), and
>>>>> GHC can use this information to build the program more
>>>>> effectively (more parallelism, less linking). In ways that I do
>>>>> not entirely understand, it is allegedly good for future work
>>>>> on cross-compilation.
>>>>> 
>>>>> Let me know what you think.
>>>>> 
>>>>> - Vlad
>>>>> _______________________________________________
>>>>> ghc-steering-committee mailing list
>>>>> ghc-steering-committee at haskell.org
>>>>> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>>>>> 
>>>> _______________________________________________
>>>> ghc-steering-committee mailing list
>>>> ghc-steering-committee at haskell.org
>>>> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>>> _______________________________________________
>>> ghc-steering-committee mailing list
>>> ghc-steering-committee at haskell.org
>>> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>> 
>> _______________________________________________
>> ghc-steering-committee mailing list
>> ghc-steering-committee at haskell.org
>> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
> 
> -- 
> Joachim Breitner
>  mail at joachim-breitner.de
>  http://www.joachim-breitner.de/
> 
> 
> _______________________________________________
> ghc-steering-committee mailing list
> ghc-steering-committee at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee



More information about the ghc-steering-committee mailing list