ta0kira / zeolite

Zeolite is a statically-typed, general-purpose programming language.
Apache License 2.0
18 stars 0 forks source link

Freshness check for modules with binaries should check modification times of `.zeolite-cache/compile-metadata`. #173

Closed ta0kira closed 3 years ago

ta0kira commented 3 years ago

The assumption with the "improved" freshness check is that only the .0rp files and .zeolite-module affect compilation. That's mostly true, but the versions of object files matter when compiling binaries.

ta0kira commented 3 years ago

I found two problems:

  1. base isn't included in a module's dependencies in compile-metadata, so it isn't checked during the freshness check.
  2. The freshness check for dependencies doesn't examine C++ headers.

Since static linking is no longer the default (#175), I'm not going to worry about doing a full check of source and object files. The freshness check is more relevant for dynamic linking anyway, since API changes will keep the binary from loading shared libraries. This isn't an issue if the modules were linked in statically.