Jamet, Arthur, Vollmer, Michael (2025) Type-Safe and Portable Support for Packed Data. In: 39th European Conference on Object-Oriented Programming (ECOOP 2025). Leibniz International Proceedings in Informatics (LIPIcs) , 333. 38:1-38:19. Schloss Dagstuhl – Leibniz-Zentrum für Informatik ISBN 978-3-95977-373-7. (doi:10.4230/LIPIcs.ECOOP.2025.38) (KAR id:110455)
|
PDF
Publisher pdf
Language: English
This work is licensed under a Creative Commons Attribution 4.0 International License.
|
|
|
Download this file (PDF/745kB) |
Preview |
| Request a format suitable for use with assistive technology e.g. a screenreader | |
| Official URL: https://doi.org/10.4230/LIPIcs.ECOOP.2025.38 |
|
Abstract
When components of a system exchange data, they need to serialise the data so that it can be sent over the network. Then, the recipient has to deserialise the data in order to be able to process it. These steps take time and have an impact on the overall system’s performance.
A solution to this is to use packed data, which has a unified representation between the memory and the network, removing the need for any marshalling steps. Additionally, using this data representation can improve the program’s performance thanks to the data locality enabled by the compact representation of the data in memory. Unfortunately, no mainstream programming languages support packed data, whether it’s out-of-the-box or through a compiler extension.
We present packed-data, a Haskell library that allows for type safe building and reading of packed data in a functional style. The library does not rely on compiler modifications, making it portable, and leverages meta-programming to allow programmers to pack their own data types effortlessly.
We evaluate the usability and performance of the library, and conclude that it allows traversing packed data up to 60% faster than unpacked data. We also reflect on how to enhance the performance of library-based support for packed data.
Our implementation approach is general and can easily be used with any programming languages that support higher-kinded types.
| Item Type: | Conference or workshop item (Proceeding) |
|---|---|
| DOI/Identification number: | 10.4230/LIPIcs.ECOOP.2025.38 |
| Subjects: | Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming, |
| Institutional Unit: | Schools > School of Computing |
| Former Institutional Unit: |
There are no former institutional units.
|
| Funders: | University of Kent (https://ror.org/00xkeyj56) |
| Depositing User: | Michael Vollmer |
| Date Deposited: | 30 Jun 2025 13:18 UTC |
| Last Modified: | 22 Jul 2025 09:23 UTC |
| Resource URI: | https://kar.kent.ac.uk/id/eprint/110455 (The current URI for this page, for reference purposes) |
- Link to SensusAccess
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):

https://orcid.org/0009-0005-5230-0667
Altmetric
Altmetric