problems with "stack ghc"

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

problems with "stack ghc"

Dennis Raddle
I'm using Haskell stack in the normal way (i.e. "stack build", "stack exec") for most of my application. However, I also need to build files that aren't in the stack source tree. 

My stack source tree is at ~/stack/cac/src/

Let's say I want to build the program /Users/Dennis/test.hs.

So far I have been using

   stack ghc --stack-yaml ~/stack/cac/stack.yaml -- --make /Users/Dennis/test.hs

I am confused. I thought this was working until today. I made some modifications in various places, including to my cac.cabal (but NOT my stack.yaml) and I'm having a problem. The libraries that test.hs imports are not getting rebuilt when they change.

Are they *supposed* to be rebuilt? Any ideas how to debug this?

D


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: problems with "stack ghc"

Michael Snoyman
No, the `ghc` command has no rebuild logic built in, since it doesn't know which of your packages you're expecting to be available. You can pass in the `--package` flag, however, to tell it which packages you're expecting. I'm not sure if I've ever tested in the exact case you're trying, so you may have to resort to `stack build` in the directory, but `--package` is worth a shot.

On Tue, Jul 11, 2017 at 11:29 PM, Dennis Raddle <[hidden email]> wrote:
I'm using Haskell stack in the normal way (i.e. "stack build", "stack exec") for most of my application. However, I also need to build files that aren't in the stack source tree. 

My stack source tree is at ~/stack/cac/src/

Let's say I want to build the program /Users/Dennis/test.hs.

So far I have been using

   stack ghc --stack-yaml ~/stack/cac/stack.yaml -- --make /Users/Dennis/test.hs

I am confused. I thought this was working until today. I made some modifications in various places, including to my cac.cabal (but NOT my stack.yaml) and I'm having a problem. The libraries that test.hs imports are not getting rebuilt when they change.

Are they *supposed* to be rebuilt? Any ideas how to debug this?

D


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: problems with "stack ghc"

Dennis Raddle
--package seems to work.

But this brings up another question. This takes a long time to run for a change to a single file, because stack is preprocessing and building *all* my executables, then installing them all. In my situation this is a lot of wasted time for something that needs to be fast.

It's not just "stack ghc." I tried to get "stack build" to build a specific executable. I tried something like "stack build cac:myExec" (my package name is "cac") but this builds all my executables every time. I haven't been able to find the right approach to this in the docs.

So, aside from wondering why "stack ghc" builds all my executables, how do I use "stack build" to build just one executable?

D


On Tue, Jul 11, 2017 at 7:41 PM, Michael Snoyman <[hidden email]> wrote:
No, the `ghc` command has no rebuild logic built in, since it doesn't know which of your packages you're expecting to be available. You can pass in the `--package` flag, however, to tell it which packages you're expecting. I'm not sure if I've ever tested in the exact case you're trying, so you may have to resort to `stack build` in the directory, but `--package` is worth a shot.

On Tue, Jul 11, 2017 at 11:29 PM, Dennis Raddle <[hidden email]> wrote:
I'm using Haskell stack in the normal way (i.e. "stack build", "stack exec") for most of my application. However, I also need to build files that aren't in the stack source tree. 

My stack source tree is at ~/stack/cac/src/

Let's say I want to build the program /Users/Dennis/test.hs.

So far I have been using

   stack ghc --stack-yaml ~/stack/cac/stack.yaml -- --make /Users/Dennis/test.hs

I am confused. I thought this was working until today. I made some modifications in various places, including to my cac.cabal (but NOT my stack.yaml) and I'm having a problem. The libraries that test.hs imports are not getting rebuilt when they change.

Are they *supposed* to be rebuilt? Any ideas how to debug this?

D


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.



_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: problems with "stack ghc"

Michael Snoyman
I think you'll be happy about this PR:


On Wed, Jul 12, 2017 at 10:24 AM, Dennis Raddle <[hidden email]> wrote:
--package seems to work.

But this brings up another question. This takes a long time to run for a change to a single file, because stack is preprocessing and building *all* my executables, then installing them all. In my situation this is a lot of wasted time for something that needs to be fast.

It's not just "stack ghc." I tried to get "stack build" to build a specific executable. I tried something like "stack build cac:myExec" (my package name is "cac") but this builds all my executables every time. I haven't been able to find the right approach to this in the docs.

So, aside from wondering why "stack ghc" builds all my executables, how do I use "stack build" to build just one executable?

D


On Tue, Jul 11, 2017 at 7:41 PM, Michael Snoyman <[hidden email]> wrote:
No, the `ghc` command has no rebuild logic built in, since it doesn't know which of your packages you're expecting to be available. You can pass in the `--package` flag, however, to tell it which packages you're expecting. I'm not sure if I've ever tested in the exact case you're trying, so you may have to resort to `stack build` in the directory, but `--package` is worth a shot.

On Tue, Jul 11, 2017 at 11:29 PM, Dennis Raddle <[hidden email]> wrote:
I'm using Haskell stack in the normal way (i.e. "stack build", "stack exec") for most of my application. However, I also need to build files that aren't in the stack source tree. 

My stack source tree is at ~/stack/cac/src/

Let's say I want to build the program /Users/Dennis/test.hs.

So far I have been using

   stack ghc --stack-yaml ~/stack/cac/stack.yaml -- --make /Users/Dennis/test.hs

