icerpc / slicec

The Slice compiler library
Apache License 2.0
13 stars 5 forks source link

Ordered Compilation #694

Closed InsertCreativityHere closed 6 months ago

InsertCreativityHere commented 6 months ago

Currently, the ordering of files is non-deterministic. ie. When you pass slicec a set of files to compile, the order you pass them in is completely discarded. This PR changes this behavior, so slicec preserves the order of files; this makes compilation more deterministic, and repeatable.

It does this at two levels:

The only downside is we now have to use Vec::iter().find() when looking for a file, instead of HashMap::get().