Version franēaise
Home     About     Download     Resources     Contact us    
Browse thread
Strange OCaml bug
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Jean-Christophe Filliatre <filliatr@l...>
Subject: Re: [Caml-list] Strange OCaml bug

Hello,

I gave it a quick look and  it seems that your problem comes from some
lack  of flushing  when writing  strings  into files.  I rewrite  your
File_utils.write function into

======================================================================
let write: file -> string -> unit = 
  let f s text =  
    let c = open_out (Filename.concat !name s) in
    output_string c text;
    close_out c
  in
  ...
======================================================================

and it now works fine apparently.

Hope this helps,
-- 
Jean-Christophe Filliātre (http://www.lri.fr/~filliatr)


Tom Wilkie writes:
 > Dear all
 > 
 > This is my first post, so I'm sorry of this is a bit unusual or not  
 > what this mailing list is for.   I've googled and search mailing list  
 > archive, but didn't find anything. I'm using OCaml (version 3.08.4)  
 > on my PowerBook, Mac OS 10.4.3, to develop my Dissertation, and have  
 > run into a big problem, which I can't find a solution to...
 > 
 > The project is a tool for language writers.  You give it a language  
 > defn in a made up meta language (test.ott), and it spits out yacc,  
 > lex, ocaml datatypes (based on sugar and the ocfg tool by Stephen  
 > Tse) and some code to calculate the binding of variables within  
 > expressions (similar to alphaCaml, but not).
 > 
 > The project is in its early stages, lots more work to do, but here is  
 > the problem at the mo:
 > 
 > When I add some code (which typechecks and compiles correctly) the  
 > tool generates empty files.  If I then comment out this code, the  
 > files are back again.  The code is in generate_alpha.ml, lines  
 > 207-212, and this files has nothing to do with the generated Yacc or  
 > Lex.  Very strange.  I've tried compiling it to byte code and native,  
 > to no avail.  The project is very modular, those files beginning with  
 > yacc_* generate yacc, lex_* generate lex and so on...  I even made it  
 > spit the code generated out to the terminal, and its there!  It just  
 > doesn't write to the file!  Is there a problem on OS X with writing  
 > files?
 > 
 > If any one has any ideas, please reply! this is a show stopper for  
 > me.  I've attached my project, to build it with a quick test to  
 > highlight the problem, untar and do a:
 > 
 > make test
 > 
 > And it compiles and works fine.  Uncomment the lines in  
 > generate_alpha.ml, type
 > 
 > make test
 > 
 > and most of the files the tool generates are empty!! (look in test/)
 > 
 > If you put VERSION=NATIVE on the make cmd line then it will compile  
 > with ocamlopt.  Same results on my computer.
 > 
 > Any help would be much appreciated!
 > 
 > Cheers
 > 
 > Tom
 > 
 > _______________________________________________
 > Caml-list mailing list. Subscription management:
 > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
 > Archives: http://caml.inria.fr
 > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
 > Bug reports: http://caml.inria.fr/bin/caml-bugs