richer paths: (read)able host paths, generalize annotation paths
#176
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
a double feature:
(read)ing host pathsYou can now
(read)host paths! With one caveat: it is not possible to escape the host path's context dir. This is a basic safety mechanism to prevent Bass scripts from reading arbitrary sensitive data from the host. Provided that it is not possible create arbitrary symlinks on the host (the only way to perform writes at all is through memos, this should keep them pretty well sandboxed.bass.Readableinstead of file path stringsThe
bass.Rangetype attached to forms returned bybass.Reader(the parser) and used byAnnotate, the metadata system, backtrace reporting, etc. now embeds abass.Readableinstead of a file path string. This is a bit of a technical detail, but it allows e.g. error traces to correctly annotate source code from an arbitraryReadable(perhaps afs.FSbacked by a network/API) rather than being limited to local files on disk.In general this refactor helps clean up areas that previously switched on the concrete
Pathimplementation. For example, the(memos)system could now be refactored to support anyReadable. (But I'll save that for another PR.)