6 replies
July 2022

X512

Stupid question: what is wrong with current Jam and why Ham would be better?

2 replies
July 2022 ▶ X512

Starcrasher

Perhaps previous post would answer…

July 2022 ▶ X512

dominicm

Current Jam has a lot of bugs/limitations, both small (taking a sublist with an endpoint just doesn’t return anything) and fundamental (Jam doesn’t track it’s environment or Jamfiles so it can’t always tell when something needs to be rebuilt). It’s also generally a difficult codebase to work in.

Ham aims to be:

  1. Faster
  2. Usable as a library for IDEs
  3. More extensible
  4. Thoroughly tested
  5. Have better caching capabilities

It also has compatibility features that subsume other Jam forks, so it’s an all-in-one tool.

July 2022

dominicm

I’d be happy to answer any questions anyone has! I know that a build system rewrite isn’t exactly the most tangible project, but this should hopefully make future extensions a lot easier.

1 reply
July 2022 ▶ dominicm

SamuraiCrow

Great! If Ham can do what Jam does but more efficiently and organized, that might just save us from having to rewrite jamfile definitions later.

After all, Fuchsia used to use (or maybe still uses) a preprocessor for Ninja Build called Build Ninja to combine build steps for parallel builds on Google’s datacenters. If Ham can become an integrated one step process for a build chain, that’ll be fine with me.