How can Haskell programmers tolerate Space Leaks?

This page summarizes the projects mentioned and recommended in the original post on /r/haskell

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • paths-in-cube

    Enumerate the paths that visit every node in a discrete cube.

  • I have been trying to answer it for myself practically on a toy program that needs a ton of memorization. What I found is that optimizing space behaviour is hell. A value resides in memory while it is in scope, but when and for how long exactly is it in scope? Depends on inlining and specialization. And these things are fragile. Once a computation is evaluated to a big value, there is no way to forcibly «forget» it so that it turns back into a small computation, which makes some seemingly simple things practically impossible. This stuff is not explained anywhere either.

  • bytestring

    An efficient compact, immutable byte string type (both strict and lazy) suitable for binary or 8-bit character data.

  • Standard streaming libraries. They are being written by people that make the effort to understand performance and I have a hope that they make sure their streams run in linear space under any optimizations. It is curious and unsettling that we have standard lazy text and byte streams at the same time — and the default lazy lists, of course. I have been doing some work on byte streams and what I found out is that there is no way to check that your folds are actually space constant even if the value in question is a primitive, like say a byte — thunks may explode and then collapse over the run time of a single computation, defying any effort at inspection.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • unboxed

    experimenting with unlifted classes via backpack

  • With Lev as defined here.

  • gotta-go-fast

    Discontinued Abandoned: https://github.com/haskellfoundation/tech-proposals/pull/9 (by soupi)

  • I hope the proposed performance tuning book (the source is on github) will make it easier to learn this stuff.

  • traced

    Maintenance for Lennart Augustsson's 'traced' package.

  • One time I actually gathered my resolve and asked him to describe a package. Nothing happened.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts