[GUI] Re: Events and finalizers

Nick Name nick.name@inwind.it
Tue, 11 Mar 2003 16:19:08 +0100

On Tue, 11 Mar 2003 13:43:32 +0100
George Russell <ger@tzi.de> wrote:

>  I think devising something that subsumes everything may be tricky.

Oh, before somebody misunderstoods me badly, and before moving this
discussion to an appropriate place, two things:

- I would like to subsume just some aspects of things I said. For
examples, trying to subsume MVars as a general synchronization structure
is far away from the streams, but MVars are also used as shared
thread-safe variables, and this is the aspect I wish to model

- Of course, I would like a library with necessary types, and not an
unique type to subsume them all; this is mainly to avoid things like a
read-only variable wich returns "error" on write: there should be a type
for readable things and a type for writable things!

>  For example, will this stream library also subsume CML style events
>  (as implemented by me as part of HTk), which allow you to wait on
>  multiple events and return when any one of them occurs? 

Well, this is an example wich requires concurrency. "Merge" of events
will be available only on preemptive multithreaded implementation,
unless I am wrong and there is an alternative way (like a "select"

> Will it be
>  possible, for example, to "fold" a stream, taking an existing stream
>  and adding a bit of state to it?   Will it be possible to block
>  selected elements of a stream?
>  I applaud the idea of devising a general stream library.  But I would
>  suggest starting with devising an interface that is extensible as
>  possible, so all such features can be added later on, as necesary.

Yes, and this is way I say "let's work together". You have to point out
your issues, everybody else their. We 'll see what stream semantics we
are interested in and what are too complex or too rarely used, and
decide what's "inside" the library and what's "outside", or else the
work could have been done here in the GUI ml.

Let's put a deadline, say two months to make the specification of an
extensible kernel and to write a correct implementation - if we don't
have anything till that deadline, we'll surrender :) Also because I have
to ask for my thesis, and after that will not have so much time.