Revision b34a952aad1b143e60e302df55a4f986ab904c42 authored by Software Heritage on 23 January 2007, 00:00:00 UTC, committed by Software Heritage on 21 February 2020, 16:03:09 UTC
0 parent
Raw File
ChangeLog
###Date format: YYYY/MM/DD
2003/7/10: Fixed various serious bugs:
	   - closing of descriptor s in threaded mode's establish_smart_server
	     wreaked havoc as s is modified by other threads (fixed by removing)
	   - mutex in debug code was locked multiple times due to bested debug print calls 
	     (fixed by not using the mutex in nested calls)
	   Added first consisten set of tests.
	   Removed Tests directory.
	   Stepped revision to 1.9
	   
2003/7/02: Fixed errors in Loop handling (added EndOneLoop).
	   Added pardo scope protection.
           Added handling of EoF in unsafe_really_read.
	   Discovered that there is a spurious process allocated
	   that does nothing (waits for a closure that never comes, then dies *)...
	   this points to an error in the vp allocation code in parp3l.ml
           [FIXED RDC 2003/7/10]
	
2003/7/01: Changed the semantics to allow the use of skeleton-defined
	   stream functions inside an arbitrary Ocaml expression.

	   Now you use P3L skeletons as

		let f = parfun (fun () -> seq (fun _ x -> x));;

		...

		pardo (fun () -> while !continue do ... f (P3lstream.of_list [x;y]@l) ... done);;

	   In this first experimental version the loop combinator is not guaranteed to be correct.


2003/6/10: Changed the user interface to allow streams
           in the sequential implementation.
           This implies that in every old program, any
           function passed to the seq constructor needs an additional
           (discarded, for now) argument.

           let worker _ = fun n -> n;;

           seq(worker)

           Istead of the old

           let worker = fun n -> n;;

           seq(worker)

           [RDC]
back to top