Runtime and Compiler Support for HAMTsResearch PaperVirtual
Tue 19 Oct 2021 16:15 - 16:40 at Zurich C - DLS Talks 2 Chair(s): Arjun Guha
Many functional languages—including Racket, Clojure, and
Scala—provide a persistent-map datatype with an implementation
based on Hash Array Mapped Tries (HAMTs). HAMTs enable efficient
functional lookup, insertion, and deletion operations with a small
memory footprint, especially when taking advantage of implementation
techniques that have been developed since the original HAMT
implementation. Racket's latest HAMT implementation is based on an
intermediate data structure, a stencil vector, that
supports an especially compact representation of HAMTs with
help from the compiler and memory manager. That is,
stencil vectors provide an abstraction to improve HAMT performance
without burdening the compiler with all of the
complexity and design choices of a HAMT implementation. Benchmark
measurements show that HAMTs in Racket have performance comparable to
other state-of-the-art implementations, while stencil-vector HAMTs are
more compact and run as fast as alternative representations
in Racket. Although we only report on Racket, our experience suggests
that a stencil-vector datatype in other dynamic-language
implementations might improve HAMT performance in those
implementations.
Tue 19 OctDisplayed time zone: Central Time (US & Canada) change
07:40 - 09:00 | |||
07:40 10mDay opening | Chair's Welcome and Most Notable Paper AwardVirtual DLS 2021 | ||
07:50 25mPaper | Union and Intersection Contracts Are Hard, ActuallyResearch PaperVirtual DLS 2021 DOI | ||
08:15 25mPaper | Runtime and Compiler Support for HAMTsResearch PaperVirtual DLS 2021 DOI |
15:40 - 17:00 | |||
15:40 10mDay opening | Chair's Welcome and Most Notable Paper AwardVirtual DLS 2021 | ||
15:50 25mPaper | Union and Intersection Contracts Are Hard, ActuallyResearch PaperVirtual DLS 2021 DOI | ||
16:15 25mPaper | Runtime and Compiler Support for HAMTsResearch PaperVirtual DLS 2021 DOI |