Description
Prepare openSUSE Tumbleweed project for new GHC Haskell compiler and separate builder (Hadrian) from GHC build
Goals
- have GHC-9.14 project with working compiler and if possible filled with packageset
- have Hadrian in own package built with bootstrap compiler to separate Hadrian bootstrap from ghc bootstrap
Resources
This project is part of:
Hack Week 25
Activity
Comments
-
3 days ago by osukup | Reply
ghc-9.14.0-rc3 is now in d:l:h:ghc-9.14.x Hadrian build was separated to own package with dependency on ghc-bootstrap and python3 which splits 15-20 minutes of build time on x86_64 from ghc build itself
-
Similar Projects
eBPF bytecode emitter in Haskell by kalfalakh
Description
Newbie level knowledge of eBPF and some knowledge of Haskell. The goal for this hackweek is to catch two birds with one stone; get familiar with eBPF and learn more about Haskell, hence implement something related to eBPF in Haskell. Given an input, which is a program, represented as eBPF instructions, prepare a fully built eBPF bytecode ready to be loaded into the Kernel.
Goals
- Recap on ADTs in Haskell, type classes and their instances / deriving, on pattern matching and higher order functions
- Read and understand RFC 9669
- Implement the entire pipeline; parsing the input, verifying the input, building instructions, encoding them and concatenating them
- Deal with all the learning, bugs and difficulties encountered on the way
Progress
Last day of hackweek and this is what I have so far.
- ADTs implemented to correctly type all operations, classes, opcodes, instructions and other instruction specific types
- opcodes and opcode builders based on specification are implemented.
- Encoder is ready for 64-bit instruction format. Extended 128-bit instruction format is not yet supported
- Only ALU and ALU64 instructions API is provided. JMP, LD, ST for base32 and base64 are missing. swap and atomic are missing
- All ALU and ALU64 instructions (except MOV and MOVSX) are tested manually and are correctly encoded
Whats next?
There is still a lot left to do:
- Input parser and formatter + some kind of basic verifier
- API for remaining instruction classes
- Proper testing mechanism
- swap and atomic instructions
- Loader
Resources
- RFC 9669
- https://ebpf.io/
- https://www.haskell.org/documentation/
openSUSE on ZoL from OpenZFS project by jkohoutek
Idea is to have SUSE system with OpenZFS as root FS.
Why ZFS
Ways in which ZFS is better than BTRFS
Main goal
Have OpenZFS as install option in the installer and utilize zedenv Boot Environment Manager for SUSE updates install
Goals
- synergy of ZFS with dracut, so snapshots are correctly added to the grub
- synergy of zedenv with zypper
- before every update snapshot is created
- when new kernel or other package which requires reboot is about to be installed, the update will be processed to the new boot environment snapshot and grub configuration changed to boot to this new one
- integrate Root on ZFS as install option to the YaST
- configure Kiwi for the ZFS install images
Completed goals
- prepare ZFS pool compatible with openSUSE installation ✓
- install openSUSE with root on ZFS ✓
- boot to the prepared and installed system ✓
Resources: