Hi Romain,

I didn't look at your patches yet but I have a few comments.
Basically, I think that we should be careful with the read cells /
interactive_* stuff. This is quite a weird toy.

First, it uses these strange "getter" constraints, these "... where 'a
is either float or ()->float". It is safe and behaves well on simple
examples, but I'm sure that our current constraint management can make
type inference look very weird on not-so-complicated-examples. I seem
to remember that I had started to build an example but I found a bug
instead :\ Basically, the problem is that the constraint satisfaction
checking is done only at instantiation time: the contradiction between
two constraints is never detected, the simplification of constraints
never occurs either.

Second, the float getters / interactive floats are really good for
audio processing parameters, but, even though the technique can be
pushed further, it is not always so natural. We had several
discussions on that with Sam, I won't try to detail the issue...

To conclude: we have a really cool magical hammer, but let's be
careful with it and try to stick to simple solutions when possible. In
the case of file outputs, the filename is already dynamic, with the
date format code feature. I'm sure we can tweak that a bit more and
get a simple clean solution to get metadata-dependent filenames.

> * interactive vorbis does not look good in the way it modifies 
> file_output.ml.. It should have
>    broke others file outputs.. !  However, it works quite ok with the test 
> below..

I seem to remember that I did some modifications that only apply to
vorbis. I left the job unfinished, eventually all file outputs should
benefit from the dynamicity.

> With some more work (and a 'a -> fun), I'll be able to write a stream ripper 
> using liq !!

Cool example :) Can you send a mockup of what the script should look
like, without bothering about implementation ? (In particular I don't
understand the "'a -> fun" thing that you want.) In September, we can
work together to make it real.

++
-- 
David

Répondre à