Newest at the top
2024-11-01 15:30:05 +0100 | <mauke> | I know capi does weird things |
2024-11-01 15:29:50 +0100 | <mauke> | for ccall? are you sure? |
2024-11-01 15:29:33 +0100 | <merijn> | (modulo marshalling as defined in the FFI part of the standard) |
2024-11-01 15:29:22 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2024-11-01 15:29:10 +0100 | <merijn> | mauke: https://github.com/merijn/Belewitte/blob/ed95965077ee0a55c9a206b75445ddf93723916b/benchmark-analys… |
2024-11-01 15:29:07 +0100 | <merijn> | mauke: It's been awhile, but iirc if you mention the header file on the foreign import it will check that the Haskell type you declare for it corresponds to the C type |
2024-11-01 15:28:11 +0100 | vgtw | (~vgtw@user/vgtw) vgtw |
2024-11-01 15:28:10 +0100 | <mauke> | er, yes |
2024-11-01 15:27:48 +0100 | <merijn> | mauke: "can" for the type checking, you mean? |
2024-11-01 15:27:29 +0100 | <mauke> | tomsmeding: the cp $(cabal list-bin yourexename) wherever method gives me a non-stripped executable |
2024-11-01 15:26:44 +0100 | k_hachig_ | (~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) k_hachig |
2024-11-01 15:25:55 +0100 | <mauke> | define "can" |
2024-11-01 15:25:03 +0100 | <merijn> | Not to mention GHC being able to use CPP macros as values |
2024-11-01 15:24:45 +0100 | <merijn> | Which can be helpful for your sanity |
2024-11-01 15:24:36 +0100 | <merijn> | mauke: GHC can automatically check whether your declared types match the headers |
2024-11-01 15:24:06 +0100 | <merijn> | \o/ |
2024-11-01 15:23:23 +0100 | <mauke> | oh hello, executable stripping works if I turn it on in ~/.cabal/config |
2024-11-01 15:22:46 +0100 | <mauke> | technically I could probably just delete the header files because I'm pretty sure ghc doesn't care anyway |
2024-11-01 15:22:44 +0100 | tired | (~tired@user/tired) tired |
2024-11-01 15:21:46 +0100 | <mauke> | I don't have generated files, so for me it's all "sdist" in a sense |
2024-11-01 15:20:00 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-11-01 15:19:45 +0100 | <merijn> | runtime" to be one of the things preserving my sanity |
2024-11-01 15:19:39 +0100 | <merijn> | Docker makes sense when you remember that lots of ecosystems (looking at you npm, typescript, python, etc.) don't have a sane boundary to distinguish "necessary at build/packaging" from "necessary at runtime". And while I share your annoyance of "I need to set 4 fields in .cabal to packabe my headers" is annoying. I find the clear distinction between "what is sdist, what is build time, and what is |
2024-11-01 15:19:29 +0100 | vgtw | (~vgtw@user/vgtw) (Ping timeout: 248 seconds) |
2024-11-01 15:17:12 +0100 | <merijn> | Using docker the "right" way is for people who don't know how to build/package their own stuff :p |
2024-11-01 15:16:32 +0100 | <mauke> | which I then copy out to the host system |
2024-11-01 15:16:23 +0100 | <mauke> | right now I'm using docker "backwards" in that I have a custom build container just for creating CentOS 7 binaries |
2024-11-01 15:15:40 +0100 | <mauke> | "running on stupid machines" is very valid |
2024-11-01 15:15:17 +0100 | <merijn> | You can ignore that part on sane machine ;) |
2024-11-01 15:14:55 +0100 | <merijn> | basically |
2024-11-01 15:14:54 +0100 | <mauke> | I see |
2024-11-01 15:14:50 +0100 | <mauke> | ah, it's just a realpath reimplementation |
2024-11-01 15:14:44 +0100 | <merijn> | mauke: It's mostly "I was running on some stupidly broken machines" engineered |
2024-11-01 15:13:51 +0100 | <mauke> | wow, that scriptpath thing looks ... overengineered |
2024-11-01 15:13:10 +0100 | <merijn> | I dunno if adding library-stripping also work? |
2024-11-01 15:12:54 +0100 | <mauke> | cabal install with split sections and explicit executable-stripping: 11M |
2024-11-01 15:12:42 +0100 | <mauke> | cabal install with split sections: 18M |
2024-11-01 15:12:31 +0100 | <mauke> | cabal install with 'executable-stripping: True' in project file: 16M |
2024-11-01 15:12:20 +0100 | <merijn> | mauke: I also have this neat lazy people trick for testing "in-development" executables https://github.com/NLeSC-AAA2/etherpacket/blob/master/EtherPacket |
2024-11-01 15:12:04 +0100 | <mauke> | cabal install with default options: 25M |
2024-11-01 15:11:49 +0100 | <mauke> | final tally: |
2024-11-01 15:09:24 +0100 | <mauke> | given that it works fine as long as you don't sdist, which I have no intention of ever doing |
2024-11-01 15:08:50 +0100 | <mauke> | "broken" is debatable |
2024-11-01 15:07:58 +0100 | <tomsmeding> | right |
2024-11-01 15:07:55 +0100 | <merijn> | Which is good TM |
2024-11-01 15:07:54 +0100 | <tomsmeding> | (not saying that's a bad thing) |
2024-11-01 15:07:49 +0100 | <merijn> | tomsmeding: Which means it detects broken cabal configs ;) |
2024-11-01 15:07:36 +0100 | <tomsmeding> | except it goes through sdist |
2024-11-01 15:07:26 +0100 | <merijn> | tomsmeding: I mean, --install-method=copy --install-dir=foo does the same |
2024-11-01 15:07:12 +0100 | <merijn> | anyway, gotta get back to work |