Mapping of source files to their contents.
It is occasionally useful to gain direct access to the source text, even before preprocessing has occurred. Our file loading functions, such as vl-load, can optionally produce a file map, which is an alist that associates each file name to its contents (represented as a string).
We previously represented the contents of each file as a list of extended-characters. An advantage of extended characters was that file maps were cheaper to construct because we already had the list of characters available from our file-reading functions. Using strings, we have to pay some extra price for coercing the characters.
On the other hand, strings are more compact in memory and are generally faster to serialize and load than extended characters. When we began to develop the VL server, these properties seemed quite attractive.
You might ask why we introduce file maps at all instead of just using alists binding filenames to content strings. Our basic motivation is to make it more easy to change the representation of a filemap in the future, should we decide that we need either more control or flexibility in the underlying representation.