<chzyhndz>
and getting the occasional segmentation fault
<theodus>
chzyhndz: That shouldn't happen. Which examples and what OS are you using?
<chzyhndz>
I'm using Arch on a 32 bit atom, and the echo example is probably the simplest one with the problem; I've had it with mailbox without args and with httpget
<chzyhndz>
echo seems to work fine, until I connect to the port, at which point it segfaults
theo_ has joined #ponylang
theo_ is now known as theodus_
<chzyhndz>
also, I kinda just cloned the ponyc git repo, and compiled it,
<chzyhndz>
or just did 'make' 'sudo make install'
<theodus_>
What version of LLVM did you use?
<theodus_>
You can check by running llvm-config --version
<chzyhndz>
3.9.0
<chzyhndz>
hmm, let me just update everything
<chzyhndz>
and see if that fixes the problem
<SeanTAllen>
3.9.1 is the supported version now
theodus_ has quit [Ping timeout: 260 seconds]
<SeanTAllen>
actually 3.9.0 is still the officially support version. I just opened a PR to move us to 3.9.1
<SeanTAllen>
chzyhndz: i suspect the 32 bit is the issue. Most folks are on 64 bit platforms so 32 bit would be more likely to have bugs (plus our CI is all 64 bits) so 32 bits is "best effort" support.
<SeanTAllen>
chzyhndz: if you can build a debug version of the compiler and app and open a issue with the backtrace you get from lldb after a crash, that would be awesome. If you don't know how to do that, let me know and I can assist.
<chzyhndz>
I'm guessing its just a matter of downloading clang+llvm, compiling it with debugging enabled, then doing the same with ponyc, right?
<SeanTAllen>
you dont need to do that with clang+llvm
<SeanTAllen>
when you build ponyc do
<SeanTAllen>
make install config=debug
<SeanTAllen>
it defaults to
<SeanTAllen>
make install config=release
<SeanTAllen>
then when buiding the app do ponyc -d
<SeanTAllen>
do you know how to get a backtrack from lldb?
<SeanTAllen>
or how to run an application in lldb?
<chzyhndz>
lldb <app>, right?
chzyhndz has quit [Remote host closed the connection]
chzyhndz has joined #ponylang
chzyhndz has quit [Remote host closed the connection]
chzyhndz has joined #ponylang
<SeanTAllen>
ya
chzyhndz has quit [Remote host closed the connection]
chzyhndz has joined #ponylang
<chzyhndz>
hmm, is it alright if I come back tommorrow with this? it's gotten rather late where I am, I'm afraid.
<chzyhndz>
Still, thanks for helping me out though!
theodus has quit [Quit: -a- IRC for Android 2.1.33]
chzyhndz has quit [Ping timeout: 248 seconds]
<SeanTAllen>
if you can open an issue on the github repo chzyhndz that would be best
sjums has quit [*.net *.split]
CcxWrk has quit [*.net *.split]
k0nsl has quit [*.net *.split]
andreaa has quit [*.net *.split]
sjums has joined #ponylang
andreaa has joined #ponylang
k0nsl has joined #ponylang
k0nsl has quit [Changing host]
k0nsl has joined #ponylang
CcxWrk has joined #ponylang
TwoNotes has quit [Quit: Leaving.]
amclain has quit [Quit: Leaving]
_andre has joined #ponylang
c355e3b has quit [Quit: Connection closed for inactivity]
Praetonus has joined #ponylang
chzyhndz has joined #ponylang
itscaleb has quit [*.net *.split]
bodie_ has quit [*.net *.split]
sylvanc has quit [*.net *.split]
dom96 has quit [*.net *.split]
sylvanc has joined #ponylang
dom96 has joined #ponylang
itscaleb has joined #ponylang
bodie_ has joined #ponylang
theodus has joined #ponylang
chzyhndz has quit [Ping timeout: 272 seconds]
c355e3b has joined #ponylang
Matthias247 has joined #ponylang
TwoNotes has joined #ponylang
<TwoNotes>
An actor _final() gets called when the actor is disposed. FileStream is an actor that owns an 'iso' File. Yet FileStream lacks its own dispose or _final method. So how do I close the underlying File?
Matthias247 has quit [Read error: Connection reset by peer]
<Praetonus>
TwoNotes: An object's _final() method is always called when the object is collected, and an actor collects every object that it owns before being collected. So the File field will be closed when the FileStream is collected
<Praetonus>
But having a dispose method on FileStream to prematurely close the file definitely seems useful to me
unbalanced has joined #ponylang
<TwoNotes>
I just want to make sure it gets flushed cleanly. It is for a log file.
<TwoNotes>
My top level Main actor has a SignalHandler, and a dispose method, but there is nothing to call!
<TwoNotes>
And I can't close the File myself, becasue it was passed off as an 'iso' to the FileStream
<Praetonus>
If your program exits cleanly, the file will get flushed eventually. You just can't control when
<Praetonus>
Oh, didn't see the part about SignalHandler
<Praetonus>
Do you close the program yourself after handling that signal?
<SeanTAllen>
TwoNotes: you want to inform the rest of your application to stop sending data to the file stream, and start shutting down the remaining parts of the application, the filestream wont shut down until its processed all its messages and when it does, it will shut down if there are no other actors to send it messages
theodus has quit [Ping timeout: 256 seconds]
<TwoNotes>
Praetonus, that was the idea. It is a server that does not exit by itself - it has to be killed. But I want to make sure the log buffers are flushed.
<TwoNotes>
If I close all TCP sessions, that will prevent new stuff being written to the log, but it would not necessarily flush the buffer
<TwoNotes>
I observed that just killing it with ^C did NOT flush the buffers - the last htings written to the log were sometimes not on disk. That is why I am adding the SignalHandler
<TwoNotes>
I guess I do want to stop listening for incoming connections, and close all existing ones. Then the program should exit all by itself when all external stimulus goes away, correct? There are no timers.