Skip to content

Releases: yomimono/chamelon

0.2.1

09 Oct 09:11

Choose a tag to compare

CHANGES:

  • bugfix: use dd instead of fallocate, since fallocate is not available on many platforms (@yomimono)
  • tests: don't run last_modified tests, which are are flaky on 32-bit platforms and in general Need Work (@yomimono)
  • maintenance: remove mirage-clock dependency (@hannesm)

0.2.0

03 Oct 16:17

Choose a tag to compare

CHANGES:

  • improvement: use the new-to-chamelon Float.log2 for skip-list math (@yomimono)
  • improvement: actually implement Kv.allocate and Kv.rename (@yomimono)
  • improvement: chamelon.exe now provides chamelon parse, which outputs a block-by-block parse attempt to stderr. Many types now also have pps to support this. This tool does not distinguish between metadata and data blocks, which makes it primarily useful for debugging rather than recovery. (@yomimono)
  • bugfix: fix many places where tags weren't checked for the 'tag deleted' field (@yomimono)
  • bugfix: fix potential data loss bug when keys are overwritten and the new entry is the first in a newly-split block (reported by independently by @palainp and then by @Armael and @gasche with tests and a great writeup, fix by @yomimono)
  • bugfix: fix incorrect No_space when re-mounting a filesystem where many blocks are already used, but nowhere near all of them (reported by @reynir with tests, fix by @yomimono)
  • bugfix: fix confusion about superblock entry bearing the name littlefs (@yomimono)
  • bugfix: check block revision counts with sequence math, as in the spec (@yomimono)
  • maintenance: break dependency cycle between Tag and Entry (@emillon)
  • maintenance: adapt to mirage-kv 6.0.1 type signatures (@hannesm, @palainp)
  • maintenance: various opam updates for the modern age (@hannesm)
  • tests: add a lot of tests (@reynir, @gasche, @Armael, @yomimono)
  • miscellaneous: break some logic into fs_internal.ml, a precursor to a more general reorganization to get error-prone low-level operations out of kv and fs (@yomimono)

0.1.2

04 Aug 16:30

Choose a tag to compare

CHANGES:

  • bugfix: get_partial will now return short reads if called with (offset + length) > the file length, instead of an error. (reported by @palainp, fix by @yomimono)

0.1.1

29 Jul 02:40

Choose a tag to compare

CHANGES:

  • bugfix: remove dependency cycle between chamelon and chamelon-unix
  • bugfix: tag src/runtest with (package chamelon-unix)

0.1.0

28 Jul 19:53

Choose a tag to compare

CHANGES:

  • new features: expose and implement Kv.size t key and Kv.get_partial t key ~offset ~length.
  • bugfix: large files could be misread under certain circumstances because the final block index wasn't correctly calculated. remove bitwise module and the Base popcount it referenced, and instead calculate the block index with a recursive function.
  • bugfix: detect unwriteable blocks instead of endlessly splitting to try to accommodate them.
  • bugfix: keep track of allocated but not-yet-written blocks, and don't hand them out twice.
  • bugfix: check the maximum name length against the block size when mounting a filesystem.

0.0.10

12 Jul 01:14

Choose a tag to compare

CHANGES:

  • detect simple cycles in the metadata tree at connect time (@yomimono)
  • check block size in the superblock at connect time, and fail if it doesn't match block device (@yomimono)

0.0.9.1

23 Jun 18:54

Choose a tag to compare

CHANGES:

  • fix 32-bit compilation, for real this time (@yomimono)

  • be consistent in the use of Logs vs Log module (@palainp)

  • implement a lookahead block allocator more similar to the littlefs one (@yomimono)

  • bring back fuzz tests and improve them (@yomimono)

  • test for correct block index detection in CTZ files, and fix an edge case (@yomimono)

0.0.8

29 Apr 19:12

Choose a tag to compare

CHANGES:

  • use the sector_size given by the block device via its info (@dinosaure)

v0.0.7

03 Mar 04:38

Choose a tag to compare

v0.0.7 (2022-03-04)

  • initial opam release