Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A possible static and exportable reverse binding of decompress #98

Merged
merged 1 commit into from
Mar 3, 2021

Conversation

dinosaure
Copy link
Member

According yallop/ocaml-ctypes#660, this is a way to produce a reverse binding of decompress to be usable by C sources.

@dinosaure
Copy link
Member Author

ctypes.0.18.0 is out, we are able to merge this PR but I would like to know if we are able to abstract Zl.Inf.decoder and Zl.Def.encoder and use them on the C side but I have no clue to do that.

@dinosaure dinosaure merged commit 8511786 into master Mar 3, 2021
dinosaure added a commit to dinosaure/opam-repository that referenced this pull request Mar 3, 2021
CHANGES:

- Add a little executable to benchmark inflation into the distribution (@dinosaure, mirage/decompress#93)
- Add instructions for running benchmark (@gs0510, mirage/decompress#94)
- Clarify the description (@XVilka, mirage/decompress#96)
- Improve the benchmark and outputs (@dinosaure, @gs0510, mirage/decompress#95)
- Avoid allocation of distance table (@Engil, @dinosaure, mirage/decompress#97)
- Swapping from arithmetic to logical bitshifts on `d.hold` (@clecat, mirage/decompress#99)
- Make the use of all `Higher.compress` arguments (@vect0r-vicall, mirage/decompress#103)
- Apply ocamlformat.0.16.0 (@dinosaure, mirage/decompress#105, mirage/decompress#107)
- Improve Lz77 algorithms (@dinosaure, mirage/decompress#108)
  **breaking changes** the deflation expects a new window: `De.Lz77.make_window`
  instead of `De.make_window` (which is twice larger to improve the compression
  algorithm)

  Depending on the level and your corpus, we did not observe performance
  regression on deflation (and mirage/decompress#97 improves a lot performances). An higher level
  is slower (but the compression ratio is better). We advise, by default, to use
  the level 6.

  Note that the user is able to make its own compression algorithm according to
  his corpus. An example of such implementation is available on the new
  `decompress.lz` libraries which fills a queue and compress the input.

  **breaking changes** decompress expects a level between 0 and 9 (inclusive)
  (instead of 0 and 3).
- Add tests about level compression (@dinosaure, mirage/decompress#109)
- Add level on GZip layer (@dinosaure, mirage/decompress#110)
- Provide a `ctypes` reverse binding (@dinosaure, mirage/decompress#98)
- Provide a binary `decompress.pipe` which can compress/uncompress with
  deflate, zlib or gzip format.
dinosaure added a commit to dinosaure/opam-repository that referenced this pull request Mar 3, 2021
CHANGES:

- Add a little executable to benchmark inflation into the distribution (@dinosaure, mirage/decompress#93)
- Add instructions for running benchmark (@gs0510, mirage/decompress#94)
- Clarify the description (@XVilka, mirage/decompress#96)
- Improve the benchmark and outputs (@dinosaure, @gs0510, mirage/decompress#95)
- Avoid allocation of distance table (@Engil, @dinosaure, mirage/decompress#97)
- Swapping from arithmetic to logical bitshifts on `d.hold` (@clecat, mirage/decompress#99)
- Make the use of all `Higher.compress` arguments (@vect0r-vicall, mirage/decompress#103)
- Apply ocamlformat.0.16.0 (@dinosaure, mirage/decompress#105, mirage/decompress#107)
- Improve Lz77 algorithms (@dinosaure, mirage/decompress#108)
  **breaking changes** the deflation expects a new window: `De.Lz77.make_window`
  instead of `De.make_window` (which is twice larger to improve the compression
  algorithm)

  Depending on the level and your corpus, we did not observe performance
  regression on deflation (and mirage/decompress#97 improves a lot performances). An higher level
  is slower (but the compression ratio is better). We advise, by default, to use
  the level 6.

  Note that the user is able to make its own compression algorithm according to
  his corpus. An example of such implementation is available on the new
  `decompress.lz` libraries which fills a queue and compress the input.

  **breaking changes** decompress expects a level between 0 and 9 (inclusive)
  (instead of 0 and 3).
- Add tests about level compression (@dinosaure, mirage/decompress#109)
- Add level on GZip layer (@dinosaure, mirage/decompress#110)
- Provide a `ctypes` reverse binding (@dinosaure, mirage/decompress#98)
- Provide a binary `decompress.pipe` which can compress/uncompress with
  deflate, zlib or gzip format.
dinosaure added a commit to dinosaure/opam-repository that referenced this pull request Mar 3, 2021
CHANGES:

- Add a little executable to benchmark inflation into the distribution (@dinosaure, mirage/decompress#93)
- Add instructions for running benchmark (@gs0510, mirage/decompress#94)
- Clarify the description (@XVilka, mirage/decompress#96)
- Improve the benchmark and outputs (@dinosaure, @gs0510, mirage/decompress#95)
- Avoid allocation of distance table (@Engil, @dinosaure, mirage/decompress#97)
- Swapping from arithmetic to logical bitshifts on `d.hold` (@clecat, mirage/decompress#99)
- Make the use of all `Higher.compress` arguments (@vect0r-vicall, mirage/decompress#103)
- Apply ocamlformat.0.16.0 (@dinosaure, mirage/decompress#105, mirage/decompress#107)
- Improve Lz77 algorithms (@dinosaure, mirage/decompress#108)
  **breaking changes** the deflation expects a new window: `De.Lz77.make_window`
  instead of `De.make_window` (which is twice larger to improve the compression
  algorithm)

  Depending on the level and your corpus, we did not observe performance
  regression on deflation (and mirage/decompress#97 improves a lot performances). An higher level
  is slower (but the compression ratio is better). We advise, by default, to use
  the level 6.

  Note that the user is able to make its own compression algorithm according to
  his corpus. An example of such implementation is available on the new
  `decompress.lz` libraries which fills a queue and compress the input.

  **breaking changes** decompress expects a level between 0 and 9 (inclusive)
  (instead of 0 and 3).
- Add tests about level compression (@dinosaure, mirage/decompress#109)
- Add level on GZip layer (@dinosaure, mirage/decompress#110)
- Provide a `ctypes` reverse binding (@dinosaure, mirage/decompress#98)
- Provide a binary `decompress.pipe` which can compress/uncompress with
  deflate, zlib or gzip format.
dinosaure added a commit to dinosaure/opam-repository that referenced this pull request Mar 3, 2021
CHANGES:

- Add a little executable to benchmark inflation into the distribution (@dinosaure, mirage/decompress#93)
- Add instructions for running benchmark (@gs0510, mirage/decompress#94)
- Clarify the description (@XVilka, mirage/decompress#96)
- Improve the benchmark and outputs (@dinosaure, @gs0510, mirage/decompress#95)
- Avoid allocation of distance table (@Engil, @dinosaure, mirage/decompress#97)
- Swapping from arithmetic to logical bitshifts on `d.hold` (@clecat, mirage/decompress#99)
- Make the use of all `Higher.compress` arguments (@vect0r-vicall, mirage/decompress#103)
- Apply ocamlformat.0.16.0 (@dinosaure, mirage/decompress#105, mirage/decompress#107)
- Improve Lz77 algorithms (@dinosaure, mirage/decompress#108)
  **breaking changes** the deflation expects a new window: `De.Lz77.make_window`
  instead of `De.make_window` (which is twice larger to improve the compression
  algorithm)

  Depending on the level and your corpus, we did not observe performance
  regression on deflation (and mirage/decompress#97 improves a lot performances). An higher level
  is slower (but the compression ratio is better). We advise, by default, to use
  the level 6.

  Note that the user is able to make its own compression algorithm according to
  his corpus. An example of such implementation is available on the new
  `decompress.lz` libraries which fills a queue and compress the input.

  **breaking changes** decompress expects a level between 0 and 9 (inclusive)
  (instead of 0 and 3).
- Add tests about level compression (@dinosaure, mirage/decompress#109)
- Add level on GZip layer (@dinosaure, mirage/decompress#110)
- Provide a `ctypes` reverse binding (@dinosaure, mirage/decompress#98)
- Provide a binary `decompress.pipe` which can compress/uncompress with
  deflate, zlib or gzip format.
@dinosaure dinosaure deleted the ctypes branch April 11, 2022 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant