<Praetonus>
SeanTAllen: fails in a clean environment too. I tried Debian and Archlinux. I'll open an issue
ohir_ has joined #ponylang
ohir has quit [Ping timeout: 240 seconds]
strmpnk has quit [Ping timeout: 240 seconds]
strmpnk has joined #ponylang
<SeanTAllen>
Praetonus: what version of Debian? what version of Arch? It builds fine in the travis builds. I need more info if I'm going to look into this.
amclain has quit [Quit: Leaving]
Praetonus has quit [Quit: Leaving]
copy` has quit [Quit: Connection closed for inactivity]
trapped has joined #ponylang
jemc has quit [Quit: WeeChat 1.4]
jemc has joined #ponylang
jemc has quit [Quit: WeeChat 1.4]
jemc has joined #ponylang
trapped has quit [Read error: Connection reset by peer]
jemc has quit [Ping timeout: 248 seconds]
<sylvanc>
Praetonus: works for debug and release on LLVM 3.6.2, 3.7.1 in travis and on my various linux VMs
<sylvanc>
64 bit wily, 32 bit trusty, 64 bit trusty, etc
<sylvanc>
there is a known problem with a debug build on linux using LLVM 3.8 if you install LLVM from apt due to the apt package having no debug symbols
<sylvanc>
but i can't reproduce your problem with the release build, i'm afraid
<darach>
Slightly more convenient than MIPS. So jealous! :)
Arch-KT is now known as Arch-TK
TwoNotes has joined #ponylang
jemc has joined #ponylang
<SeanTAllen>
yeah. per conversation that wasn't here. i found out llvm 3.8 for debian is built with debug symbols (but for ubuntu, it isnt because ¯\_(ツ)_/¯)
<TwoNotes>
If I have a packages that defines 3 classes, and I only refer to one of them, is the code for the other two still included in my executable?
<jemc>
TwoNotes: off the top of my head, I think the answer is "no" - I think the compiler excludes types from other packages that are "unreachable" from the code in the main package
<TwoNotes>
ok good
<TwoNotes>
I assume that the largish size for even the simplest Pony program is due to the scheduler, GC, etc
<TwoNotes>
Though libponyrt is an .so hmmm
<shepheb>
it is, but isn't it linked in directly?
<shepheb>
otherwise the output binaries would have a runtime dependency on libponyrt being findable, and I don't think that's the case.
<TwoNotes>
That would certainly explain the size, and it makes finished programs standalone, which is nice for deployment
<TwoNotes>
A big advantage over Erlang. The OTP package is huge
<jemc>
I've recently dealt with the process of trying to package up a docker container for an OTP app and attempting to pare it down to only the minimal amount of OTP it needs - it's certainly not for the faint of heart, and at a certain point I stopped short of fully minimal because the time investment was getting to be too much for the savings
<jemc>
being able to deploy a standalone binary that just works is a big headache lifted
<jemc>
even if there might be *some* waste if you have multiple applications that all statically linked the same base (probably the reason OTP went with the shared base approach, with multi-application deployments being the OTP way)
<jemc>
however, if you want to isolate those applications into docker applications as is so common today, you end up with the same "waste"
<TwoNotes>
There is a way to make a big binary from an Erlang app, but it is real complicated.
<TwoNotes>
It sucks the whole BEAM engine into it
<TwoNotes>
And I think you lose the rolling-upgrade feature anyway if you do that