hello!

Today I found this paragraph:

> samurai schedules jobs using a stack, so the last scheduled job is the first to execute, while ninja schedules jobs based on the pointer value of the edge structure (they are stored in a std::set<Edge*>), so the first to execute depends on the address returned by malloc. This may result in build failures due to insufficiently specified dependencies in the project's build system.

https://github.com/michaelforney/samurai

imo the pointer values shouldn't be observed by the build system, this doesn't automatically imply reproducible builds issues if the built (intermediate) artifacts are still sorted before being linked together, but it's possibly something to keep in mind.

cheers,
kpcyrd

Reply via email to