Scripts merged for easily loading and running GHC in GHCi, for fast development iterations

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Scripts merged for easily loading and running GHC in GHCi, for fast development iterations

Michael Sloan
Hello GHC developers!

Now that D4904 and D4986 are merged, if you have recently built GHC
then you can use "./utils/ghc-in-ghci/run.sh -fobject-code" to load
GHC into GHCi (throwing on a "-j8" helps too).  For me, this makes
development far more pleasant, as often I can make a change and try it
out in only 15 or 20 seconds.  Thanks to Csongor Kiss for writing the
initial ghci script, and Matthew Pickering for posting about it to the
mailinglist, as otherwise I probably wouldn't have known about it.

I wrote a blog post about the topic on my new blog:
http://www.mgsloan.com/posts/ghcinception/

Once D5015 is merged, the explicit "-fobject-code" won't be needed.
Once https://ghc.haskell.org/trac/ghc/ticket/15454 is addressed, it
might not be needed at all, leading to even faster loading ;)

Happy ghci-ing!
-Michael
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Scripts merged for easily loading and running GHC in GHCi, for fast development iterations

Matthew Pickering
Can you please update the wiki page?

https://ghc.haskell.org/trac/ghc/wiki/Building/InGhci

Matt

On Sun, Jul 29, 2018 at 6:18 AM, Michael Sloan <[hidden email]> wrote:

> Hello GHC developers!
>
> Now that D4904 and D4986 are merged, if you have recently built GHC
> then you can use "./utils/ghc-in-ghci/run.sh -fobject-code" to load
> GHC into GHCi (throwing on a "-j8" helps too).  For me, this makes
> development far more pleasant, as often I can make a change and try it
> out in only 15 or 20 seconds.  Thanks to Csongor Kiss for writing the
> initial ghci script, and Matthew Pickering for posting about it to the
> mailinglist, as otherwise I probably wouldn't have known about it.
>
> I wrote a blog post about the topic on my new blog:
> http://www.mgsloan.com/posts/ghcinception/
>
> Once D5015 is merged, the explicit "-fobject-code" won't be needed.
> Once https://ghc.haskell.org/trac/ghc/ticket/15454 is addressed, it
> might not be needed at all, leading to even faster loading ;)
>
> Happy ghci-ing!
> -Michael
> _______________________________________________
> ghc-devs mailing list
> [hidden email]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Scripts merged for easily loading and running GHC in GHCi, for fast development iterations

Artem Pelenitsyn
I added this to the wiki. It would be nice to have a wrapper similar to `run.sh` but for starting ghcid, I believe.

--
Best wishes,
Artem

On Sun, 29 Jul 2018 at 10:41 Matthew Pickering <[hidden email]> wrote:
Can you please update the wiki page?

https://ghc.haskell.org/trac/ghc/wiki/Building/InGhci

Matt

On Sun, Jul 29, 2018 at 6:18 AM, Michael Sloan <[hidden email]> wrote:
> Hello GHC developers!
>
> Now that D4904 and D4986 are merged, if you have recently built GHC
> then you can use "./utils/ghc-in-ghci/run.sh -fobject-code" to load
> GHC into GHCi (throwing on a "-j8" helps too).  For me, this makes
> development far more pleasant, as often I can make a change and try it
> out in only 15 or 20 seconds.  Thanks to Csongor Kiss for writing the
> initial ghci script, and Matthew Pickering for posting about it to the
> mailinglist, as otherwise I probably wouldn't have known about it.
>
> I wrote a blog post about the topic on my new blog:
> http://www.mgsloan.com/posts/ghcinception/
>
> Once D5015 is merged, the explicit "-fobject-code" won't be needed.
> Once https://ghc.haskell.org/trac/ghc/ticket/15454 is addressed, it
> might not be needed at all, leading to even faster loading ;)
>
> Happy ghci-ing!
> -Michael
> _______________________________________________
> ghc-devs mailing list
> [hidden email]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Scripts merged for easily loading and running GHC in GHCi, for fast development iterations

Michael Sloan
Thanks a bunch for updating the wiki page, Artem!  It was on my todo
list, but it's been a rather busy week.  I've added an update
mentioning that it will be possible to run "ghcid" directly without
args once D5105 is merged.

On Mon, Aug 6, 2018 at 12:55 AM, Artem Pelenitsyn
<[hidden email]> wrote:

