package iter

  1. Overview
  2. Docs
Simple abstraction over `iter` functions, intended to iterate efficiently on collections while performing some transformations

Install

Dune Dependency

Authors

Maintainers

Sources

v1.4.tar.gz
md5=24b1ea680cd2f8d3ee664ea21837e58b
sha512=8bcb6ddaab69aa18a8489a2287313227d59062fd554f70373a10bdbe1d1eabe4b199860223709fe7baa917d0d47aedeed895ed6d610a989ca540e00fe9cd135b

doc/src/iter.bigarray/IterBigarray.ml.html

Source file IterBigarray.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

(* This file is free software, part of iter. See file "license" for more details. *)

(** {1 Interface and Helpers for bigarrays} *)

open! IterBigarrayShims_

let of_bigarray b yield =
  let len = Bigarray.Array1.dim b in
  for i=0 to len-1 do
    yield b.{i}
  done

let mmap filename =
  fun yield ->
    let fd = Unix.openfile filename [Unix.O_RDONLY] 0 in
    let len = Unix.lseek fd 0 Unix.SEEK_END in
    let _ = Unix.lseek fd 0 Unix.SEEK_SET in
    let b = bigarray_map_file fd Bigarray.char Bigarray.c_layout false len in
    try
      of_bigarray b yield;
      Unix.close fd
    with e ->
      Unix.close fd;
      raise e
[@@ocaml.warning "-3"]
OCaml

Innovation. Community. Security.