561
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
560
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
559
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
558
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
557
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
556
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
555
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
554
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
553
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
552
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
551
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
550
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
549
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
548
|
|
Added module Milner, of named, 1-to-1, synchronous/asynchronous, 1-size value-passing (algebraic) channels. Being first-class citizen, they allow the communication of channels like in the pi-calculus. Strictly speaking, (1) Milner's channels as initially defined in CCS are not value-passing (here they would be of type unit), and (2) both in CCS and pi-calculus, the `send' method is supposed to be executed in the synchronous mode, while in this module `send' is executed by default in the asynchronous mode. Hence, to force the synchronous mode we have to precise the option ~sync:(). Note that Milner's theoretical models were initially synchronous in order to have a basic definition of program equivalence (bisimilarity), but were later extended (by Milner and others) to cover the asynchronous case.
|
Jean-Vincent Loddo |
3 years ago
|
|
|
547
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
546
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
545
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
544
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|
543
|
|
In module Directory_tree, added the possibility to redefine operations on "files" making products (times) or extracting projections (split, fst, snd). By default these values are taken by the module (File: ZIPPED_FUNCTOR) argument of the functor MAKE. So, the new interface of multiplicative tools is: val times : ?file_zip :('x File.t * 'y File.t -> ('x * 'y) File.t) -> (**) ('a,'x) t -> ('a,'y) t -> ('a, 'x * 'y) t val split : ?file_unzip :(('x * 'y) File.t -> 'x File.t * 'y File.t) -> (**) ('a, 'x * 'y) t -> ('a,'x) t * ('a,'y) t val fst : ?file_fst :(('x * 'y) File.t -> 'x File.t) -> (**) ('a, 'x * 'y) t -> ('a,'x) t val snd : ?file_snd :(('x * 'y) File.t -> 'y File.t) -> (**) ('a, 'x * 'y) t -> ('a,'y) t
|
Jean-Vincent Loddo |
3 years ago
|
|
|
542
|
|
|
Jean-Vincent Loddo |
3 years ago
|
|
|