> I added this to the wiki. It would be nice to have a wrapper similar to
> `run.sh` but for starting ghcid, I believe.
>
> --
> Best wishes,
> Artem
>
> On Sun, 29 Jul 2018 at 10:41 Matthew Pickering <[hidden email]>
> wrote:
>>
>> Can you please update the wiki page?
>>
>> https://ghc.haskell.org/trac/ghc/wiki/Building/InGhci
>>
>> Matt
>>
>> On Sun, Jul 29, 2018 at 6:18 AM, Michael Sloan <[hidden email]> wrote:
>> > Hello GHC developers!
>> >
>> > Now that D4904 and D4986 are merged, if you have recently built GHC
>> > then you can use "./utils/ghc-in-ghci/run.sh -fobject-code" to load
>> > GHC into GHCi (throwing on a "-j8" helps too).  For me, this makes
>> > development far more pleasant, as often I can make a change and try it
>> > out in only 15 or 20 seconds.  Thanks to Csongor Kiss for writing the
>> > initial ghci script, and Matthew Pickering for posting about it to the
>> > mailinglist, as otherwise I probably wouldn't have known about it.
>> >
>> > I wrote a blog post about the topic on my new blog:
>> > http://www.mgsloan.com/posts/ghcinception/
>> >
>> > Once D5015 is merged, the explicit "-fobject-code" won't be needed.
>> > Once https://ghc.haskell.org/trac/ghc/ticket/15454 is addressed, it
>> > might not be needed at all, leading to even faster loading ;)
>> >
>> > Happy ghci-ing!
>> > -Michael
>> > _______________________________________________
>> > ghc-devs mailing list
>> > [hidden email]
>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>> _______________________________________________
>> ghc-devs mailing list
>> [hidden email]
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Scripts merged for easily loading and running GHC in GHCi, for fast development iterations

Michael Sloan
Now that [D5015] is merged (thanks, monoidal!), -fobject-code no
longer needs to be provided manually.  This also means that you can
run [ghcid] directly in the root of the repo without any arguments.  I
have updated https://ghc.haskell.org/trac/ghc/wiki/Building/InGhci to
use the simpler invocations.

[D5015]: https://phabricator.haskell.org/D5015
[ghcid]: https://github.com/ndmitchell/ghcid

On Mon, Aug 6, 2018 at 1:03 AM, Michael Sloan <[hidden email]> wrote:

> Thanks a bunch for updating the wiki page, Artem!  It was on my todo
> list, but it's been a rather busy week.  I've added an update
> mentioning that it will be possible to run "ghcid" directly without
> args once D5105 is merged.
>
> On Mon, Aug 6, 2018 at 12:55 AM, Artem Pelenitsyn
> <[hidden email]> wrote:
>> I added this to the wiki. It would be nice to have a wrapper similar to
>> `run.sh` but for starting ghcid, I believe.
>>
>> --
>> Best wishes,
>> Artem
>>
>> On Sun, 29 Jul 2018 at 10:41 Matthew Pickering <[hidden email]>
>> wrote:
>>>
>>> Can you please update the wiki page?
>>>
>>> https://ghc.haskell.org/trac/ghc/wiki/Building/InGhci
>>>
>>> Matt
>>>
>>> On Sun, Jul 29, 2018 at 6:18 AM, Michael Sloan <[hidden email]> wrote:
>>> > Hello GHC developers!
>>> >
>>> > Now that D4904 and D4986 are merged, if you have recently built GHC
>>> > then you can use "./utils/ghc-in-ghci/run.sh -fobject-code" to load
>>> > GHC into GHCi (throwing on a "-j8" helps too).  For me, this makes
>>> > development far more pleasant, as often I can make a change and try it
>>> > out in only 15 or 20 seconds.  Thanks to Csongor Kiss for writing the
>>> > initial ghci script, and Matthew Pickering for posting about it to the
>>> > mailinglist, as otherwise I probably wouldn't have known about it.
>>> >
>>> > I wrote a blog post about the topic on my new blog:
>>> > http://www.mgsloan.com/posts/ghcinception/
>>> >
>>> > Once D5015 is merged, the explicit "-fobject-code" won't be needed.
>>> > Once https://ghc.haskell.org/trac/ghc/ticket/15454 is addressed, it
>>> > might not be needed at all, leading to even faster loading ;)
>>> >
>>> > Happy ghci-ing!
>>> > -Michael
>>> > _______________________________________________
>>> > ghc-devs mailing list
>>> > [hidden email]
>>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>> _______________________________________________
>>> ghc-devs mailing list
>>> [hidden email]
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Scripts merged for easily loading and running GHC in GHCi, for fast development iterations

