From cf3f54aa88c4db9e9b0652beb11e315fd695d02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Sun, 5 Apr 2020 16:38:49 +0100 Subject: [PATCH] README: expand the caveats section a bit For #13, mainly, since that's a common concern. --- README.md | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 571a004..9f5a8c3 100644 --- a/README.md +++ b/README.md @@ -40,17 +40,28 @@ binary doesn't include paths from the current filesystem. ### Caveats +Most of these can improve with time and effort. The purpose of this section is +to document the current shortcomings of this tool. + +* Package import path names are never garbled, since we require the original + paths for the build system to work. See #13 to investigate alternatives. + * The `-a` flag for `go build` is required, since `-toolexec` doesn't work well - with the build cache; see [#27628](https://github.com/golang/go/issues/27628). + with the build cache; see [golang/go#27628](https://github.com/golang/go/issues/27628). -* Since no caching at all can take place right now (see the link above), builds - will be slower than `go build` - especially for large projects. +* Since no caching at all can take place right now (see the link above), fast + incremental builds aren't possible. Large projects might be slow to build. * The standard library is never garbled when compiled, since the source is - always publicly available. + always publicly available. See #7 for making this configurable. * Deciding what method names to garble is always going to be difficult, due to - interfaces that could be implemented up or down the package import tree. + interfaces that could be implemented up or down the package import tree. At + the moment, exported methods are never garbled. * Similarly to methods, exported struct fields are difficult to garble, as the - names might be relevant for reflection work like `encoding/json` + names might be relevant for reflection work like `encoding/json`. At the + moment, exported methods are never garbled. + +* Functions implemented outside Go, such as assembly, aren't garbled since we + currently only transform the input Go source.