[GSoC 2022] Ham: Final Report | Haiku Project

Hello everyone. Thank you for having me the past few months; it’s been a busy, fun ride. This is the final report for Ham, a replacement to the Jam build system.


This is a companion discussion topic for the original entry at https://www.haiku-os.org/blog/dominicm/2022-09-10_gsoc_2022_ham_final_report/
17 Likes

Awesome work, Dominic. It was a blast to have you! You’ve been an exceptional GSoC student!

7 Likes

Does it already able to build Haiku? If not, what is still missing?

The Lightweight Architecture Decision Records written in this project is now my reference for doing it correctly :slight_smile: And the decisions themselves makes a lot of sense. Nicely done!

5 Likes

Wow, I was amazed reading through this. Congratulations, good sir; hope to always see you around.

1 Like

While I can’t comment on the quality of the code (I barely can read my own, so… :smiley:)… I’m really impressed by the work @dominicm put on documenting the whole thing!

I didn’t thought I would, personally, be much interested on Ham (way out of my area/league)… but I ended up reading a bunch of those ADR docs with, to my surprise, joy, and a genuine interest in them!

Thanks a bunch, @dominicm, for the work you’ve done so far!

1 Like

It does not currently build Haiku. It’s able to interpret the whole Jam language, but has a bug with some actions in Haiku (I suspect right now the parser is breaking with actions that contain a ‘}’). Once I fix the bug and confirm Ham builds Haiku correctly, there’s a couple things I need to do before recommending its use:

  • Some performance modifications (namely caching regex)
  • Ensuring correct builds on Mac/Haiku
  • Beta-testing with some users

After that, V1 will be usable and I’ll continue work on V2!

12 Likes

@tqh @bitigchi @BiPolar Thank you all for the kind words! I definitely wanted the documentation to be up to snuff, and while the user documentation definitely needs work (kinda hard to do that before the tool is finished), I’m going to continue to keep the developer documentation up to date both for myself and everyone else interested in Ham’s development.

11 Likes