Matthew Pickering
In practice, how much memory does this use?

I find that with 4gb of memory that it is unusable and hard to kill.
Perhaps we should add some sort of warning to the page about this.

Cheers

Matt

On Wed, Aug 8, 2018 at 11:12 PM, Michael Sloan <[hidden email]> wrote:

> Now that [D5015] is merged (thanks, monoidal!), -fobject-code no
> longer needs to be provided manually.  This also means that you can
> run [ghcid] directly in the root of the repo without any arguments.  I
> have updated https://ghc.haskell.org/trac/ghc/wiki/Building/InGhci to
> use the simpler invocations.
>
> [D5015]: https://phabricator.haskell.org/D5015
> [ghcid]: https://github.com/ndmitchell/ghcid
>
> On Mon, Aug 6, 2018 at 1:03 AM, Michael Sloan <[hidden email]> wrote:
>> Thanks a bunch for updating the wiki page, Artem!  It was on my todo
>> list, but it's been a rather busy week.  I've added an update
>> mentioning that it will be possible to run "ghcid" directly without
>> args once D5105 is merged.
>>
>> On Mon, Aug 6, 2018 at 12:55 AM, Artem Pelenitsyn
>> <[hidden email]> wrote:
>>> I added this to the wiki. It would be nice to have a wrapper similar to
>>> `run.sh` but for starting ghcid, I believe.
>>>
>>> --
>>> Best wishes,
>>> Artem
>>>
>>> On Sun, 29 Jul 2018 at 10:41 Matthew Pickering <[hidden email]>
>>> wrote:
>>>>
>>>> Can you please update the wiki page?
>>>>
>>>> https://ghc.haskell.org/trac/ghc/wiki/Building/InGhci
>>>>
>>>> Matt
>>>>
>>>> On Sun, Jul 29, 2018 at 6:18 AM, Michael Sloan <[hidden email]> wrote:
>>>> > Hello GHC developers!
>>>> >
>>>> > Now that D4904 and D4986 are merged, if you have recently built GHC
>>>> > then you can use "./utils/ghc-in-ghci/run.sh -fobject-code" to load
>>>> > GHC into GHCi (throwing on a "-j8" helps too).  For me, this makes
>>>> > development far more pleasant, as often I can make a change and try it
>>>> > out in only 15 or 20 seconds.  Thanks to Csongor Kiss for writing the
>>>> > initial ghci script, and Matthew Pickering for posting about it to the
>>>> > mailinglist, as otherwise I probably wouldn't have known about it.
>>>> >
>>>> > I wrote a blog post about the topic on my new blog:
>>>> > http://www.mgsloan.com/posts/ghcinception/
>>>> >
>>>> > Once D5015 is merged, the explicit "-fobject-code" won't be needed.
>>>> > Once https://ghc.haskell.org/trac/ghc/ticket/15454 is addressed, it
>>>> > might not be needed at all, leading to even faster loading ;)
>>>> >
>>>> > Happy ghci-ing!
>>>> > -Michael
>>>> > _______________________________________________
>>>> > ghc-devs mailing list
>>>> > [hidden email]
>>>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>>> _______________________________________________
>>>> ghc-devs mailing list
>>>> [hidden email]
>>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Scripts merged for easily loading and running GHC in GHCi, for fast development iterations

Michael Sloan
Good point, I have added a note about it to the wiki page.  Surprising
that it would be hard to kill.  Do you have swap setup?

For me it takes ~2.7GB initially and 3.5GB after the first reload.  In
the past I've seen it get all the way up to 9GB so there may be some
memory leakage.

I have 40GB of ram in my laptop, so I don't notice this much.  I
highly recommend investing in more memory if it's within your
financial means.  The productivity boon of being able to use GHCi on
large projects, or run multiple concurrent docker containers or VMs,
is huge.

