Skip to content

cmark 0.31.1

Latest
Compare
Choose a tag to compare
@jgm jgm released this 03 Aug 15:37
· 13 commits to master since this release

[0.31.1]

  • Flag root node as open in cmark_parser_new_with_mem_into_root (#532).

  • Remove source, add search to list of block tags
    (a spec 0.31 change we forgot in last release).

  • Accept lowercase inline HTML declarations (Michael Howell).

  • Remove unused functions (Nick Wellnhofer).

  • utf8:

    • Fix encoding of U+FFFE and U+FFFF (#548, Nick Wellnhofer).
    • Rework case folding (Nick Wellnhofer). Using a table and binary
      search instead of a generated switch statement significantly
      reduces the size of the compiled code.
  • houdini:

    • Rename houdini_escape_html0 -> houdini_escape_html (#536).
    • Rework HTML entity table (Nick Wellnhofer).
      The new layout saves about 20 KB and removes 50 KB of relocation
      entries from the shared library, also speeding up loading.
  • cmake:

    • Tell cmake to set rpath so the installed cmark can find
      libcmark.so (Michael Witten).
    • Remove unnecessary enabling of target property: MACOSX_RPATH
      (Michael Witten).
    • Fix build type checks (Nick Wellnhofer). Make the libFuzzer
      target use the Asan build type again.
  • Makefile:

    • Fix libFuzzer target (Nick Wellnhofer).
    • Use ctest and --output-on-failure in test target.
    • make debug should build a shared library (Nick Wellnhofer).
      The full test suite is only available to a shared library build.
  • wrappers:

    • Fix memory leak in Ruby wrapper (Nick Wellnhofer).
      Free the string returned from cmark_markdown_to_html.
      Fix cmark_markdown_to_html argument types.
    • Fix memory leak in Python wrapper (Nick Wellnhofer).
      Free the string returned from cmark_markdown_to_html.
      Fix cmark_markdown_to_html argument types.
    • Convert to and from UTF-8 under Python 2.
    • Add PHP wraper (Vinicius Dias).
  • ci:

    • Test with ASan and rework CI matrix (Nick Wellnhofer).
    • Remove the valgrind leakcheck test. This should be covered now
      by testing with LeakSanitizer on static builds, including tests
      like spectest_executable. The full test suite is only available
      to shared library builds which have to run without leak checks
      for now.
    • Separate cflags from cc (Nick Wellnhofer).
    • Make CMake matrix options work (Nick Wellnhofer).
      CMAKE_OPTIONS had no effect, leading to the shared library not being
      tested. Invoke cmake directly, so we don't have to deal with the mess
      in Makefile.
    • Do debug build so that assertions will run (#532).
    • Use -gdwarf-4 with clang for compatibility with valgrind (#532).
  • test:

    • Fix memory leaks in cmark.py (Nick Wellnhofer).
      Free results of libcmark API function calls.
    • Fix memory leaks in api_test (Nick Wellnhofer).
    • Simplify test execution environment handling (Saleem Abdulrasool).
      Use generator expressions to compute the new path and avoid
      translations. This reduces complexity in the build and allows for a
      different build layout.
  • fuzz: Test more parser entry points (Nick Wellnhofer).

  • Remove superfluous definitions from scanners.re.

  • re2c: Disable UTF-8 (Nick Wellnhofer). The regexes don't require UTF-8
    features and work in ASCII mode as well. Disabling UTF-8 reduces the
    size of the code generated by re2c.