# Haskell Foundation May Update

**URL:** <https://discourse.haskell.org/t/haskell-foundation-may-update/2567>\
**Category:** Haskell Foundation\
**Created:** [May 28, 2021, 9:33pm UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567 "2021-05-28T21:33:32Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![myShoggoth](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/myshoggoth/32/1877_2.png) [@myShoggoth](https://discourse.haskell.org/u/myShoggoth)\
**Post date:** [May 28, 2021, 9:33pm UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/1 "2021-05-28T21:33:33Z")

</div>

# Haskell Foundation May Update

# Technical Agenda

## Text-Utf8 Proposal

The [proposal](https://github.com/haskellfoundation/tech-proposals/blob/main/proposals/002-text-utf-default.md) was accepted! [Bodigrim](mailto:andrew.lelechenko@gmail.com) and Emily Pillmore did a fantastic job specifying the work and responding to enthusiastic feedback. Thank you to all the reviewers and commenters for helping, and we look forward to progress updates.

## Unified Installer

We are excited to announce that Chris Dornan has volunteered to take the project lead role in conjunction with Julian Ospald (the author of ghcup), and will be working with members of the community to create a proposal.

## GHC Support

We have officially signed a contract with [Well-Typed](https://well-typed.com/) to continue support of GHC development. HF has taken over this relationship from Microsoft Research, and [GitHub](https://github.com/) stepped up with a sizable earmarked donation. Thank you to GitHub, and thank you to Well-Typed.

# Affiliations and Alliances

## Haskell Love

We \<3 [Haskell Love](https://haskell.love/), and are so happy to affiliate with them! Their next conference is on September 10th, so show them some Love. Maybe you’d like to submit a talk?

## ZuriHac

Do you love hacking in Haskell? [ZuriHac 2021](https://zfoh.ch/zurihac2021/) will be a virtual event June 18th - June 20th, and our own CTO Emily Pillmore will be speaking, along with John Hughes, Veronika Romashkina, Sandy Maguire, and Ollie Charles. We’re excited, and so happy to affiliate with such a great event.

## IHP

The [Integrated Haskell Platform](https://github.com/digitallyinduced/ihp) open source project has affiliated! We are excited to have this Haskell web framework aboard, and the new Haskellers it is bringing into the community.

# Community

## Website Refresh

The new [Haskell Foundation](https://haskell.foundation) website is up and running. We are accepting [issues and PRs](https://github.com/haskellfoundation/haskellfoundation.github.io), don’t be shy!

# Volunteering!

## Documentation

## [Project Matchmaker](https://github.com/haskellfoundation/matchmaker)

A platform for open-source contributors to discover Haskell projects to get involved with! From each according to their ability, to each according to their needs.

Shout-out to Jonathan Lorimer for his work on the project!

## Website

The [HF website](https://github.com/haskellfoundation/haskellfoundation.github.io) is Hakyll-based, although not currently using much of that functionality. We would love for it to be more data-driven, and of course stylish. Additionally, members of community file issues that may need to be addressed. Better workflow and staging? Yes, please!

## Community

We are in the early days for our Community Task Force, and are looking for people interested in being community managers and moderators. Our goal is to focus on communication, mediation, and conflict resolution, to make our community open, welcoming, and respectful.

## [Cabal](https://github.com/haskell/cabal)

Cabal is [under new maintainership](http://discourse.haskell.org/t/state-of-the-cabal-q1-q2-2021/2548), and things are moving forward! This foundational piece of Haskell tech needs love, modernization, and some deep problem solving skills.

## [Matrix Builder](https://matrix.hackage.haskell.org/)

Help keep Haskage packages working!

# Sponsors!

Thank you to our sponsors, you make the HF possible.

## Monad

- [IOHK](https://iohk.io/)
- [GitHub](https://github.com/)

## Applicative

- [EMQ](https://www.emqx.io/)
- [Tweag](https://www.tweag.io/)
- [Well-Typed](https://well-typed.com/)
- [Obsidian Systems](https://obsidian.systems/)

## Functor

- [Flipstone](https://flipstone.com/)
- [Mercury](https://mercury.com/)

---

<div class="post-metadata">

**Author:** ![Axman6](https://avatars.discourse-cdn.com/v4/letter/a/ce73a5/32.png) [@Axman6](https://discourse.haskell.org/u/Axman6)\
**Post date:** [May 29, 2021, 12:50am UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/2 "2021-05-29T00:50:44Z")

</div>

So much good news, it’s really nice after all these years to see what feels like a cohesive direction for the community.

Is the UTF8 text work based on their text-utf8 package’s work? I’m also curious if backpack could be used to let people choose their internal encoding? For several years I’ve been wondering if using succinct data structures over utf8 encoded text would give us the best of all worlds - IIRC the overhead of using something like CsPoppy is only about 1.25% overhead (or it was something drastically smaller than that again), and doing so would give us constant time indexing and compact storage.

---

<div class="post-metadata">

**Author:** ![ketzacoatl](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/ketzacoatl/32/1203_2.png) [@ketzacoatl](https://discourse.haskell.org/u/ketzacoatl)\
**Post date:** [May 29, 2021, 12:31pm UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/3 "2021-05-29T12:31:11Z")

</div>

> [@Axman6](#):
>
> I’m also curious if backpack could be used to let people choose their internal encoding?

There’s some discussion about the details of using backpack in [HF Tech Proposal #1: UTF-8 Encoded Text - #7 by emilypi](http://discourse.haskell.org/t/hf-tech-proposal-1-utf-8-encoded-text/2499/7).

---

<div class="post-metadata">

**Author:** ![jaror](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jaror/32/3271_2.png) [@jaror](https://discourse.haskell.org/u/jaror)\
**Post date:** [May 29, 2021, 12:59pm UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/4 "2021-05-29T12:59:41Z")

</div>

That discussion a bit different though, it is about replacing string by text (and others) in base. I think just having a different internal representation (utf8 vs utf16) can be done just fine without backpack, with something like a phantom type parameter.

---

<div class="post-metadata">

**Author:** ![bergmark](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/bergmark/32/418_2.png) [@bergmark](https://discourse.haskell.org/u/bergmark)\
**Post date:** [May 29, 2021, 1:17pm UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/5 "2021-05-29T13:17:25Z")

</div>

Good news, thanks 🙂

There is a reference to the matrix builder at the end, what about it? Would be great to get it running GHC 9.

---

<div class="post-metadata">

**Author:** ![sclv](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/sclv/32/71_2.png) [@sclv](https://discourse.haskell.org/u/sclv)\
**Post date:** [May 29, 2021, 2:21pm UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/6 "2021-05-29T14:21:11Z")

</div>

The situation with matrix builder is it needs a volunteer or two to help put in some elbow grease. We’re working on understanding and coordinating the current state and how people can help at this time.

---

<div class="post-metadata">

**Author:** ![Bodigrim](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/bodigrim/32/1457_2.png) [@Bodigrim](https://discourse.haskell.org/u/Bodigrim)\
**Post date:** [May 29, 2021, 9:56pm UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/7 "2021-05-29T21:56:41Z")

</div>

> Is the UTF8 text work based on their text-utf8 package’s work?

Not really, see Prior Art section at [https://github.com/haskellfoundation/tech-proposals/blob/main/proposals/002-text-utf-default.md#timeline](https://github.com/haskellfoundation/tech-proposals/blob/main/proposals/002-text-utf-default.md#timeline)  
While previous stabs on UTF8 are important to get a clearer understanding of transition challenges, we decided to start from the scratch.

> I’m also curious if backpack could be used to let people choose their internal encoding?

Please see Compatibility Issues section ibidem. Supporting both encodings at once (via Backpack, or via a cabal flag, or via a phantom parameter) puts an undue double burden on `text` maintainers and on downstream packages. UTF8 is a complex beast and implies a whole set of different constraints on internal design, it’s not like we can just `s/16/8/g`.

---

<div class="post-metadata">

**Author:** ![Bodigrim](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/bodigrim/32/1457_2.png) [@Bodigrim](https://discourse.haskell.org/u/Bodigrim)\
**Post date:** [May 30, 2021, 8:26am UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/8 "2021-05-30T08:26:34Z")

</div>

> I’ve been wondering if using succinct data structures over utf8 encoded text would give us the best of all worlds

I was thinking about succinct data structures too, but decided against it.

- Even the most succinct structure costs us at least 32 bytes (pointer from text to bytearray, array header, array length, actual bits aligned) and one more heap object.

- There is an argument that length and indexing are mostly unsound operations for Unicode text, see [UTF-8 Everywhere](http://utf8everywhere.org/#myth.strlen)

- Finally, UTF8 allows to leverage SIMD instructions for indexing. While it is still O(n), the constant becomes really small. Here is my draft implementation: [text/cbits/cbits.c at b9be0c5c997af2f869c48b26cceccaebf5c15804 · Bodigrim/text · GitHub](https://github.com/Bodigrim/text/blob/b9be0c5c997af2f869c48b26cceccaebf5c15804/cbits/cbits.c#L142)

---

<div class="post-metadata">

**Author:** ![Axman6](https://avatars.discourse-cdn.com/v4/letter/a/ce73a5/32.png) [@Axman6](https://discourse.haskell.org/u/Axman6)\
**Post date:** [May 30, 2021, 10:40am UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/9 "2021-05-30T10:40:58Z")

</div>

> [@Bodigrim](#):
>
> Finally, UTF8 allows to leverage SIMD instructions for indexing. While it is still O(n), the constant becomes really small

Thanks, all of that sounds great - I’m happy to see these optimisations happening, I’m fairly familiar with them: [WIP: vectorised fast{Length,Take,Drop,SplitAt} implementations by axman6 · Pull Request #1 · text-utf8/text-utf8 · GitHub](https://github.com/text-utf8/text-utf8/pull/1)

I agree on both your other points too, I think that a succinct view over a UTF8 encoded Text is probably a better idea, and can be a package of its own which implements the same interface (this might be one good reason to use backpack actually, and probably a better reason than supporting multiple encodings)

---

<div class="post-metadata">

**Author:** ![Bodigrim](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/bodigrim/32/1457_2.png) [@Bodigrim](https://discourse.haskell.org/u/Bodigrim)\
**Post date:** [May 30, 2021, 8:32pm UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/10 "2021-05-30T20:32:52Z")

</div>

Ah, interesting, I have not seen your PR before. I’m using `popcount` in my branch, it would be interesting to check whether multiplication by a magic constant can make it even faster.

---

<div class="post-metadata">

**Author:** ![Axman6](https://avatars.discourse-cdn.com/v4/letter/a/ce73a5/32.png) [@Axman6](https://discourse.haskell.org/u/Axman6)\
**Post date:** [May 31, 2021, 4:22am UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/11 "2021-05-31T04:22:49Z")

</div>

It’s a very cute trick, and doesn’t require proper SIMD instructions. I believe it would work well with SIMD as well though. Hit me up on IRC if you want to chat about it 🙂

---

<div class="post-metadata">

**Author:** ![ChShersh](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/chshersh/32/2551_2.png) [@ChShersh](https://discourse.haskell.org/u/ChShersh)\
**Post date:** [May 31, 2021, 5:46pm UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/12 "2021-05-31T17:46:19Z")

</div>

> [@myShoggoth](#):
>
> A platform for open-source contributors to discover Haskell projects to get involved with! From each according to their ability, to each according to their needs.

This sounds like a cool project 🙂 It’s a pity HF missed the opportunity to collaborate with an already implemented project [issue-wanted](https://github.com/kowainik/issue-wanted) with the same goal. Not to mention, that `issue-wanted` was implemented during GSoC under the official [Haskell.org](http://Haskell.org) organization.

If one of the HF goals is to be a community glue, I believe it should try to coordinate the contributions of various people from the Haskell community.

---

<div class="post-metadata">

**Author:** ![rae](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/rae/32/888_2.png) [@rae](https://discourse.haskell.org/u/rae)\
**Post date:** [June 1, 2021, 12:15am UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/13 "2021-06-01T00:15:13Z")

</div>

It does seem we have some room for improvement in asking the community for prior art before embarking on a project. Our current model is to ask within the HF to see if anyone is aware of work in a given area, but we should reach out further to find projects that may be solid but have not taken off. I will shortly recommend this as a routine practice within the HF.

I went to look at issue-wanted, but I couldn’t learn much about it from a first inspection. Is there a description somewhere of what the project does? The readme at [https://github.com/kowainik/issue-wanted](https://github.com/kowainik/issue-wanted) has a very high-level introduction and then a discussion of the project’s architecture / getting it to run, etc. I’m more interested in learning about its user experience or interacting with the application itself – is this documented / demonstrated anywhere? Thanks!

---

<div class="post-metadata">

**Author:** ![Kleidukos](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/kleidukos/32/1213_2.png) [@Kleidukos](https://discourse.haskell.org/u/Kleidukos)\
**Post date:** [June 1, 2021, 8:45pm UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/14 "2021-06-01T20:45:09Z")

</div>

Hi, I am surprised because I think this is the first time I’ve heard about `issue-wanted`, and Google showed me projects like [Contribulle](https://framagit.org/participalibre/participalibre) before your project. ☹

Due diligence has been added to the HF proposal template and we shall give much more attention to this in the future, because we simply do not wish to re-invent the wheel if production-ready solutions already exist in our ecosystems.

---

<div class="post-metadata">

**Author:** ![stevenxl](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/stevenxl/32/301_2.png) [@stevenxl](https://discourse.haskell.org/u/stevenxl)\
**Post date:** [June 5, 2021, 1:31pm UTC](https://discourse.haskell.org/t/haskell-foundation-may-update/2567/15 "2021-06-05T13:31:20Z")

</div>

Love to see the impact that HF is having already. Keep up the great work.