A bit off topic, but sometimes folks are surprised that I spend
hundreds of dollars on keyboards like the kinesis advantage 2 (which
is fantastic, btw) or the keyboard.io (really nice too!).  My answer
is that if I'm using some equipment many hours per day, the cost
amortizes out.  I ask myself "Would I pay 3 cents to use this keyboard
for an hour?", in the case of those keyboards, my answer is an
emphatic YES!  I apply similar reasoning to my main computer hardware,
though people are used to that being $$$ vs the surprise of $350
keyboards.

-Michael

On Wed, Aug 8, 2018 at 3:31 PM, Matthew Pickering
<[hidden email]> wrote:

> In practice, how much memory does this use?
>
> I find that with 4gb of memory that it is unusable and hard to kill.
> Perhaps we should add some sort of warning to the page about this.
>
> Cheers
>
> Matt
>
> On Wed, Aug 8, 2018 at 11:12 PM, Michael Sloan <[hidden email]> wrote:
>> Now that [D5015] is merged (thanks, monoidal!), -fobject-code no
>> longer needs to be provided manually.  This also means that you can
>> run [ghcid] directly in the root of the repo without any arguments.  I
>> have updated https://ghc.haskell.org/trac/ghc/wiki/Building/InGhci to
>> use the simpler invocations.
>>
>> [D5015]: https://phabricator.haskell.org/D5015
>> [ghcid]: https://github.com/ndmitchell/ghcid
>>
>> On Mon, Aug 6, 2018 at 1:03 AM, Michael Sloan <[hidden email]> wrote:
>>> Thanks a bunch for updating the wiki page, Artem!  It was on my todo
>>> list, but it's been a rather busy week.  I've added an update
>>> mentioning that it will be possible to run "ghcid" directly without
>>> args once D5105 is merged.
>>>
>>> On Mon, Aug 6, 2018 at 12:55 AM, Artem Pelenitsyn
>>> <[hidden email]> wrote:
>>>> I added this to the wiki. It would be nice to have a wrapper similar to
>>>> `run.sh` but for starting ghcid, I believe.
>>>>
>>>> --
>>>> Best wishes,
>>>> Artem
>>>>
>>>> On Sun, 29 Jul 2018 at 10:41 Matthew Pickering <[hidden email]>
>>>> wrote:
>>>>>
>>>>> Can you please update the wiki page?
>>>>>
>>>>> https://ghc.haskell.org/trac/ghc/wiki/Building/InGhci
>>>>>
>>>>> Matt
>>>>>
>>>>> On Sun, Jul 29, 2018 at 6:18 AM, Michael Sloan <[hidden email]> wrote:
>>>>> > Hello GHC developers!
>>>>> >
>>>>> > Now that D4904 and D4986 are merged, if you have recently built GHC
>>>>> > then you can use "./utils/ghc-in-ghci/run.sh -fobject-code" to load
>>>>> > GHC into GHCi (throwing on a "-j8" helps too).  For me, this makes
>>>>> > development far more pleasant, as often I can make a change and try it
>>>>> > out in only 15 or 20 seconds.  Thanks to Csongor Kiss for writing the
>>>>> > initial ghci script, and Matthew Pickering for posting about it to the
>>>>> > mailinglist, as otherwise I probably wouldn't have known about it.
>>>>> >
>>>>> > I wrote a blog post about the topic on my new blog:
>>>>> > http://www.mgsloan.com/posts/ghcinception/
>>>>> >
>>>>> > Once D5015 is merged, the explicit "-fobject-code" won't be needed.
>>>>> > Once https://ghc.haskell.org/trac/ghc/ticket/15454 is addressed, it
>>>>> > might not be needed at all, leading to even faster loading ;)
>>>>> >
>>>>> > Happy ghci-ing!
>>>>> > -Michael
>>>>> > _______________________________________________
>>>>> > ghc-devs mailing list
>>>>> > [hidden email]
>>>>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>>>> _______________________________________________
>>>>> ghc-devs mailing list
>>>>> [hidden email]
>>>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Scripts merged for easily loading and running GHC in GHCi, for fast development iterations

Brandon Allbery
If you're working on e.g. ARM, you may not have a lot of say in how much RAM you can put into it.

On Wed, Aug 8, 2018 at 6:54 PM Michael Sloan <[hidden email]> wrote:
Good point, I have added a note about it to the wiki page.  Surprising
that it would be hard to kill.  Do you have swap setup?

For me it takes ~2.7GB initially and 3.5GB after the first reload.  In
the past I've seen it get all the way up to 9GB so there may be some
memory leakage.

I have 40GB of ram in my laptop, so I don't notice this much.  I
highly recommend investing in more memory if it's within your
financial means.  The productivity boon of being able to use GHCi on
large projects, or run multiple concurrent docker containers or VMs,
is huge.

A bit off topic, but sometimes folks are surprised that I spend
hundreds of dollars on keyboards like the kinesis advantage 2 (which
is fantastic, btw) or the keyboard.io (really nice too!).  My answer
is that if I'm using some equipment many hours per day, the cost
amortizes out.  I ask myself "Would I pay 3 cents to use this keyboard
for an hour?", in the case of those keyboards, my answer is an
emphatic YES!  I apply similar reasoning to my main computer hardware,
though people are used to that being $$$ vs the surprise of $350
keyboards.

-Michael

On Wed, Aug 8, 2018 at 3:31 PM, Matthew Pickering
<[hidden email]> wrote:
> In practice, how much memory does this use?
>
> I find that with 4gb of memory that it is unusable and hard to kill.
> Perhaps we should add some sort of warning to the page about this.
>
> Cheers
>
> Matt
>
> On Wed, Aug 8, 2018 at 11:12 PM, Michael Sloan <[hidden email]> wrote:
>> Now that [D5015] is merged (thanks, monoidal!), -fobject-code no
>> longer needs to be provided manually.  This also means that you can
>> run [ghcid] directly in the root of the repo without any arguments.  I
>> have updated https://ghc.haskell.org/trac/ghc/wiki/Building/InGhci to
>> use the simpler invocations.
>>
>> [D5015]: https://phabricator.haskell.org/D5015
>> [ghcid]: https://github.com/ndmitchell/ghcid
>>
>> On Mon, Aug 6, 2018 at 1:03 AM, Michael Sloan <[hidden email]> wrote:
>>> Thanks a bunch for updating the wiki page, Artem!  It was on my todo
>>> list, but it's been a rather busy week.  I've added an update
>>> mentioning that it will be possible to run "ghcid" directly without
>>> args once D5105 is merged.
>>>
>>> On Mon, Aug 6, 2018 at 12:55 AM, Artem Pelenitsyn
>>> <[hidden email]> wrote:
>>>> I added this to the wiki. It would be nice to have a wrapper similar to
>>>> `run.sh` but for starting ghcid, I believe.
>>>>
>>>> --
>>>> Best wishes,
>>>> Artem
>>>>
>>>> On Sun, 29 Jul 2018 at 10:41 Matthew Pickering <[hidden email]>
>>>> wrote:
>>>>>
>>>>> Can you please update the wiki page?
>>>>>
>>>>> https://ghc.haskell.org/trac/ghc/wiki/Building/InGhci
>>>>>
>>>>> Matt
>>>>>
>>>>> On Sun, Jul 29, 2018 at 6:18 AM, Michael Sloan <[hidden email]> wrote:
>>>>> > Hello GHC developers!
>>>>> >
>>>>> > Now that D4904 and D4986 are merged, if you have recently built GHC
>>>>> > then you can use "./utils/ghc-in-ghci/run.sh -fobject-code" to load
>>>>> > GHC into GHCi (throwing on a "-j8" helps too).  For me, this makes
>>>>> > development far more pleasant, as often I can make a change and try it
>>>>> > out in only 15 or 20 seconds.  Thanks to Csongor Kiss for writing the
>>>>> > initial ghci script, and Matthew Pickering for posting about it to the
>>>>> > mailinglist, as otherwise I probably wouldn't have known about it.
>>>>> >
>>>>> > I wrote a blog post about the topic on my new blog:
>>>>> > http://www.mgsloan.com/posts/ghcinception/
>>>>> >
>>>>> > Once D5015 is merged, the explicit "-fobject-code" won't be needed.
>>>>> > Once https://ghc.haskell.org/trac/ghc/ticket/15454 is addressed, it
>>>>> > might not be needed at all, leading to even faster loading ;)
>>>>> >
>>>>> > Happy ghci-ing!
>>>>> > -Michael
>>>>> > _______________________________________________
>>>>> > ghc-devs mailing list
>>>>> > [hidden email]
>>>>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>>>> _______________________________________________
>>>>> ghc-devs mailing list
>>>>> [hidden email]
>>>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


--
brandon s allbery kf8nh

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs