Projects STRLCPY GoReSym Commits 435875c2
🤬
Revision indexing in progress... (symbol navigation in revisions will be accurate after indexed)
  • ■ ■ ■ ■ ■ ■
    README.md
    skipped 91 lines
    92 92   
    93 93  Due to the way Go packages work, we needed to remove the `/internal` path from the source file tree. This resulted in a lot of copying of internal Go files, where the directory tree is mostly intact but with small changes to many files' imports: references to `/internal` paths were replaced with `github.com/mandiant/GoReSym/`.
    94 94   
    95  -We also modified many internal structures to export fields and method. These are not exported by upstream Go because users should not rely upon them; however, the purpose of this tool to extract internal information, so we're taking on the task of maintaining these structures. Its not a great situation, but it's not easily avoidable.
    96  - 
    97  -Beyond the trivial changes, new logic exists in `/objfile`. For example, the file `objfile/internals` defines the reversed internal Go structures that GoReSym parses. If you update this repository, you must take care to keep these modifications intact. Its probably better to manually merge in commits from upstream rather than copying upstream files wholesale.
     95 +We also modified many internal structures to export fields and methods. These are not exported by Go upstream because users should not rely upon them. However, the purpose of this tool is to extract internal information, so we're taking on the task of maintaining these structures. Its not a great situation, but it's not easily avoidable. If you update this repository, you must take care to keep these modifications intact. Its probably better to manually merge in commits from upstream rather than copying upstream files wholesale.
    98 96   
    99 97  I am open to suggestions on how to better structure this project to avoid these issues while still compiling with the typical `go build`. There is a previous discussion involving Go maintainers [here](https://github.com/golang/go/issues/46792).
     98 + 
     99 +Ignoring some trivial changes, most new logic exists in `/objfile`. For example, the file `objfile/internals` defines the reversed internal Go structures that GoReSym parses.
    100 100   
    101 101  # References
    102 102  * `pclntab` specification: [golang.org/s/go12symtab](https://docs.google.com/document/d/1lyPIbmsYbXnpNj57a261hgOYVpNRcgydurVQIyZOz_o/pub)
    skipped 21 lines
Please wait...
Page is in error, reload to recover