From: Bardur A. <sp...@sc...> - 2006-07-31 17:38:57
|
Nicolas Cannasse wrote: >> A recent project required me to parse gzipped XML files using Xml-Light. >> The most convenient way to access the gzipped files was using Extlib's >> Unzip.inflate on an IO.input stream. However, since Xml-Light does not >> support IO or the standard OO file interface (it only supports input >> from files, Pervasives streams, strings, and lexbufs), it was necessary >> to define a wrapper function: >> >> let lexbuf_of_input i = >> Lexing.from_function >> (fun s n -> >> try >> IO.input i s 0 n >> with IO.No_more_input -> >> 0);; >> >> I just wonder whether it might be worth adding a couple of conversion >> functions along these lines to the IO module, since I can imagine them >> being generally useful? The code is trivial, but one of the things I >> value Extlib for is that it reduces the need for boilerplate like this. > > Hi Peter, > > The only problem is that this would create an IO -> Lexing dependency. > OCaml performs linkage on a per-module basis so not sure it's nice to > add such an overweight for a single simple function. > That reminds me... At one point I also wanted to add "input_of_file_descr" and "output_of_file_descr" to the IO module. In fact, I'd still be interested in adding these. Could we maybe add a new "IO_extras" module for such not-strictly-needed-but-nice-to-have functionality? -- Bardur Arantsson <bar...@TH...> - Ouch! That's going to bleed when my heart beats. Professor Farnsworth, 'Futurama' |