jemc changed the topic of #ponylang to: Welcome! Please check out our Code of Conduct => https://github.com/ponylang/ponyc/blob/master/CODE_OF_CONDUCT.md | Public IRC logs are available => http://irclog.whitequark.org/ponylang | Please consider participating in our mailing lists => https://pony.groups.io/g/pony
jemc has quit [Ping timeout: 260 seconds]
Matthias247 has quit [Read error: Connection reset by peer]
c355e3b has quit [Quit: Connection closed for inactivity]
amclain has quit [Quit: Leaving]
jemc has joined #ponylang
mvzink has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
_whitelogger has joined #ponylang
jemc has quit [Ping timeout: 260 seconds]
graaff has joined #ponylang
igt0 has quit [Quit: Connection closed for inactivity]
sjums_ is now known as sjums
Matthias247 has joined #ponylang
_andre has joined #ponylang
c355e3b has joined #ponylang
igt0 has joined #ponylang
Matthias247 has quit [Read error: Connection reset by peer]
jemc has joined #ponylang
igt0 has quit [Quit: Connection closed for inactivity]
jemc has quit [Ping timeout: 258 seconds]
igt0 has joined #ponylang
mvzink has joined #ponylang
graaff has quit [Quit: Leaving]
amclain has joined #ponylang
igt0 has quit [Quit: Connection closed for inactivity]
earnestly has joined #ponylang
<earnestly> Is the amount of memory required to build ponylang mentioned anywhere? Once I get the 'Generating Reachability' memory usage spikes and eventually the oomkiller in invoked "Killed process 6584 (ponyc) total-vm:3840264kB, anon-rss:3427436kB, file-rss:0kB, shmem-rss:0kB". I only have 4G (3.9GiB) available and it seems like this is not enough
<earnestly> The rest of the build seems to require very little though, around 343M (similar to glibc), so I'm wondering if there is more likely a leak as there are a few issues open about such things
<earnestly> It's also not something I can easily test locally as it grinds my machine to a halt for almost 10 minutes
Praetonus has joined #ponylang
<TwoNotes> Those "Killed" messages are a sign of running out of memory. On my Rpi3 I have to have a swapfile defined on a USB external disk
<TwoNotes> earnestly, I use 4GB
Matthias247 has joined #ponylang
<TwoNotes> My RPi3 has just 1GB of RAM. But with the swap file it can compile ponyc
<earnestly> TwoNotes: Well of course, I have some things using some of that memory already, I've tried killing off some non-essentials so I had 3.4G remaining (with most of it cached)
<earnestly> TwoNotes: Yeah, that's also a different architecture
<TwoNotes> I doubt the compiler uses THAT much less memory on ARM
<earnestly> This only happens when 'Generating Reachability' after most of the tests and even after building the packages
<earnestly> I have no idea what 'Generating' means, the Makefile is by default configured to provide very little information, probably for aesthetic reasons
<TwoNotes> ponyc has a phase where it eliminates code that can never be reached. perhaps it is that
Matthias247 has quit [Read error: Connection reset by peer]
<TwoNotes> Are you talking about building ponyc itself (which is written in C) or in compiling Pony programs?
<TwoNotes> The 'packages' are recompiled every time you compile a Pony program.
Matthias247 has joined #ponylang
<earnestly> TwoNotes: Itself
<earnestly> TwoNotes: I should have said, 'build ponyc' instead of 'build ponylang', that was not as clear
<TwoNotes> When the 'Main' actor has nothing more to do, does that exit the program, even if other actors are still running?
<Praetonus> earnestly: This message about reachability only appears when building a pony program, and not when compiling the compiler itself, so your problem is unclear to me
<Praetonus> TwoNotes: No, the program terminates when the system is quiescent, i.e. no actor is executing a behaviour and all message queues are empty
jemc has joined #ponylang
<earnestly> Praetonus: https://ptpb.pw/kzic
<earnestly> Praetonus: These are all the points at which anything is built
<earnestly> Praetonus: Could it be from generating the docs for stdlib then?
<Praetonus> Looks like there is a missing space between `-r` and `expr` at line 6
<earnestly> Should that matter?
<earnestly> I'll try with a space either way
<Praetonus> With that typo, the full test suite for the standard library is built, going through the reachability pass and consuming a lot of memory
<Praetonus> Reducing the memory usage here is a hard problem
<earnestly> Praetonus: Ah, so when flags take arguments, the remaining flags aren't treated as the argument?
<Praetonus> I don't think they are
<earnestly> For single flags, -a -b -c and -abc should be equivalent, but if -a takes an argument then -abc and -a bc are equivalent
<earnestly> At least, this is "normal" for most tools, gcc/clang included
<earnestly> Praetonus: Anyway, here goes. I have a bunch of stuff going so hopefully no lockups :p
<Praetonus> I don't have a strong opinion on flag positioning. You can open an issue on github if you wish to discuss that further
<earnestly> Praetonus: Unfortuantely, same problem
<earnestly> I guess for now I'll just skip generating the documentation
<earnestly> Praetonus: So this message wasn't coming from that command for generating the docs, from instead make config=release prefix=/usr test
<earnestly> Praetonus: Here's the log: ~1800 lines long: https://ptpb.pw/VqRR
<earnestly> I'm slightly surprised no one else is having this issue
<earnestly> (That said, this has been an issue for a few months, I should have said something earlier but thought it was an obvious regression)
<earnestly> (And since it hasn't changed, maybe it's a consequence of something and nothing can be fixed. At which point it'd be nice to know what the requirements to build are)
<Praetonus> The memory required to compile the test suite (or any other big pony program) is pretty high. This comes from the way the reachability pass works. Improving that would require some work on the compiler, but it would be nice to do that. In the meantime, the only way to fix the problem is to have more memory available
<Praetonus> IIRC, the standard library tests require between 2 and 3 GB of memory to compile
<TwoNotes> Praetonus, my program goes into background and so its output does not appear. If I run it under GDB, the output *does* appear. I do not do anything that would make it background itself..
<TwoNotes> My largest Pony program is about 1700 lines of code, plus liraries, and it will not compile on 1GB machine without a swapfile
<earnestly> Praetonus: I don't mind requirements on memory being available, but it'd be nice to know how much. Some projects do kindly mention what kind of memory might be needed, such as Rust and Chromium
<earnestly> Or android stuff
<earnestly> Praetonus: It clearly needs more than 3.8G on x86_64
<TwoNotes> Most languages do not recompile their whole library each time. So the Pony compiler is looking at a lot more stuff
<TwoNotes> Well, the part of the library you actually use
Praetonus has quit [Quit: Leaving]
jemc has quit [Ping timeout: 248 seconds]
Matthias247 has quit [Read error: Connection reset by peer]