IRC channel logs
2017-08-13.log
back to list of logs
<reepca>how would one go about figuring out which kind of port a port is? For example, socket, file, pipe, etc. <cmaloney>reepca: I think the only data you get (iirc) is whether it's a block or character device <cmaloney>reepca: Is this a remote port or a local port? <manumanumanu>davexunit: so, back to continuation-safe for/list loops. I have a question. Wouldn't jumping in and out of a continuation with a lot of conses take a lot of time? There was just a pretty big performance bug in racket using generators and their for/list that wasn't tail recursive, and I wouldn't want to spend lots of time implementing continuation-safe loops and have them be dirt-slow for continuations :) It <manumanumanu>Found the problem, btw: racket expands for/list loops with #:break/#:final statements to a simple (reverse (loop))), but uses the neat (now slow) behaviour for the other lists. <efraim>is there a guile-soap library? or is the emacs-soap library the closest one <manumanumanu>ok, tried it. re-instating the continuation is a lot faster using an accumulator than a non-tail-rec loop using cons. <paroneayea>hoo I have really painted myself into a corner tho <paroneayea>I thought layering 8sync on top of fibers would paper over the problem I was having because it would automatically suspend a fiber that was blocking (we still don't have suspendable-ports support for custom binary i/o ports) with its pre-emptive feature <paroneayea>only realizing now that it can't be suspended, since the port itself is stuck behind a continuation barrier <paroneayea>so now I've got to implement remote actor support and actually do all the http requests, temporarily, behind another process <paroneayea>I'm checking off all sorts of tasks I've wanted to do while trying to get this out the door, but in a rushed fashion <spk121>paroneayea: just reading that wore me out. <paroneayea>actually if I can explicitly create a fiber in another thread, it's probably fine. <paroneayea>wingo: is that possible? it looks to me like if I want to explicitly create a fiber in another thread, I have to create a scheduler in another thread, right? <paroneayea>wingo: otherwise you have no control over what's in antoher thread or not <paroneayea>it looks like there's no "safe" way to do that without violating fibers' underlying structure if I'm reading right <paroneayea>this thing is so past due and I need to have it up by tuesday morning :(