IRC channel logs

2017-07-05.log

back to list of logs

<paroneayea>wingo: wow! https://wingolog.org/archives/2017/06/27/growing-fibers answered why I was experiencing a bug I was having today in its second to last paragraph
<paroneayea>I was trying to set up a more or less guaranteed finalize step with dynamic-wind in a program I wrote using 8sync
<paroneayea>and I couldn't figure out why it kept running the out guard over and over again
<paroneayea>turns out it was happening every time the actor suspended / aborted to the prompt! I had no idea that would happen with delimited continuations.
<nalaginrut>afternoon guilers
<nalaginrut>ArneBab: I always try to play Hurd occasionally, the apt-get upgrade give me very new version now, it looks better than last year, but some translator test still stuck, I think there's bug in filesystem
<ArneBab>atw: currently I’m only experimenting with subhurds: I want to see whether I can build virtualization with minimal disk usage using subhurds and unionfs
<ArneBab>nalaginrut: I typically run the qemu images — like this: http://www.draketo.de/english/free-software/howto-hurd-140-chars
<ArneBab>nalaginrut: The Hurd is moving along pretty well, considering that all contributors have very limited time
<atw>cool!
<nee``````>catonano: I didn't know about guile-squee. I have only used basic features of guile-pg, but can't complain about them (unlike for guile-dbi). guile-pg has some more stuff like type conversion that I didn't test out. One bad thing atm is that it doesn't compile with guile 2.2.
<catonano>nee``````: yes, I read that. Do you know why ?
<catonano>nee``````: thanks anyway
<nee``````>catonano: I didn't look deep into it. I just know that my package broke when I tried to bump the number.
<catonano>nee``````: ok. We'll see
<dsmith-work>Greetings, Guilers
<sporgj>greetings
<nalaginrut>ArneBab: I always would like to contribute, and I spent many times to try to get in, but I think there're lot of problem stop me. Before I get into the kernel hack, I think translator is easier to try. but it halt even for basic example
<nalaginrut>ArneBab: 3 years, each time I encountered this situation, I can't help to think about write a new one to replace hurd
<nalaginrut>;-)
<daviid>nee``````: you can try guile-sqlite3, which works fine with guile 2.2, that is if you do not strictly depend on postgres of course...
<nee``````>daviid: I depend on postgres. switching to guile-squee, or editing guile-pg is more of an option. For now I've just been keeping this project on guile-2.0.
<daviid>nee``````: ok, too bad guile-pg still does not work with 2.2, but if you do not need auto conversion of types, guile-squee is fine, though rather 'primitive' compared to guile-pg (it started and still is sort of experimental)
<ArneBab>nalaginrut: if you run the Hurd via qemu, it already works pretty well. Translators aren’t completely easy (you need to follow ports protocols), but they are much easier than implementing file systems
<ArneBab>nalaginrut: basically one of the problems I see is that there are too few people testing and maintaining things
<nalaginrut>ArneBab: I run hurd on qemu, most of the things are good enough for me. Artanis was OK on hurd before, but now it requires epoll. I should contribute it, but I still don't find a good way to hack it
<amz3>héllo
<sneek>amz3, you have 1 message.
<sneek>amz3, nalaginrut says: I found it's easier to use pipe for git operation rather than using guile-git, and the blog engine is almost done, compatible with tekuti. Fortunately, Artanis works smoothly.
<ArneBab>nalaginrut: did you already ask on the Hurd mailing list whether there’s a way to add it which someone else already did?
<nalaginrut>ArneBab: the epoll discussion seems only raised by me http://darnassus.sceen.net/~hurd-web/open_issues/glibc/#epoll
<random-nick>is there any software transactional memory library for guile?
<davexunit>random-nick: I haven't heard of any.
<roelj>Does anyone else have an issue with Geiser startup taking a couple of seconds when Emacs starts?
<roelj>Starting Guile seems to take long, but only within Geiser.. In a terminal "guile" is really quick.
<paroneayea>hey wingo
<paroneayea>ACTION is looking at building 8sync on top of fibers
<paroneayea>but
<paroneayea>I'm reading the paper you suggested, "Kill-Safe Synchronous Abstractions"
<paroneayea>since effectively, to build the actor model on top of CSP in a non-cooperative environment, it looks like you need a way to have threadsafe queues, and the paper does describe that
<paroneayea>but I'm not sure it can be done with Fibers right now... I wonder what you think
<paroneayea>at least not in the model they described
<paroneayea>oh hm
<paroneayea>I didn't see that fibers has its own dequeue module.
<paroneayea>maybe that solves this whole thing...
<paroneayea>hm
<paroneayea>;;; Besides the general ways in which this implementation differs from the paper, this channel implementation avoids locks entirely. Still, we should disable interrupts while any operation is in a "claimed" state to avoid excess latency due to pre-emption. It would be great if we could verify our protocol though; the parallel channel operations are still gnarly.
<paroneayea>it does seem like the hand-off stuff is more complicated than I anticipated in channels.scm
<paroneayea>parallelism makes things hard ;)
<paroneayea>wingo: if there was a way to put a value into a channel without waiting to rondevouz, my whole problem here would be solved ;P
<paroneayea>but I guess, maybe that would break fibers' design entirely.
<paroneayea>wingo: it looks like the only way to do the kind of asynchronous buffered queue I need in fibers would either be to have those other primitives, implement the kind of complicated commit pattern in channels.scm, to use locks (not ideal!), or to restrict actors to a cooperative-only model... does that seem right to you?
<paroneayea>specifically I think the reason why the "kill safe queue" from that paper won't be, er... "safe", is because thread-suspend and thread-resume don't really exist abstractly in an easily accessible way for fibers
<paroneayea>maybe I'm wrong?
<paroneayea>though...
<paroneayea>it would be gnarly but maybe it could be done with a (erk) mutex and a check if the fiber was on the same scheduler or not