Persistent Scripting

Persistent scripting brings the benefits of persistent memory programming to high-level interpreted languages. More importantly, it brings the convenience and programmer productivity of scripting to persistent memory programming. We have integrated a novel generic persistent memory allocator into a popular scripting language interpreter, which now exposes a simple and intuitive persistence interface: A flag notifies the interpreter that a script’s variables reside in a persistent heap in a specified file. The interpreter begins script execution with all variables in the persistent heap ready for immediate use. New variables defined by the running script are allocated on the persistent heap and are thus available to subsequent executions. Scripts themselves are unmodified and persistent heaps may be shared freely between unrelated scripts. Experiments show that our persistent gawk prototype offers good performance while simplifying scripts, and we identify opportunities to reduce interpreter overheads.


    1. ACM Queue
      Persistent Memory Allocation
      Kelly, Terence, Tan, Zi Fan, Li, Jianan, and Volos, Haris
      ACM Queue magazine 2022
      1. NVMW
        Persistent Scripting
        Tan, Zi Fan, Li, Jianan, Volos, Haris, and Kelly, Terence
        In NVMW ’22: 13th Annual Non-Volatile Memories Workshop 2022


      Github (ucy-coast/pmgawk)

      $ git clone


      pmgawk-0.1.0.tar.gz (May 2, 2022)