Logs: freenode/#haskell
| 2020-10-30 14:33:40 | <texasmynsted> | lol why? |
| 2020-10-30 14:33:43 | <merijn> | texasmynsted: What, exactly, do you expect to win by it? |
| 2020-10-30 14:34:09 | <maerwald> | upx sometime breaks binaries, depending on the algorithm |
| 2020-10-30 14:34:17 | <texasmynsted> | faster deployments because the executable is smaller. Take up less space on the server. |
| 2020-10-30 14:34:23 | <texasmynsted> | Hmm. |
| 2020-10-30 14:34:27 | <merijn> | texasmynsted: Is that really a problem, though? |
| 2020-10-30 14:34:40 | <maerwald> | I wouldn't trust anything that comes out of it. Is there any proof that it's the same binary? |
| 2020-10-30 14:34:43 | × | Tario quits (~Tario@200.119.184.85) (Ping timeout: 265 seconds) |
| 2020-10-30 14:34:46 | <merijn> | texasmynsted: How big are your binaries that this is a significant bottleneck? |
| 2020-10-30 14:34:47 | <texasmynsted> | not one worth breaking binaries over |
| 2020-10-30 14:34:54 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 2020-10-30 14:35:07 | <merijn> | texasmynsted: If you want smaller binaries trying using --enable-split-sections and stripping the binary first |
| 2020-10-30 14:35:39 | texasmynsted | reads about --enable-split-sections |
| 2020-10-30 14:35:42 | <merijn> | Especially split sections, which can have an order of magnitude shrink if you have tons of dependencies |
| 2020-10-30 14:35:54 | <merijn> | (it does mean you'll have to rebuild everything first :)) |
| 2020-10-30 14:36:02 | <texasmynsted> | If I had to choose, I would rather have a faster binary than a smaller one |
| 2020-10-30 14:37:01 | <merijn> | texasmynsted: Basically, split sections lets you only like relevant portions of your dependencies. So if you only use 1 or 2 functions from, say, lens and lens was compiled with split-sections you pull only a fraction of lens' compiled code into your executable |
| 2020-10-30 14:37:25 | <merijn> | In terms of "impact per effort" it's probably the lowest fruit for Haskell binaries (together with stripping) |
| 2020-10-30 14:37:54 | <texasmynsted> | wow, why is this not the default? |
| 2020-10-30 14:38:24 | <merijn> | texasmynsted: Because older linkers don't support it and only made it into GHC fairly recently (a few years ago I recent to me!) |
| 2020-10-30 14:38:33 | <texasmynsted> | ah okay |
| 2020-10-30 14:38:36 | <texasmynsted> | Thank you. |
| 2020-10-30 14:38:46 | <merijn> | Safer to make it "opt in" then risk breaking toolchains |
| 2020-10-30 14:39:14 | <texasmynsted> | I need to find a ghc news site or something so I can learn these tricks |
| 2020-10-30 14:39:19 | <merijn> | texasmynsted: I would say if binaries are smaller than, say 20 MB it's not worth any effort to go smaller (and even for biggers ones it might not be worth it) |
| 2020-10-30 14:39:32 | × | mmohammadi9812 quits (~mmohammad@5.74.129.53) (Ping timeout: 272 seconds) |
| 2020-10-30 14:39:41 | <maerwald> | well, GHC is already hard to get working on systems that don't have ld.gold |
| 2020-10-30 14:39:44 | <merijn> | texasmynsted: I recommend skimming the very good and often overlooked GHC user guide every so often and reading the release notes for new GHCs |
| 2020-10-30 14:39:52 | <merijn> | @where userguide |
| 2020-10-30 14:39:53 | <lambdabot> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ |
| 2020-10-30 14:39:56 | <maerwald> | so not sure backwards compat is hat important |
| 2020-10-30 14:40:54 | <merijn> | texasmynsted: haskell-cafe, haskell-libraries and ghc-devs mailing lists are also a good way to keep an eye on things, they're not that high traffic |
| 2020-10-30 14:41:16 | <merijn> | And lurking in #ghc of course :p |
| 2020-10-30 14:41:39 | × | st8less quits (~st8less@inet-167-224-197-181.isp.ozarksgo.net) (Quit: WeeChat 2.7.1) |
| 2020-10-30 14:41:55 | ← | ullbeking parts (sid5364@gateway/web/irccloud.com/x-bnsgobzuoimopxhi) () |
| 2020-10-30 14:43:49 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-30 14:44:55 | GyroW_ | is now known as GyroW |
| 2020-10-30 14:45:00 | <texasmynsted> | :-) |
| 2020-10-30 14:45:02 | <texasmynsted> | Thank you |
| 2020-10-30 14:45:10 | hackage | snap-server 1.1.2.0 - A web server for the Snap Framework https://hackage.haskell.org/package/snap-server-1.1.2.0 (GregoryCollins) |
| 2020-10-30 14:45:15 | → | sam___ joins (~sam@141.104.204.77.rev.sfr.net) |
| 2020-10-30 14:45:25 | → | st8less joins (~st8less@2603:a060:11fd:0:609b:358e:1371:386d) |
| 2020-10-30 14:45:30 | <merijn> | But yeah, release notes for new features and the user guide are the most instructive usually |
| 2020-10-30 14:45:53 | <merijn> | texasmynsted: Like, there's an entire section on runtime tweaking and speeding up stuff that I think 80% of people aren't aware off |
| 2020-10-30 14:46:01 | <merijn> | (and getting smaller binaries!) |
| 2020-10-30 14:46:09 | <texasmynsted> | I am reading that now actually |
| 2020-10-30 14:46:25 | <texasmynsted> | (I did not look for, or know it existed before) |
| 2020-10-30 14:46:40 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 2020-10-30 14:48:05 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 2020-10-30 14:49:14 | × | alp_ quits (~alp@88.126.45.36) (Ping timeout: 264 seconds) |
| 2020-10-30 14:50:02 | ← | GyroW parts (~GyroW@unaffiliated/gyrow) ("Someone stepped on the pi") |
| 2020-10-30 14:50:48 | × | texasmynsted quits (~texasmyns@185.229.59.52) (Read error: Connection reset by peer) |
| 2020-10-30 14:51:25 | → | texasmynsted joins (~texasmyns@2600:6c40:700:193f:90f9:db91:64ea:192d) |
| 2020-10-30 14:51:41 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 2020-10-30 14:51:57 | × | texasmynsted quits (~texasmyns@2600:6c40:700:193f:90f9:db91:64ea:192d) (Remote host closed the connection) |
| 2020-10-30 14:52:24 | → | mmohammadi9812 joins (~mmohammad@2.178.123.90) |
| 2020-10-30 14:52:29 | → | Jonkimi727406120 joins (~Jonkimi@223.213.166.96) |
| 2020-10-30 14:52:59 | → | texasmynsted joins (~texasmyns@185.229.59.3) |
| 2020-10-30 14:56:38 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 272 seconds) |
| 2020-10-30 14:57:13 | → | alp_ joins (~alp@2a01:e0a:58b:4920:2d4f:a367:8a30:586b) |
| 2020-10-30 14:57:55 | <tomsmeding> | (reading section 9 in the ghc user's guide...) |
| 2020-10-30 14:57:58 | <tomsmeding> | "One time when Float might be a good idea is if you have a lot of them, say a giant array of Floats. They take up half the space in the heap compared to Doubles. However, this isn’t true on a 64-bit machine." |
| 2020-10-30 14:58:38 | <tomsmeding> | this reminds me of the discussion here yesterday(?) aobut Word types in ghc all being 8 bytes long due to their definition being e.g. 'data Word8 = Word8 #Word' |
| 2020-10-30 14:58:44 | <tomsmeding> | s/#Word/Word#/ |
| 2020-10-30 14:59:04 | <tomsmeding> | is this the same kind of thing with Float/Double? That sounds stupid |
| 2020-10-30 14:59:15 | → | stef204 joins (~stef204@unaffiliated/stef-204/x-384198) |
| 2020-10-30 14:59:20 | <dolio> | Even on 32-bit, they're more than half if boxed. |
| 2020-10-30 14:59:35 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection) |
| 2020-10-30 15:00:02 | × | rlaager1 quits (~rlaager@84.39.116.180) () |
| 2020-10-30 15:00:55 | <tomsmeding> | okay true, boxing reduces space saving, but then with boxing all space bets are off anyway |
| 2020-10-30 15:01:25 | <__monty__> | Hmm, angerman just said something about Word sizing in #ghc, so *maybe* there's work towards changing that? |
| 2020-10-30 15:01:55 | <dolio> | Apparently there is a Word8#, but Word8 doesn't use it. |
| 2020-10-30 15:02:16 | <angerman> | Yes. Word8 = W8# Word8#, Int8 = I8# Int8# is coming. |
| 2020-10-30 15:02:30 | <tomsmeding> | ah! neat stuff |
| 2020-10-30 15:02:50 | <dolio> | I'm not sure how big Word8# actually is, though. There's also Float# that Float actually uses, so it might actually be smaller than Double, unless alignment makes that not happen. |
| 2020-10-30 15:03:25 | <tomsmeding> | Float# adjacent to Float# should theoretically not induce any padding for alignment |
| 2020-10-30 15:03:38 | <angerman> | it's just really annoying to get it in. It's necessary for apple silicon support, as arm64 (that's aarch64 in fruity speak) has a rather funky procedure calling convention for C, where it packs function arguments by their size on the stack. |
| 2020-10-30 15:03:42 | <tomsmeding> | (at least, extrapolating from C :p) |
| 2020-10-30 15:03:49 | <dolio> | I think that'd be the idea. |
| 2020-10-30 15:03:59 | <angerman> | So if you FFI into something it needs to be 4byte int32 on the stack, not just 8bytes for every arg. |
| 2020-10-30 15:04:28 | <tomsmeding> | ah of course this is one of the many things pushed by the ARM work you are doing angerman :) |
| 2020-10-30 15:08:28 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 246 seconds) |
| 2020-10-30 15:09:55 | → | philip_ joins (~philip@92.40.170.16.threembb.co.uk) |
| 2020-10-30 15:12:09 | × | philip_ quits (~philip@92.40.170.16.threembb.co.uk) (Client Quit) |
| 2020-10-30 15:14:33 | × | brandonhamilton quits (~brandonha@2001:19f0:6c01:1579:5400:2ff:fee8:d636) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2020-10-30 15:16:14 | × | dhil quits (~dhil@195.213.192.122) (Ping timeout: 256 seconds) |
| 2020-10-30 15:18:52 | × | amf quits (~amf@adamflott.com) (Quit: WeeChat 2.7.1) |
| 2020-10-30 15:18:57 | <tomsmeding> | in a simple test, an unboxed array from Data.Array.UArray with Floats indeed takes ~4*num_elements bytes of memory, whereas the same with Doubles takes ~8*num_bytes of memory |
| 2020-10-30 15:18:58 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 2020-10-30 15:19:11 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds) |
| 2020-10-30 15:19:52 | → | aarvar joins (~foewfoiew@50.35.43.33) |
| 2020-10-30 15:20:26 | → | ubert joins (~Thunderbi@p200300ecdf1e5396e6b318fffe838f33.dip0.t-ipconnect.de) |
| 2020-10-30 15:20:59 | <tomjaguarpaw> | I'm trying to build stm from source https://github.com/haskell/stm. The testsuite has a bound base < 4.14 so I can't configure it. What's going on? |
| 2020-10-30 15:22:34 | <merijn> | tomjaguarpaw: the main package only had its dependency bumped a month ago, so maybe they forgot to bump the testsuite? |
| 2020-10-30 15:22:45 | <tomjaguarpaw> | Ah, I'll try just doing that. |
| 2020-10-30 15:22:46 | → | ddellacosta joins (~dd@86.106.121.168) |
| 2020-10-30 15:22:53 | <merijn> | CI isn't testing 8.10 yet either |
| 2020-10-30 15:22:56 | <tomjaguarpaw> | How would I build /without/ the test suit, in any case? |
| 2020-10-30 15:23:00 | × | mokulus quits (~mat@176.111.230.96) (Ping timeout: 268 seconds) |
| 2020-10-30 15:23:04 | <tomjaguarpaw> | I tried --disable-tests |
All times are in UTC.