OCamlPro/opam-repository — pull request #934 by ysulsky (2013-08-02 20:44:31+00:00)
Title: core 109.36.00-rc1

## Pa_ounit

- Simplified so that it does not generate unnecessary top-level bindings.

It had been hiding quite a few `unused import` warnings.

## Core_kernel

- Made `Hashtbl.Poly.hash` equal `Caml.Hashtbl.hash`, and changed changed `String.hash` and `Float.hash` to match OCaml's hash function.

Previously, `Core.Poly.hash` had been defined as:

```ocaml
let hash x = hash_param 10 100 x
```

This fell out of sync with OCaml's hash function, and was providing worse hash values.

- Fixed `Obj_array.singleton` to never create a float array.

Also made it clearer that `Obj_array.copy` could never create a float
array.

- Changed `Pool.create` to allow zero-length pools.

Previously, `Pool.create ~capacity:0` had raised, which made it easy
to write code that blows up on edge cases for no apparent reason. For
example, `Heap.copy` was written in a way that copying an empty heap
would blow up (regardless of its capacity), and `Heap.of_array` would
also blow up on an empty array.

- Added `String.split_lines`.

```ocaml
(** [split_lines t] returns the list of lines that comprise [t]. The lines do
not include the trailing ["\n"] or ["\r\n"]. *)
val split_lines : t -> t list
```

## Core_extended

- In `Sexp` module, added ability to expand and compress bash-like brace wildcards.

## Textutils

- In `Ascii_table` module, added support for displaying table using ASCII characters instead of Unicode.

This is motivated by the need to use `Core_bench` in contexts where
the extended ASCII character set is not suitable for displaying
tables.

The default style is the following:

```
┌─────────────────┬───────────┬──────────┐
│ Name │ Time (ns) │ % of max │
├─────────────────┼───────────┼──────────┤
│ quick_stat │ 93.11 │ 100.00 │
│ counters │ 33.24 │ 35.70 │
│ allocated_bytes │ 37.03 │ 39.77 │
└─────────────────┴───────────┴──────────┘
```

The new style is as follows:

```
$ ./test_bench.exe gc -q 0.5 -ascii
Estimated testing time 1.5s (change using -quota SECS).

Name Time (ns) % of max
----------------- ----------- ----------
quick_stat 93.17 100.00
counters 34.56 37.09
allocated_bytes 37.06 39.78
```

## Async_unix

- Added `Process.run_lines`, which runs a process and returns stdout as a list of strings.