Ian Price <ianpric...@googlemail.com> writes:

> scheme@(guile−user)> (let* ((port (make-soft-port
>                                    (vector #f #f (lambda () 'flushed) #f #f)
>                                    "rw")))
>                        (force-output port))
> scheme@(guile−user)> 

Yak, this example is a horrible one, since force-output doesn't return
the return value of the procedure anyway, but if you try replacing it
with (lambda () (throw 'wontthrow)), and you'll see it doesn't error

In sf_flush in libguile/vports.c, there is a test
  if (pt->write_pos > pt->write_buf)
which some printf debugging tells me is never true, in fact, those
values never change, no matter how much I write to the port. Some food
for thought while I grapple with how the ports code is supposed to work.

-- 
Ian Price

"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"



Reply via email to