IRC channel logs

2016-01-29.log

back to list of logs

<jyc>it seems like when I throw an exception from a thread, nothing gets printed out
<jyc>when I create a thread using srfi-18. I read in the docs that guile installs an exception handler for these threads
<jyc>is there something I can set in order to print exceptions? or should I just use guile's core threads to avoid having to deal with this
<jyc>also, I am getting a lot of 'error while printing exception: fport_write: bad address'
<jyc>is this a bug?
<jyc>yep, I am getting this error: t exception: system-error (fport_write ~A (Bad add
<jyc>ress) (14))
<jyc>looks like in 2014 someone ran into the same bug. https://gnunet.org/bot/log/guile/2014-03-24 I am wondering if format is the cause, though the documentation doesn't say anything about it being not threadsafe?
<jyc>also looks like this bug report: https://savannah.gnu.org/bugs/?33996
<jyc>I'm guessing it's beacuse `format` calls `write-char`, and while `display` locks the port from commit 215fe3a89119319fa0bb953ede574b38bea143ab, `write-char` does not
<jyc>anyway, I have to go now, but if someone who knows more could confirm that is why I would appreciate it :) this has been confusing me a lot
<mark_weaver>jyc: ports do not include built-in thread synchronization, so accessing the same port from multiple threads without doing your own synchronization will lead to badness like "fport_write: bad address"
<mark_weaver>jyc: note that the port synchronization that was added to our master branch will be at least partially reverted.
<mark_weaver>jyc: the easy way to catch and print exceptions is to use 'call-with-error-handling'
<mark_weaver>we will certainly need to have some solution for thread synchronization when printing error messages, of course.
<mark_weaver>the details are still being worked out
<jyc>mark_weaver: Thanks! Now I get why its happening
<mark_weaver>in 2.2, the plan is to arrange so that if multiple threads access the same port without synchronization, the worst that can happen on typical platforms is for the output to become garbled. we intend to do things in such a way that crashes will not happen.
<mark_weaver>jyc: you're welcome
<mark_weaver>but also, we'll come up with a better solution for error reporting.
<jyc>that sounds great
<jyc>looking forward to 2.2 then :)
***zxq9 is now known as ywp8
***ywp8 is now known as zxq9
<McDecaf>Is thee any way to configure guile to consider say /usr/local/lib64/scheme in its load path without using environment variables or making the declration at the top of every script?
<lloda>you can use the -L flag
<lloda>-L DIRECTORY add DIRECTORY to the front of the module load path
<lloda>don't know if that'll work for you
<ArneBab>can someone who’s at FOSDEM download my slides and lend me a computer tomorrow during the talk? https://fosdem.org/2016/schedule/event/guilewisp/attachments/slides/911/export/events/attachments/guilewisp/slides/911/fosdem2016_arne_babenhauserheide_wisp.pdf
<nalaginrut>ArneBab: nice ;-)
<dsmith-work>Happy Friday, Guilers!!
<daviid>happy [late] friday guilers!