Edit

kc3-lang/brotli/research/BUILD.libdivsufsort

Branch :

  • Show log

    Commit

  • Author : Eugene Kliuchnikov
    Date : 2018-02-26 09:04:36
    Hash : 35e69fc7
    Message : New feature: "Large Window Brotli" (#640) * New feature: "Large Window Brotli" By setting special encoder/decoder flag it is now possible to extend LZ-window up to 30 bits; though produced stream will not be RFC7932 compliant. Added new dictionary generator - "DSH". It combines speed of "Sieve" and quality of "DM". Plus utilities to prepare train corpora (remove unique strings). Improved compression ratio: now two sub-blocks could be stitched: the last copy command could be extended to span the next sub-block. Fixed compression ineffectiveness caused by floating numbers rounding and wrong cost heuristic. Other C changes: - combined / moved `context.h` to `common` - moved transforms to `common` - unified some aspects of code formatting - added an abstraction for encoder (static) dictionary - moved default allocator/deallocator functions to `common` brotli CLI: - window size is auto-adjusted if not specified explicitly Java: - added "eager" decoding both to JNI wrapper and pure decoder - huge speed-up of `DictionaryData` initialization * Add dictionaryless compressed dictionary * Fix `sources.lst` * Fix `sources.lst` and add a note that `libtool` is also required. * Update setup.py * Fix `EagerStreamTest` * Fix BUILD file * Add missing `libdivsufsort` dependency * Fix "unused parameter" warning.

  • research/BUILD.libdivsufsort
  • package(
        default_visibility = ["//visibility:public"],
    )
    
    cc_library(
        name = "libdivsufsort",
        srcs = [
            "lib/divsufsort.c",
            "lib/sssort.c",
            "lib/trsort.c",
            "lib/utils.c",
        ],
        hdrs = [
            "include/config.h",
            "include/divsufsort.h",
            "include/divsufsort_private.h",
        ],
        copts = [
            "-DHAVE_CONFIG_H=1",
        ],
        includes = ["include"],
    )
    
    commom_awk_replaces = (
        "gsub(/#cmakedefine/, \"#define\"); " +
        "gsub(/@DIVSUFSORT_EXPORT@/, \"\"); " +
        "gsub(/@DIVSUFSORT_IMPORT@/, \"\"); " +
        "gsub(/@INLINE@/, \"inline\"); " +
        "gsub(/@INCFILE@/, \"#include <inttypes.h>\"); " +
        "gsub(/@SAUCHAR_TYPE@/, \"uint8_t\"); " +
        "gsub(/@SAINT32_TYPE@/, \"int32_t\"); " +
        "gsub(/@SAINT_PRId@/, \"PRId32\"); "
    )
    
    genrule(
        name = "config_h",
        srcs = ["include/config.h.cmake"],
        outs = ["include/config.h"],
        cmd = ("awk '{ " +
               "gsub(/@HAVE_IO_H 1@/, \"HAVE_IO_H 0\"); " +
               commom_awk_replaces +
               "print; }' $(<) > $(@)"),
    )
    
    genrule(
        name = "divsufsort_h",
        srcs = ["include/divsufsort.h.cmake"],
        outs = ["include/divsufsort.h"],
        cmd = ("awk '{ " +
               "gsub(/@W64BIT@/, \"\"); " +
               "gsub(/@SAINDEX_TYPE@/, \"int32_t\"); " +
               "gsub(/@SAINDEX_PRId@/, \"PRId32\"); " +
               commom_awk_replaces +
               "print; }' $(<) > $(@)"),
    )