Revision history for Markdown-Simple

0.22    2026-08-14
        - Fixed a build failure on compilers older than GCC 4.3
        - The SSE2 backend is no longer selected on x86_64 CPUs without
          SSSE3. It shuffles with pshufb, which is SSSE3, but the
          dispatcher tested only the SSE2 bit, so on a pre-SSSE3 x86_64
          (K8, Prescott) the first classified chunk was an illegal
          instruction. Those CPUs now get the scalar backend, which is
          what the code always claimed happened.
        - AVX2 selection now also requires OSXSAVE, an XCR0 that says
          the YMM state is saved across a context switch, and the BMI2
          the backend's target attribute lets the compiler emit. An
          AVX2-capable CPU under a kernel that never enabled XSAVE was
          running vector code with a silently truncated register.
        - No more "'hot' attribute directive ignored" warnings on GCC
          4.2, which predates both attributes.

0.21    2026-08-12
        - Fix _abi_ptr on platforms that map the shared object at a high
          address.
        - Fix loading on perl 5.10.0: the ABI selftest used mPUSHs, which
          only arrived after 5.10.0, so the .so failed to load there with
          "undefined symbol: mPUSHs". Add an #ifndef shim; every use was
          already EXTEND-guarded, so the expansion is exact.

0.20    2026-08-07
        - Add heading_ids => 1: headings get a GitHub-style anchor, as
          <h2 id="the-slug">. 
        - Add render_with_toc, returning ($html, \@headings) where each
          heading is { level, text, id } in document order, carrying the
          ids actually emitted so a table of contents can link straight
          into the document. Implies heading_ids for that render.
        - Add mds_render_html_to_sv_toc as the widest C entry point; the
          two existing ones are now wrappers passing NULL.
        - Add a shared C ABI, include/mds_abi.h
        - Add mds_buf_insert, and src/mds_slug.h.
        - Add t/53-heading-ids.t, t/54-toc.t, t/55-abi.t.

0.19    2026-08-07
        - Fix a memory leak on every render.
        - Fix a second leak in the block scanner.
        - Add t/56-render-leak.t

0.17    2026-07-12
        - Add highlight => 1 render option: fenced code blocks with a
          language tag are syntax-highlighted via Eshu's eshu_hl.h pass,
          wrapping tokens in <span class="esh-*"> elements.

0.16    2026-07-03
        - No changes recorded.

0.15    2026-06-22
        - Fix "unsupported TLS program header" load failure on OpenBSD.
        - Fix more C89 build failures 
        - Fix LTO probe to detect old-clang.

0.14    2026-06-05
        - Fix C89 issues

0.13    2026-05-30
        - Fix build failure on perls built without MULTIPLICITY /
          PERL_IMPLICIT_CONTEXT 
        - Fix "redefinition of 's_scalar'"

0.12    2026-05-27
        - SIMD acceleration: SSE2/SSSE3 on x86_64, AVX2 on capable hosts,
          NEON on aarch64, with scalar fallback dispatched at runtime via
          CPUID / hwcap. Refactored Makefile.PL to probe headers with
          Devel::CheckLib before enabling each backend.

0.11    2025-06-22
        - Adds a strip_markdown function

0.10    2025-06-21
        - prompt engineer the fix to allow bold text to come the line after
          lists while using '*'

0.09    2025-06-21
        - prompt engineer support for _ and __ for italic and bold.

0.08    2025-06-21
        - prompt engineer support for nested components in lists and tables.

0.07    2025-06-20
        - prompt engineer utf8 support - it's a bit of a hack!

0.06    2025-06-19
        - Adds preprocessing by default which replaces \r\n with \n

0.01    2025-06-18
        First version, released on an unsuspecting world.
