lp://staging/ocamlbricks
- Get this branch:
- bzr branch lp://staging/ocamlbricks
Branch merges
Related bugs
Bug #1085461: build system should support setting a prefix | Undecided | New | |
Bug #1129425: dangling cmi files | Undecided | New | |
Bug #1130098: fails to build on architectures without native ocaml compiler | Undecided | New | |
Bug #1722157: typo in Makefile | Undecided | New |
Related blueprints
Branch information
Recent revisions
- 561. By Jean-Vincent Loddo
-
In module Channel, added tools (`reactive_image', `reactive_minion') simply derived from the fundamental ones (`map', `product', `cover') to show the ability of channels to program in a reactive style, remaining compliant with the OCaml garbage collection.
- 560. By Jean-Vincent Loddo
-
Whole library adapted to OCaml versions 4.04.2, 4.06.1, 4.07.1, 4.08.1, 4.09.1, and 4.10.0. On the other hand, we are forced to abandon versions older than 4.04.2 because of the standard module Ephemeron, appeared with version 4.03, which is now used too extensively to preserve backward compatibility.
- 558. By Jean-Vincent Loddo
-
Minor but several changes to render Ocamlbrics compatible with OCaml 4.07. Basically, the main solved problem concerns the separation between the types `bytes' and `string', because since OCaml 4.06, the two types are not anymore synonyms.
- 557. By Jean-Vincent Loddo
-
Added module Collector to manage message collection, i.e. to manage values put on the channel by several sources (threads) asynchronously. Several (priority) "maintainers" depose a value on the channel and, from time to time, a (non priority) "writer" flush the container. In case of conflict with a flusher, maintainers have time to put everything they want before the flusher can act.
- 555. By Jean-Vincent Loddo
-
Created directory CHANNEL/ to group all sources related to algebraic channels. Currently, all files contained in CHANNEL/ have been moved from the directory CORTEX. This last directory is not far from being obsolete and useless.
- 554. By Jean-Vincent Loddo
-
Sixth satisfactory version (until the next) of algebraic channels, with support for ephemeral (not persistent) structures. Stabilizations and notifications are performed only for writers and maintainers. During the access protocol to a channel, if the channel contains a persistent structure (by default) and the internal resistance has not really changed we do nothing (no stabilization, neither notifications to super-structures). The same (micro-
)optimization cannot be applied to ephemeral (not persistent) structure, because for this kind of structures we cannot easily detect changes provoked by the `update' function (the 3th and 4th arguments of the body are the same object). Finally the more accurate tool to access a channel has the following signature:
val access :
?level:int -> ?ephemeral:unit -> ?enter:('a -> bool) -> ?notify:int list -> ?update:('a -> 'a) -> ?leave:('a -> bool) ->
'a t -> ('a FTCC.t -> 'a details -> 'a -> 'a -> 'b) -> (exn, 'b) Either.t - 553. By Jean-Vincent Loddo
-
Fifth satisfactory version of algebraic channels, with tools to better control the non-determinism (+). Now, when a method is applied to a disjunction (many "files" stored in the "directory"), we are able to acquire again exactly the same structure acquired the first time, and continue the work on it (module Channel.Control).
- 552. By Jean-Vincent Loddo
-
Added Lazynel, the module of thread-safe deferred computations implemented as algebraic channels (to be composable). Also added the module TS_lazy of (T)hread-(S)afe deferred computations not implemented by algebraic channels but with simple mutexes. Hence, the latter cannot be composed neither may be the subject of a waiting method (as on the contrary is possible with Lazynel.wait).
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)