cabal-version: >=1.10 name: gibbon version: 0.1 synopsis: A compiler for operating on serialized trees. description: Gibbon is an experimental compiler that transforms high-level functional programs to operate on serialized data. . Typically, programs that process tree-like data represent trees using pointer-based data structures in memory (one heap object per-leaf and per-node) because such a layout is convenient to manipulate in a high-level programming language. This is also generally distinct from the representation of the data in serialized form on disk, which means that a program must perform some sort or marshaling when working with serialized data. Gibbon unifies the in-memory and serialized formats, transforming recursive functions to operate directly on serialized data. . Additionally, while the pointer-based structure is efficient for random access and shape-changing modifications, it can be inefficient for traversals that process most or all of a tree in bulk. The Gibbon project aims to explore optimizations of recursive tree transforms by changing how trees are stored in memory. category: Compiler license: BSD3 license-file: LICENSE author: Ryan Newton maintainer: rrnewton@gmail.com homepage: https://iu-parfunc.github.io/gibbon/ bug-reports: https://github.com/iu-parfunc/gibbon/issues copyright: (C) 2016-Present Ryan Newton build-type: Simple extra-source-files: CHANGELOG.md source-repository head type: git location: https://github.com/iu-parfunc/gibbon/ executable gibbon main-is: Main.hs build-depends: base >= 4 && < 5 hs-source-dirs: src default-language: Haskell2010