lambdacube-compiler v0.5 Release Notes

    • compiler
      • support local pattern matching functions
      • support recursive local definitions
      • more polymorph type for equality constraints (~) :: forall a . a -> a -> Type
      • tuples are representated as heterogeneous lists
      • support one-element tuple syntax: (( element ))
      • reduction: don't overnormalize (String -/-> [Char])
      • compiler optimization: names have Int identifiers
    • libraries/OpenGL API
      • use the advantage of heterogeneous lists (simplified and more complete type family instances)
      • needed to explicitly denote one-element attribute tuples
      • set programmable point size with ProgramPointSize
      • use lists instead of streams
      • rename
        • fetch_ --> fetch; fetchArrays_ --> fetchArrays
        • zeroComp --> zero; oneComp --> one
    • codegen
      • generate functions in shaders (previously functions were inlined)
      • normalized variable names in the generated pipeline
      • optimization: remove duplicate shader programs
      • pretty printed shader programs
      • include compiler version in the generated pipeline as a string info field
    • ✅ testenv
      • performance benchmarks (time and memory consumption)
    • other
      • parsec dependency changed to megaparsec
      • registered on stackage too (next to HackageDB)