{
    "archive_path": "archive/1789725936.615325",
    "base_url": "github.com/jemalloc/jemalloc/releases/tag/5.4.0",
    "basename": "5.4.0",
    "bookmarked_date": "2026-09-18 10:05",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/github.com/jemalloc/jemalloc/releases/tag/5.4.0",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=github.com",
        "headers_path": "headers.json",
        "htmltotext_path": "htmltotext.txt",
        "index_path": "index.html",
        "media_path": "media/",
        "mercury_path": "mercury/content.html",
        "pdf_path": "output.pdf",
        "readability_path": "readability/content.html",
        "screenshot_path": "screenshot.png",
        "singlefile_path": "singlefile.html",
        "warc_path": "warc/",
        "wget_path": "github.com/jemalloc/jemalloc/releases/tag/5.4.0.html"
    },
    "domain": "github.com",
    "extension": "0",
    "hash": "J8D4ESNZ93ZEX3GSQFZX",
    "history": {
        "archive_org": [],
        "dom": [],
        "favicon": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--output",
                    "favicon.ico",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://www.google.com/s2/favicons?domain=github.com"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-09-18T10:08:06.207612+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1789725936.615325",
                "schema": "ArchiveResult",
                "start_ts": "2026-09-18T10:08:05.677114+00:00",
                "status": "succeeded"
            }
        ],
        "git": [],
        "headers": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--head",
                    "--max-time",
                    "120",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://github.com/jemalloc/jemalloc/releases/tag/5.4.0"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-09-18T10:08:06.891918+00:00",
                "index_texts": null,
                "output": "headers.json",
                "pwd": "/data/archive/1789725936.615325",
                "schema": "ArchiveResult",
                "start_ts": "2026-09-18T10:08:06.217485+00:00",
                "status": "succeeded"
            }
        ],
        "htmltotext": [],
        "media": [],
        "mercury": [
            {
                "cmd": [
                    "/app/node_modules/@postlight/parser/cli.js",
                    "https://github.com/jemalloc/jemalloc/releases/tag/5.4.0"
                ],
                "cmd_version": "1.0.0",
                "end_ts": "2026-09-18T10:08:19.098713+00:00",
                "index_texts": null,
                "output": "mercury",
                "pwd": "/data/archive/1789725936.615325",
                "schema": "ArchiveResult",
                "start_ts": "2026-09-18T10:08:15.173451+00:00",
                "status": "succeeded"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/app/node_modules/readability-extractor/readability-extractor",
                    "/tmp/tmpesgnn4t3",
                    "https://github.com/jemalloc/jemalloc/releases/tag/5.4.0"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2026-09-18T10:08:15.161386+00:00",
                "index_texts": [
                    "This release contains over 160 commits, focusing on the technical debts\ncleaning including refactorings, bug fixes, test coverage improvement, and\noption cleanups.  The release also includes portability improvements per\nupstream issues report.\nNew features:\n\nAdd EXTENT_ALLOC_FLAG_PINNED so custom extent-allocation hooks can\nmark non-reclaimable mappings, such as HugeTLB pages, for preferential\nreuse outside the decay and purge pipeline.  Add the mallctl interfaces\nstats.pinned, stats.arenas.<i>.pinned,\nstats.arenas.<i>.extents.<j>.npinned,\nstats.arenas.<i>.extents.<j>.pinned_bytes, and\nstats.arenas.<i>.mutexes.extents_pinned.{counter} to report\npinned-memory usage and mutex statistics.  (@binliu19: be2de8c)\nAllow resuming per-CPU arena selection via thread.arena.\n(@Algunenano: 68c35f6)\nBetter align the contents of human-readable and JSON malloc statistics.\n(@spredolac: 68fe1be, 30b1a41, 04aad97)\nReplace the runtime experimental_infallible_new option with the\ncompile-time --enable-cxx-infallible-new option, enabling\ncompiler-level optimizations and optimization in move constructors,\nand fix the new(std::nothrow) contract (@spredolac: 160ab9d, fe33667)\n\nIncompatible changes:\n\nAdapt tcache fill and retention targets per bin to demand observed\nbetween GC events, replacing the fixed refill/flush policy.  Remove\nseven legacy non-experimental controls: lg_tcache_nslots_mul,\ntcache_nslots_small_min, tcache_nslots_small_max,\ntcache_nslots_large, tcache_gc_delay_bytes,\nlg_tcache_flush_small_div, and lg_tcache_flush_large_div.\nCorresponding malloc_conf settings are silently ignored, matching\nopt.* mallctls return ENOENT, and tcache_ncached_max remains\nsupported.  (@spredolac: d13fe91)\n\nBug fixes:\n\nPreserve errno across free, free_sized, and free_aligned_sized,\nand across process_madvise-based page purging.  (@spredolac: 3a77966,\n86f0582)\nFix numeric overflow checks in size classes.  (@spredolac: 6b24522)\nAccept NULL in free_sized() and free_aligned_sized() (C23\ncorrectness).  (@bigbruno: 7ce8b91)\nFix TSD lifecycle edge cases by 1) initializing thread-cache bins before\nmarking the cache enabled, preventing reentrant bootstrap allocations\nfrom using uninitialized state, and 2) avoiding TSD recreation for late\ndeallocations after thread teardown on generic-TSD platforms.\n(@fzakaria: 54f22c8, @spredolac: fb5499a)\nUse O_CLOEXEC when opening the THP sysfs file in init_thp_state.\n(@ibookstein: d070554)\nFix duplicate opt.stats_print and opt.stats_print_opts fields in\nmalloc_stats_print output.  (@spredolac: dfe3a2e)\nFix a potential deadlock during arena_reset.  (@guangli-dai: 6957341)\nFix a prof-sampling / guard-page interaction bug in the SAN.  (@gctony:\ne36a0fa)\n\nOptimizations and refactors:\n\nModularize jemalloc's front end by extracting arena management,\ninitialization, fork orchestration, and allocation dispatch from\njemalloc.c; untangle tcache/arena ownership; and consolidate the\ninternal header graph to eliminate circular dependencies.  (@spredolac:\nba1e2fe, 8874597, 9d75722, de9ad14, ...)\nSimplify ctl dispatch by refactoring arena helpers, internalizing an\nimplementation-only control, replacing control-flow macros with typed\nhelpers, and organizing ctl.c by subsystem.  (@spredolac: 9e14346,\n901365d, 4e903a0, 5bc8d6e)\nCap the base-block growth heuristic to avoid virtual-memory exhaustion\nunder rare racy conditions.  (@guangli-dai: 2f4db8c)\nMove background-thread lifecycle and state operations into the\nbackground-thread module, clarifying ownership independently of PAC/HPA\ncallers.  (@guangli-dai: f1f0792)\nSimplify the page-allocation boundary by replacing PAI vtable dispatch\nwith direct PAC/HPA calls, removing the obsolete pai_t/pai.h\nabstraction, and moving deferred-work and decay orchestration out of the\narena.  (@guangli-dai: 1dfa6f7, 8edd101, d410f43)\nRefactor statistics collection and rendering into separate\ngather/emission stages and descriptor-driven tables.  (@spredolac:\n184f304, 80c8fcb)\nIntroduce an OS abstraction layer and move platform-dependent\nfile/process I/O, time, synchronization, CPU, virtual-memory, atfork,\nerror-handling, profiling, thread-yield, and configuration-access\noperations out of allocator core code.  (@guangli-dai: c4158ac,\nc8e2e01, ...)\n\nPortability improvements:\n\nReplace the std::__throw_bad_alloc call with standard C++ (#2900).\n(@lexprfuncall: 1a15fe3)\nMake arena_s use a flexible array member (bin_t all_bins[]) for C99\nor newer.  (@grueninger: 300b58b)\nFix rdtscp detection with --with-lg-vaddr.  (@xinydev: e8a0d2b)\nFix malloc_getcpu on macOS to read the current CPU number correctly.\n(@Algunenano: 5aabbc8)\nUse CLOCK_MONOTONIC for background-thread sleep to prevent\nclock-rollback stalls, and detect monotonic-condvar support at configure\ntime.  (@antonio2368: ebacec3, 8361239)\nFix compilation warnings on macOS.  (@gctony: abb0a8a)\nFix thread-exit TSD cleanup on MinGW builds.  (@gctony: 1e92317)\nFix GCC 16 build warnings by removing -Wpedantic violations in macro\nand function syntax and explicitly NUL-terminating profiling thread-name\ncopies to resolve -Wstringop-truncation.  (@grueninger: 5acdcee,\nc22d929, @jasonangelov: 6a245e0)\nParse PID-namespace symlinks without glibc-dependent strtok/atol,\nand return identifiers as uint64_t.  (@guangli-dai: 278d90a)"
                ],
                "output": "readability",
                "pwd": "/data/archive/1789725936.615325",
                "schema": "ArchiveResult",
                "start_ts": "2026-09-18T10:08:12.977873+00:00",
                "status": "succeeded"
            }
        ],
        "screenshot": [],
        "singlefile": [],
        "title": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://github.com/jemalloc/jemalloc/releases/tag/5.4.0"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-09-18T10:08:12.968108+00:00",
                "index_texts": null,
                "output": "Release 5.4.0 \u00b7 jemalloc/jemalloc \u00b7 GitHub",
                "pwd": "/data/archive/1789725936.615325",
                "schema": "ArchiveResult",
                "start_ts": "2026-09-18T10:08:12.893612+00:00",
                "status": "succeeded"
            }
        ],
        "wget": [
            {
                "cmd": [
                    "wget",
                    "--no-verbose",
                    "--adjust-extension",
                    "--convert-links",
                    "--force-directories",
                    "--span-hosts",
                    "--no-parent",
                    "-e",
                    "robots=off",
                    "--reject=js,mjs,woff,woff2,ttf,otf,eot,mp4,m4v,mov,webm,ogv,mkv,avi,flv",
                    "--timeout=120",
                    "--restrict-file-names=windows",
                    "--page-requisites",
                    "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) wget/GNU Wget 1.21.3",
                    "--compression=auto",
                    "--timestamping",
                    "https://github.com/jemalloc/jemalloc/releases/tag/5.4.0"
                ],
                "cmd_version": "GNU Wget 1.21.3",
                "end_ts": "2026-09-18T10:08:12.883717+00:00",
                "index_texts": null,
                "output": "github.com/jemalloc/jemalloc/releases/tag/5.4.0.html",
                "pwd": "/data/archive/1789725936.615325",
                "schema": "ArchiveResult",
                "start_ts": "2026-09-18T10:08:06.902817+00:00",
                "status": "succeeded"
            }
        ]
    },
    "icons": null,
    "is_archived": true,
    "is_static": false,
    "latest": {
        "archive_org": null,
        "dom": null,
        "favicon": "favicon.ico",
        "git": null,
        "media": null,
        "pdf": null,
        "screenshot": null,
        "singlefile": null,
        "title": "Release 5.4.0 \u00b7 jemalloc/jemalloc \u00b7 GitHub",
        "warc": null,
        "wget": "github.com/jemalloc/jemalloc/releases/tag/5.4.0.html"
    },
    "link_dir": "/data/archive/1789725936.615325",
    "newest_archive_date": "2026-09-18T10:08:15.173451+00:00",
    "num_failures": 0,
    "num_outputs": 6,
    "oldest_archive_date": "2026-09-18T10:08:05.677114+00:00",
    "path": "/jemalloc/jemalloc/releases/tag/5.4.0",
    "schema": "Link",
    "scheme": "https",
    "snapshot_id": "e2a2cbd5-ef91-4854-ae97-8a01498e62ac",
    "sources": [
        "/data/sources/1789725936-import.txt"
    ],
    "tags": null,
    "tags_str": "",
    "timestamp": "1789725936.615325",
    "title": "Release 5.4.0 \u00b7 jemalloc/jemalloc \u00b7 GitHub",
    "updated": "2026-09-18T10:08:05.676574+00:00",
    "updated_date": "2026-09-18 10:08",
    "url": "https://github.com/jemalloc/jemalloc/releases/tag/5.4.0"
}