I am confused. I thought this was working until today. I made some modifications in various places, including to my cac.cabal (but NOT my stack.yaml) and I'm having a problem. The libraries that test.hs imports are not getting rebuilt when they change.

Are they *supposed* to be rebuilt? Any ideas how to debug this?

D


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.




_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: problems with "stack ghc"

Dennis Raddle
Sorry if this is a basic question, but I've never tried to download and build a Haskell project before. I've only used Haskell for small local projects. So I'm guessing I need to get the latest source code for Stack and build it in order to incorporate this feature?

I did try getting the source code from GitHub, but I don't know how to build it.

D


On Wed, Jul 12, 2017 at 3:52 AM, Michael Snoyman <[hidden email]> wrote:
I think you'll be happy about this PR:


On Wed, Jul 12, 2017 at 10:24 AM, Dennis Raddle <[hidden email]> wrote:
--package seems to work.

But this brings up another question. This takes a long time to run for a change to a single file, because stack is preprocessing and building *all* my executables, then installing them all. In my situation this is a lot of wasted time for something that needs to be fast.

It's not just "stack ghc." I tried to get "stack build" to build a specific executable. I tried something like "stack build cac:myExec" (my package name is "cac") but this builds all my executables every time. I haven't been able to find the right approach to this in the docs.

So, aside from wondering why "stack ghc" builds all my executables, how do I use "stack build" to build just one executable?

D


On Tue, Jul 11, 2017 at 7:41 PM, Michael Snoyman <[hidden email]> wrote:
No, the `ghc` command has no rebuild logic built in, since it doesn't know which of your packages you're expecting to be available. You can pass in the `--package` flag, however, to tell it which packages you're expecting. I'm not sure if I've ever tested in the exact case you're trying, so you may have to resort to `stack build` in the directory, but `--package` is worth a shot.

On Tue, Jul 11, 2017 at 11:29 PM, Dennis Raddle <[hidden email]> wrote:
I'm using Haskell stack in the normal way (i.e. "stack build", "stack exec") for most of my application. However, I also need to build files that aren't in the stack source tree. 

My stack source tree is at ~/stack/cac/src/

Let's say I want to build the program /Users/Dennis/test.hs.

So far I have been using

   stack ghc --stack-yaml ~/stack/cac/stack.yaml -- --make /Users/Dennis/test.hs

I am confused. I thought this was working until today. I made some modifications in various places, including to my cac.cabal (but NOT my stack.yaml) and I'm having a problem. The libraries that test.hs imports are not getting rebuilt when they change.

Are they *supposed* to be rebuilt? Any ideas how to debug this?

D


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.





_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: problems with "stack ghc"

Michael Snoyman
Keep in mind that this is experimental software, so there may be rough edges.

The code I linked to is not on master, only on a topic branch In order to build it:

    git clone --branch exe-targets-3229 --depth=1 https://github.com/commercialhaskell/stack
    cd stack
    stack install

Then make sure that you have $HOME/.local/bin on your PATH, or copy the generated executable to wherever your stack executable currently resides. If you have problems with the new version, you can revert with:

    stack upgrade --binary-version 1.4.0

On Thu, Jul 13, 2017 at 7:32 AM, Dennis Raddle <[hidden email]> wrote:
Sorry if this is a basic question, but I've never tried to download and build a Haskell project before. I've only used Haskell for small local projects. So I'm guessing I need to get the latest source code for Stack and build it in order to incorporate this feature?

I did try getting the source code from GitHub, but I don't know how to build it.

D


On Wed, Jul 12, 2017 at 3:52 AM, Michael Snoyman <[hidden email]> wrote:
I think you'll be happy about this PR:


On Wed, Jul 12, 2017 at 10:24 AM, Dennis Raddle <[hidden email]> wrote:
--package seems to work.

But this brings up another question. This takes a long time to run for a change to a single file, because stack is preprocessing and building *all* my executables, then installing them all. In my situation this is a lot of wasted time for something that needs to be fast.

It's not just "stack ghc." I tried to get "stack build" to build a specific executable. I tried something like "stack build cac:myExec" (my package name is "cac") but this builds all my executables every time. I haven't been able to find the right approach to this in the docs.

So, aside from wondering why "stack ghc" builds all my executables, how do I use "stack build" to build just one executable?

D


On Tue, Jul 11, 2017 at 7:41 PM, Michael Snoyman <[hidden email]> wrote:
No, the `ghc` command has no rebuild logic built in, since it doesn't know which of your packages you're expecting to be available. You can pass in the `--package` flag, however, to tell it which packages you're expecting. I'm not sure if I've ever tested in the exact case you're trying, so you may have to resort to `stack build` in the directory, but `--package` is worth a shot.

On Tue, Jul 11, 2017 at 11:29 PM, Dennis Raddle <[hidden email]> wrote:
I'm using Haskell stack in the normal way (i.e. "stack build", "stack exec") for most of my application. However, I also need to build files that aren't in the stack source tree. 

My stack source tree is at ~/stack/cac/src/

Let's say I want to build the program /Users/Dennis/test.hs.

So far I have been using

   stack ghc --stack-yaml ~/stack/cac/stack.yaml -- --make /Users/Dennis/test.hs

I am confused. I thought this was working until today. I made some modifications in various places, including to my cac.cabal (but NOT my stack.yaml) and I'm having a problem. The libraries that test.hs imports are not getting rebuilt when they change.

Are they *supposed* to be rebuilt? Any ideas how to debug this?

D


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.






_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Loading...