Logs: liberachat/#haskell
| 2025-10-30 20:48:18 | × | myme quits (~myme@2a01:799:d5e:5f00:dea7:7da2:d01d:b0f1) (Ping timeout: 244 seconds) |
| 2025-10-30 20:48:38 | <omentic> | hmm, and -j 2 in ghc-options should limit the maximum no. of threads to 2? |
| 2025-10-30 20:50:19 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 2025-10-30 20:50:38 | <omentic> | mmm. neither the no. of parallel modules nor the no. of threads in use appears to be limited by -j 2 or -j2. weird. maybe -with-rtsopts=-N is overwriting that? |
| 2025-10-30 20:51:26 | → | ttybitnik joins (~ttybitnik@user/wolper) |
| 2025-10-30 20:52:10 | <geekosaur> | something else to keep in mind is that limiting GHC's threads will only work if you either limit cabal to one thread or use ghc semaphores (in sufficiently recent ghc) |
| 2025-10-30 20:52:33 | <omentic> | uhhhh, oh that is good to know |
| 2025-10-30 20:52:49 | <geekosaur> | because cabal will spawn as many ghcs as it's allowed to run threads, each of which will use the number of threads you tell it |
| 2025-10-30 20:53:16 | <geekosaur> | with job semaphores the number of concurrently running ghc threads will be limited across the entire build |
| 2025-10-30 20:53:45 | <omentic> | why would you want cabal to use more than one thread if ghc can spawn multiple threads by itself? |
| 2025-10-30 20:54:03 | <omentic> | legacy behavior? or is there an improvement wrt. linking or something |
| 2025-10-30 20:54:05 | <geekosaur> | building multiple dependencies concurrently |
| 2025-10-30 20:54:14 | myme1 | is now known as myme |
| 2025-10-30 20:55:12 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 2025-10-30 20:55:18 | <geekosaur> | but then you need to arrange for each dependency to use ghc-options |
| 2025-10-30 20:55:29 | × | Googulator98 quits (~Googulato@2a01-036d-0106-03fa-9dbb-a0af-2124-a319.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-10-30 20:55:37 | → | Googulator98 joins (~Googulato@2a01-036d-0106-03fa-9dbb-a0af-2124-a319.pool6.digikabel.hu) |
| 2025-10-30 20:55:46 | <omentic> | hm. okay. with ghc-options containing -threaded -j2 -rtsopts -with-rtsopts=-N2 and jobs: 1, i still see cabal building five or six things in parallel and all my cores spinning up... |
| 2025-10-30 20:55:50 | <geekosaur> | if job semaphores are supported, all the ghcs will "check out" threads as available |
| 2025-10-30 20:56:07 | <geekosaur> | check your cabal configuration |
| 2025-10-30 20:56:18 | <geekosaur> | oh wait, you said jobs: 1, sorry |
| 2025-10-30 20:56:48 | <omentic> | looks like jobs: $ncpus in my global cabal config but yeah i've got a line here locally |
| 2025-10-30 20:56:51 | <geekosaur> | I don't normally see things building in parallel with that situation (but I also don't run into it much, I have enough cores that I set jobs: fairly high) |
| 2025-10-30 20:58:09 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-30 20:58:21 | <omentic> | urgh |
| 2025-10-30 20:58:29 | <omentic> | okay i will deal with this later, thanks for the pointers |
| 2025-10-30 20:59:06 | <omentic> | oh -- actually before i head out, do you know: is it possible to get some sort of caching working with cabal (or stack) if i've got a package that's not on stackage? |
| 2025-10-30 20:59:47 | <davean> | caching? What caching do you want that cabal doesn't default to doing> |
| 2025-10-30 21:00:16 | <omentic> | well, not building pandoc |
| 2025-10-30 21:00:48 | → | Googulator29 joins (~Googulato@2a01-036d-0106-03fa-9dbb-a0af-2124-a319.pool6.digikabel.hu) |
| 2025-10-30 21:01:04 | × | Googulator98 quits (~Googulato@2a01-036d-0106-03fa-9dbb-a0af-2124-a319.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-10-30 21:01:20 | <monochrom> | -j is not a ghc-option |
| 2025-10-30 21:01:22 | <omentic> | this might be a haskell limitation, i'm not sure. but i don't have to build anything locally when all the packages i want are in stackage. that's nice. except right now i've got one package not on stackage |
| 2025-10-30 21:02:29 | <omentic> | monochrom: oh? i saw it in the ghc manual so i thought it'd go in ghc-options. is there another place to put it or is it unsupported with cabal? |
| 2025-10-30 21:02:42 | <monochrom> | jobs: is probably something you should put in the global config because it is about your computer not a particular package or project |
| 2025-10-30 21:02:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-10-30 21:03:06 | <davean> | omentic: are you on POSIX or windows? Because POSIX doesn't standardize that as working and its known to be funky. |
| 2025-10-30 21:03:23 | <omentic> | posix. that is very good to know. lmao |
| 2025-10-30 21:03:51 | <davean> | So providing it or not is a matter of how conservitive you are and sure you'll get the ABI stuff matched up right |
| 2025-10-30 21:03:52 | <omentic> | huh, weird the manual does not mention that... |
| 2025-10-30 21:04:19 | <davean> | Like I assure you it 100% breaks every time for my Linux system, but mine isn't the same as yours |
| 2025-10-30 21:04:27 | <davean> | if you're on Debian it'll probably work great |
| 2025-10-30 21:05:29 | <davean> | stackage leans on the "make it easy" side over "get it right" you can provide such a cache for cabal but cabal leans on the "get it right" side |
| 2025-10-30 21:05:53 | <davean> | er, not stackage |
| 2025-10-30 21:05:55 | <davean> | but yah |
| 2025-10-30 21:06:19 | <davean> | So anyway, no one actively provides such a cache for cabal+hackage in general. Its not hard to do but it would be very large. |
| 2025-10-30 21:06:48 | <omentic> | do you know if it is possible to get a partial cache? i.e. cache pandoc but not cache the other dependency i need. or is this impossible wrt. how ghc builds things |
| 2025-10-30 21:06:51 | <davean> | and then sometimes, rarely but it will happen, it'll spit out a binary that doesn't work |
| 2025-10-30 21:07:12 | <davean> | You can only cache it in respect to the otehr things you build so I'm nto sure what the use would be |
| 2025-10-30 21:07:29 | <monochrom> | I don't know how to tell cabal to use stack's cache, or stack to use cabal's cache. |
| 2025-10-30 21:07:59 | <monochrom> | Hell even Thunderbird and Firefox probably don't use each other's cache... |
| 2025-10-30 21:09:06 | <davean> | omentic: very specificly POSIX is a source code level compatability standard, not a binary compatability standard, and distros can and do break binary compatability between them, and some even inside them. |
| 2025-10-30 21:09:19 | <omentic> | i'm surprised that breaks -j |
| 2025-10-30 21:09:33 | <davean> | no I'm talking about a cache |
| 2025-10-30 21:10:05 | <davean> | Like its not actually that much of a deal for most users |
| 2025-10-30 21:10:07 | <omentic> | oh yeah that tracks. but your distinction for a cache would be by cpu architecture + os, right |
| 2025-10-30 21:10:24 | <davean> | Thats not enough, thats just enough MOST of the time |
| 2025-10-30 21:11:00 | <davean> | It can be specific to a given install of an os |
| 2025-10-30 21:11:06 | <omentic> | but also from what you said earlier sounds like ghc needs all dependencies and such for the compiler to do its thing |
| 2025-10-30 21:11:26 | <davean> | GHC works with a consistent set of dependencies |
| 2025-10-30 21:11:42 | <davean> | so it only needs the dependencies of pandoc and your overall project to match |
| 2025-10-30 21:11:48 | <davean> | but it needs an equality match |
| 2025-10-30 21:12:07 | <davean> | I think a *binary result equality match* I THINK but I'm not sure there |
| 2025-10-30 21:13:54 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-30 21:14:36 | <omentic> | interesting ok |
| 2025-10-30 21:14:51 | <davean> | You CAN build this cache |
| 2025-10-30 21:15:02 | <davean> | and if you're layering it on top of stackage, the size explosion isn't so bad |
| 2025-10-30 21:15:05 | <omentic> | well, i'll try to fix the parallelism, then try to get caching working, but i'll have to do it a bit later |
| 2025-10-30 21:15:17 | <omentic> | thx for the help here yall |
| 2025-10-30 21:15:40 | → | Googulator97 joins (~Googulato@2a01-036d-0106-03fa-9dbb-a0af-2124-a319.pool6.digikabel.hu) |
| 2025-10-30 21:15:45 | <davean> | omentic: BTW what makes build times so bad for you? (I didn't read up) |
| 2025-10-30 21:16:08 | × | Googulator29 quits (~Googulato@2a01-036d-0106-03fa-9dbb-a0af-2124-a319.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-10-30 21:16:09 | × | Googulator97 quits (~Googulato@2a01-036d-0106-03fa-9dbb-a0af-2124-a319.pool6.digikabel.hu) (Client Quit) |
| 2025-10-30 21:16:18 | → | Googulator97 joins (~Googulato@2a01-036d-0106-03fa-9dbb-a0af-2124-a319.pool6.digikabel.hu) |
| 2025-10-30 21:18:34 | × | nerdychip quits (~nerdychip@user/nerdychip) (Read error: Connection reset by peer) |
| 2025-10-30 21:18:41 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-10-30 21:19:06 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj) |
| 2025-10-30 21:19:55 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 256 seconds) |
| 2025-10-30 21:20:45 | <haskellbridge> | <sm> 2020 intel thinkpad possibly swapping |
| 2025-10-30 21:21:25 | → | nerdychip joins (~nerdychip@212.129.72.100) |
| 2025-10-30 21:21:25 | × | nerdychip quits (~nerdychip@212.129.72.100) (Changing host) |
| 2025-10-30 21:21:25 | → | nerdychip joins (~nerdychip@user/nerdychip) |
| 2025-10-30 21:25:39 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-30 21:30:42 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-10-30 21:32:24 | × | haltingsolver quits (~cmo@2604:3d09:207f:8000::d1dc) (Ping timeout: 256 seconds) |
| 2025-10-30 21:34:20 | → | haltingsolver joins (~cmo@2604:3d09:207f:8000:d250:ea0c:366a:6e73) |
| 2025-10-30 21:35:30 | × | Googulator97 quits (~Googulato@2a01-036d-0106-03fa-9dbb-a0af-2124-a319.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-10-30 21:35:44 | → | Googulator97 joins (~Googulato@2a01-036d-0106-03fa-9dbb-a0af-2124-a319.pool6.digikabel.hu) |
| 2025-10-30 21:41:26 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-30 21:44:35 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out) |
| 2025-10-30 21:44:51 | × | michalz quits (~michalz@185.246.207.221) (Remote host closed the connection) |
| 2025-10-30 21:46:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-10-30 21:49:11 | × | nerdychip quits (~nerdychip@user/nerdychip) (Read error: Connection reset by peer) |
| 2025-10-30 21:51:51 | → | nerdychip joins (~nerdychip@212.129.72.100) |
| 2025-10-30 21:51:51 | × | nerdychip quits (~nerdychip@212.129.72.100) (Changing host) |
| 2025-10-30 21:51:51 | → | nerdychip joins (~nerdychip@user/nerdychip) |
| 2025-10-30 21:52:55 | → | weary-traveler joins (~user@user/user363627) |
| 2025-10-30 21:54:45 | <segfaultfizzbuzz> | https://discourse.haskell.org/t/ghc-now-runs-in-your-browser/13169 oh nice :-) |
| 2025-10-30 21:55:40 | <segfaultfizzbuzz> | it needs a dropdown box with some demo programs |
| 2025-10-30 21:55:42 | → | Googulator78 joins (~Googulato@2a01-036d-0106-03fa-9dbb-a0af-2124-a319.pool6.digikabel.hu) |
All times are in UTC.