---
# System prepended metadata

title: Hacking Day project ideas

---

# Hacking Day project ideas

## Resources

* https://github.com/tarides/compiler-hacking/wiki/Cloning-and-building-OCaml

## Task 1

**Difficulty:** ⭐⭐⭐⭐

* https://github.com/ocaml-multicore/kcas/issues/31

### References

* https://tarides.com/blog/2023-08-07-kcas-building-a-lock-free-stm-for-ocaml-1-2/
* https://tarides.com/blog/2023-08-10-kcas-building-a-lock-free-stm-for-ocaml-2-2/


## Task 2

**Difficulty:** ⭐⭐⭐

https://github.com/pitag-ha/slack_bot/blob/main/TODO.md

### References

## Task 3

**Difficulty:** ⭐⭐

https://github.com/tarides/runtime_events_tools Add information about gc-stats to `--help command`

### References

This information is present in the README. Will be good to have this the help command.

## Task 4

**Difficulty:** ⭐⭐

Write a section in the README of https://github.com/tarides/runtime_events_tools to explain how to use Custom events.

### References

https://github.com/ocaml/ocaml/pull/12335

## Task 5

**Difficulty:** ⭐⭐⭐⭐
 
 Plot CDF grpah for GC latencies using notty: https://github.com/pqwy/notty.
 
 
 ## Task 6
 
 **Difficulty:** ⭐⭐⭐⭐⭐
 
 Make an Eio version of the Async examples in Real World OCaml
 
  ### References
  
 * https://github.com/dkim/rwo-lwt
 * https://dev.realworldocaml.org/concurrent-programming.html

## Task 7

**Difficulty:** ⭐⭐⭐

Running tsan

* Saturn test-suite:
* cohttp-eio
* https://github.com/aantron/dream/pull/254
* https://github.com/ocaml-multicore/domainslib/tree/main/test

### References

* https://tarides.com/blog/2023-07-07-making-ocaml-5-succeed-for-developers-and-organisations/#thread-sanitizer

## Task 8

**Difficulty:** ⭐

**Various Documentation Updates**

* https://github.com/ocaml-multicore/effects-examples update the build status in the README to show GitHub Actions status.

## Task 9

**Difficulty:** ⭐⭐⭐⭐⭐

Add a Eio version of https://github.com/jamesward/easyracer


## Task 10

**Difficulty:** ⭐⭐⭐⭐

Stress Tests for Eio: https://github.com/ocaml-multicore/eio/issues/450

Benchmark for Eio backend of Piaf: https://github.com/anmonteiro/piaf

## Task 11

**Difficulty:** ⭐⭐⭐⭐

https://github.com/ocaml/ocaml/issues/12584

The runtime machinery gets closed before it emits closing events for `STW_LEADER` and `DOMAIN_CONDITION_WAIT`. It could be possible to just emit the closing event for `STW_LEADER` within runtime events destroy function.

## Task 12

**Difficulty:** ⭐⭐⭐⭐⭐

Duckworth Lewis Stern calculator with Owl

## Task 13

**Difficulty:** ⭐⭐⭐⭐

Writing a tool to determine space-time overhead fitting the scatter plot and find the setting for the best performance.

### References

* https://blog.janestreet.com/memory-allocator-showdown/
* olly - https://github.com/tarides/runtime_events_tools

## Task 14

**Difficulty:** ⭐⭐

wasm_of_ocaml

* Try to run the ocaml.org playground with wasm_of_ocaml. It currently uses `js_of_ocaml`. Ref: https://github.com/ocaml-wasm/wasm_of_ocaml. c.f. https://github.com/ocaml/ocaml.org/tree/main/playground

* Create more examples the run on the browser -- https://github.com/ocaml-wasm/wasm_of_ocaml#usage

* Add any missing bindings -- https://github.com/ocaml-wasm/wasm_of_ocaml/issues/5

## Task 15

**Difficulty:** ⭐

* Update the installation instructions in the README https://github.com/ocaml-multicore/effects-examples#running-the-examples to install with opam.

* Update https://github.com/ocaml-multicore/domainslib#installation to install from opam, and OCaml 5.1.

## Task 16

**Difficulty:** ⭐⭐⭐⭐⭐

Write a LOGO intermediate language in OCaml using notty.

## Task 17

**Difficulty:** ⭐⭐

Test and document different versions of docker-compose that work with current-bench setup. Ref: https://github.com/ocurrent/current-bench/issues/369

## Task 18

**Difficulty:** ⭐⭐⭐

Create a proof-of-concept implementation of a Jupyter notebook to fetch data from the benchmarking backend. Ref: https://github.com/ocurrent/current-bench/issues/66

## Task 19

**Difficulty:** ⭐⭐⭐

Support using a worker's name instead of a long Docker image name.
Ref: https://github.com/ocurrent/current-bench/issues/355

## Task 20

**Difficulty:** ⭐⭐⭐⭐

Test run Sandmark with run_all_serial.sh on Fedora. Ref: https://github.com/ocaml-bench/sandmark/issues/338

## Task 21

**Difficulty:** ⭐⭐⭐⭐

Build js_of_ocaml with Sandmark. Ref: https://github.com/ocaml-bench/sandmark/pull/352

## Task 22

**Difficulty:** ⭐⭐⭐⭐⭐

Add owl benchmark to Sandmark. Ref: https://github.com/ocaml-bench/sandmark/issues/331

## Task 23

**Difficulty:** ⭐⭐⭐⭐⭐

Show diff output between expected and installed dependencies in Sandmark runs. Ref: https://github.com/ocaml-bench/sandmark/issues/327

## Task 24

**Difficulty:** ⭐⭐⭐⭐

Add more parallel benchmarks to Sandmark. Ref: https://github.com/ocaml-bench/sandmark/issues/90

## Task 25

**Difficulty:** ⭐⭐⭐⭐

Check frama-c benchmark build failure on Multicore OCaml. Ref: https://github.com/ocaml-bench/sandmark/issues/17

## Task 26

**Difficulty:** ⭐⭐⭐⭐

Port Comparison-Programming-Languages-Economics benchmark to OCaml. Ref: https://github.com/ocaml-bench/sandmark/issues/326

## Task 27

**Difficulty:** ⭐⭐⭐

Evaluate merging multiple parallel run_config.json files. Ref: https://github.com/ocaml-bench/sandmark/issues/285

## Task 28

**Difficulty:** ⭐⭐⭐

Renaming suggestions for run_config.json files. Ref: https://github.com/ocaml-bench/sandmark/issues/302

## Task 29

**Difficulty:** ⭐⭐⭐

Produce memtrace output from Sandmark benchmark runs. Ref: https://github.com/ocaml-bench/sandmark/issues/361

## Task 30

**Difficulty:** ⭐⭐⭐

Add processor topology/affinity/pinning output from ocaml-processor in Sandmark benchmark results. Ref: https://github.com/ocaml-bench/sandmark/issues/373

## Task 31

**Difficulty:** ⭐⭐⭐⭐

Add support to pass configure options when building Sandmark benchmarks. Ref: https://github.com/ocaml-bench/sandmark/issues/375

## Task 32

**Difficulty:** ⭐⭐⭐

Add perf energy metrics to Sandmark bench results. Ref: https://github.com/ocaml-bench/sandmark/issues/378

## Task 32

**Difficulty:** ⭐⭐⭐

Integrate `variorum` for power and performance monitoring capabilities to Sandmark benchmarking. Ref: https://github.com/ocaml-bench/sandmark/issues/380

## Task 33

**Difficulty:** ⭐⭐⭐

Report hardware resources in parallel architectures using hwloc. Ref: https://github.com/ocaml-bench/sandmark/issues/381

## Task 34

**Difficulty:** ⭐⭐⭐⭐

Add frama-c open source case study benchmarks to Sandmark. Ref: https://github.com/ocaml-bench/sandmark/issues/416

## Task 35

**Difficulty:** ⭐

https://github.com/ocaml/ocaml/issues/12676

Tag `Domain.self` as `[noalloc]`.

## Task 36

**Difficulty:** ⭐⭐⭐⭐

https://github.com/ocaml/ocaml/issues/12363

## Task 37

**Difficulty:** ⭐⭐⭐⭐

https://github.com/ocaml/ocaml/issues/11770
