* [Caml-list] ANNOUNCE: ocaml-bitstring 2.0.4 @ 2013-05-14 16:45 Richard W.M. Jones 2013-05-15 17:38 ` Florent Monnier [not found] ` <5192DFA0.2080706@riken.jp> 0 siblings, 2 replies; 4+ messages in thread From: Richard W.M. Jones @ 2013-05-14 16:45 UTC (permalink / raw) To: caml-list bitstring is a library for manipulating bitstrings, binary file formats, protocols, etc from OCaml. http://code.google.com/p/bitstring/ The list of changes is here: http://code.google.com/p/bitstring/source/list Rich. -- Richard Jones Red Hat ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Caml-list] ANNOUNCE: ocaml-bitstring 2.0.4 2013-05-14 16:45 [Caml-list] ANNOUNCE: ocaml-bitstring 2.0.4 Richard W.M. Jones @ 2013-05-15 17:38 ` Florent Monnier [not found] ` <5192DFA0.2080706@riken.jp> 1 sibling, 0 replies; 4+ messages in thread From: Florent Monnier @ 2013-05-15 17:38 UTC (permalink / raw) To: Richard W.M. Jones; +Cc: caml-list 2013/5/14, Richard W.M. Jones: > > bitstring is a library for manipulating bitstrings, binary file > formats, protocols, etc from OCaml. > > http://code.google.com/p/bitstring/ > > The list of changes is here: > > http://code.google.com/p/bitstring/source/list In Mageia community it's asked to us that when a project lists the distros where it's available and when Mageia is missing to ask that it is added. So this is what I do: On your webpage it is written : """Bitstring is available in newer releases of Fedora and Debian.""" Could you please add that it's available in Mageia too ? """Bitstring is available in newer releases of Fedora, Mageia and Debian.""" Thanks! -- ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <5192DFA0.2080706@riken.jp>]
* Re: [Caml-list] ANNOUNCE: ocaml-bitstring 2.0.4 [not found] ` <5192DFA0.2080706@riken.jp> @ 2013-05-17 16:15 ` Richard W.M. Jones 2013-05-17 16:21 ` Richard W.M. Jones 0 siblings, 1 reply; 4+ messages in thread From: Richard W.M. Jones @ 2013-05-17 16:15 UTC (permalink / raw) To: Francois Berenger, caml-list On Wed, May 15, 2013 at 10:06:40AM +0900, Francois Berenger wrote: [...] I'm not familiar with the problem domain you mention, however: > I mean, the bitstring can be huge, like millions of bits? They can be as long as strings in OCaml. Hence there's a limit of 16 MBytes on 32 bit architectures. It's (generally) advisable to use a 64 bit machine, and bitstrings are effectively unlimited on 64 bit. Sub-bitstrings are implemented efficiently, without copying. Bitstring matching complexity depends on the number of fields you want to match, not (at least, not obviously that I can see) on the size of fields or the size of the bitstring. If you write a bitmatch that matches a really massive number of fields [thousands?], then you'll probably run into problems with the OCaml compiler, since the bitstring macros can generate a great deal of code behind the scenes. It is a lot more efficient if the fields are aligned and the offset of each field is known at compile time. However it still works, inefficiently, even if they are not. I use bitstring a lot to parse files. However I don't usually load up the whole file into a single bitstring, but instead seek + read parts of the file. But that's just for programming convenience; it should be possible to bitmatch over subbitstrings of a whole file if you find that easier. Rich. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Caml-list] ANNOUNCE: ocaml-bitstring 2.0.4 2013-05-17 16:15 ` Richard W.M. Jones @ 2013-05-17 16:21 ` Richard W.M. Jones 0 siblings, 0 replies; 4+ messages in thread From: Richard W.M. Jones @ 2013-05-17 16:21 UTC (permalink / raw) To: caml-list On Fri, May 17, 2013 at 05:15:59PM +0100, Richard W.M. Jones wrote: > On Wed, May 15, 2013 at 10:06:40AM +0900, Francois Berenger wrote: > > I mean, the bitstring can be huge, like millions of bits? > > They can be as long as strings in OCaml. Hence there's a limit of 16 > MBytes on 32 bit architectures. It's (generally) advisable to use a > 64 bit machine, and bitstrings are effectively unlimited on 64 bit. > > Sub-bitstrings are implemented efficiently, without copying. To be plainer, this is the definition of a bitstring: (* A bitstring is simply the data itself (as a string), and the * bitoffset and the bitlength within the string. Note offset/length * are counted in bits, not bytes. *) type bitstring = string * int * int and this is how a subbitstring is made: let subbitstring (data, off, len) off' len' = let off = off + off' in if off' < 0 || len' < 0 || off' > len - len' then invalid_arg "subbitstring"; (data, off, len') Rich. -- Richard Jones Red Hat ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-05-17 16:21 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2013-05-14 16:45 [Caml-list] ANNOUNCE: ocaml-bitstring 2.0.4 Richard W.M. Jones 2013-05-15 17:38 ` Florent Monnier [not found] ` <5192DFA0.2080706@riken.jp> 2013-05-17 16:15 ` Richard W.M. Jones 2013-05-17 16:21 ` Richard W.M. Jones
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox