Skip to content

Remove makeup_syntect#154

Merged
ericmj merged 1 commit into
mainfrom
remove-makeup-syntect
Jun 4, 2026
Merged

Remove makeup_syntect#154
ericmj merged 1 commit into
mainfrom
remove-makeup-syntect

Conversation

@ericmj

@ericmj ericmj commented Jun 4, 2026

Copy link
Copy Markdown
Member

makeup_syntect highlights via a Rust NIF that cannot be interrupted by the surrounding Task timeout. A single crafted file (e.g. deeply-nested JSON) made the NIF allocate gigabytes before returning, OOM-ing the pod, with neither the file-size cap nor the timeout able to bound it.

The remaining makeup lexers (Elixir, Erlang, EEx, Gleam) are pure Elixir and run as ordinary BEAM processes, so the existing highlight timeout can actually kill them. Files in formats only syntect covered now render as plain text.

makeup_syntect highlights via a Rust NIF that cannot be interrupted by the
surrounding Task timeout. A single crafted file (e.g. deeply-nested JSON) made
the NIF allocate gigabytes before returning, OOM-ing the pod, with neither the
file-size cap nor the timeout able to bound it.

The remaining makeup lexers (Elixir, Erlang, EEx, Gleam) are pure Elixir and
run as ordinary BEAM processes, so the existing highlight timeout can actually
kill them. Files in formats only syntect covered now render as plain text.
@ericmj ericmj force-pushed the remove-makeup-syntect branch from f18673f to d974806 Compare June 4, 2026 21:15
@ericmj ericmj merged commit cfe1535 into main Jun 4, 2026
12 checks passed
@ericmj ericmj deleted the remove-makeup-syntect branch June 4, 2026 21:22
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