English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    
Browse thread
[Caml-list] input_line is blocking
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Warp <warplayer@f...>
Subject: [Caml-list] input_line is blocking
Hi
I'm running "ocamlc" by using Unix.open_process_full in order to write an
automatic compiler.
Right now, it's working fine, but I got now a problem with input_line :

after running open_process_full , i'm first reading all its stdout lines of
the process until End_of_file is raised, then all its stderr lines using the
same function.

It has work fine for few weeks now, but now I found that in some cases
input_line will block, not raising End_of_file.
Actually I got the following errors (on purpose ! ) in one of my test files
:

File "player.ml", line 16, characters 6-66:
Warning: this expression should have type unit.
The implementation player.ml does not match the interface player.cmi :
Modules do not match:
  sig
     type 'a t = 'a array
     ...
     ....
  end
is not included in
   sig
     ...........
   end
The field 'c_value' is required but not provided

I tried to correct few errors, and if I correct enough of them, it works
 the call to input_line on the stdout where NO DATA is written is raising
End_of_file ) , but if correct some other errors, I won't work again...

Perhaps something to do with bufferization ?
If ocamlc generates too much data on stderr, then he waits for the calling
process to read that data, but the process is currently reading on its
stdout.... And vice-versa for ocamldep ( which generates a lot of data on
its stdout )

Any help would be apprecied

Nicolas Cannasse

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners