This must be a bug. A stream backed by a file is seekable so 0 should
be returned as its length.

2016-07-08 1:32 GMT+02:00 John Benediktsson <mrj...@gmail.com>:
> Possibly not easy to tell at that point if it is a file or network descriptor 
> and the worst case is an additional read that returns EOF on an empty file?
>
>> On Jul 7, 2016, at 4:06 PM, Alexander Ilin <ajs...@yandex.ru> wrote:
>>
>> Hello, John!
>>
>>  TCP/UDP streams are not seekable, so it should return f, and it does. Why 
>> does it not return 0 for seekable empty (file) streams?
>>
>>  A bigger quote from the documentation:
>>
>> Word description
>> Returns the length of the data supplied by stream, or f if the stream is not 
>> seekable or has unknown length.
>>
>> Notes
>> Stream seeking is not supported on streams that do not have a known length, 
>> e.g. TCP/IP streams.
>>
>> 08.07.2016, 00:42, "John Benediktsson" <mrj...@gmail.com>:
>>> For tcp/udp file descriptors, they can return 0 length sometimes and we 
>>> want to then return `f` so we read to EOF.
>>>
>>>> On Jul 7, 2016, at 2:26 PM, Alexander Ilin <ajs...@yandex.ru> wrote:
>>>>
>>>> Hello!
>>>>
>>>>  OK, ignore that last message, I can see now that it works.
>>>>
>>>>  Another question, though. This one is about io.ports:
>>>>
>>>> M: buffered-port stream-length
>>>>    handle>> handle-length [ f ] when-zero ;
>>>>
>>>>  Why does it never return 0? For instance, what if I open an empty file 
>>>> for reading, I'd expect it to return 0, and "f" only for streams that are 
>>>> not seekable.
>>>>
>>>> { 0 }
>>>> [
>>>>    "empty.txt" binary [ input-stream get stream-length ] with-file-reader
>>>> ] unit-test
>>>>
>>>>  From the documentation on stream-length:
>>>> Word description
>>>> Returns the length of the data supplied by stream, or f if the stream is 
>>>> not seekable or has unknown length.
>>>>
>>>>  Why not return 0 so that I could test that with if-zero?
>>
>> ---=====---
>> Александр
>>
>> ------------------------------------------------------------------------------
>> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
>> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
>> present their vision of the future. This family event has something for
>> everyone, including kids. Get more information and register today.
>> http://sdm.link/attshape
>> _______________________________________________
>> Factor-talk mailing list
>> Factor-talk@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/factor-talk
>
> ------------------------------------------------------------------------------
> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
> present their vision of the future. This family event has something for
> everyone, including kids. Get more information and register today.
> http://sdm.link/attshape
> _______________________________________________
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk



-- 
mvh/best regards Björn Lindqvist

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to