Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Artifact: textual relocation description format #48

Open
m4b opened this issue Sep 9, 2018 · 0 comments
Open

Artifact: textual relocation description format #48

m4b opened this issue Sep 9, 2018 · 0 comments

Comments

@m4b
Copy link
Owner

m4b commented Sep 9, 2018

Design

Having a textual format which the artifact can dump would be extremely cool and useful.

In particular, if someone submits a bug report, can request they also paste the textual format dump from their artifact.

Furthermore, once a format was stabilized, we could implement an emitter and a parser, which would allow us to feed textual (and hence editable!) relocatable "artifacts" into a parser frontend (e.g., the prototype binary) in order to emit elf/macho object file backends, from a single textual format.

Use cases

  1. For debugging external issues, this won't require a binary to be uploaded, nor a compiler for whatever source generated it; just the state of the artifact prior to object file emission. This would aid in debugging + reproducability.

  2. For testing + integration, having a "portable" textual format would be very useful; we could programmatically create an artifact, then have it dump its text format and compare this against a checked in value, for example.

  3. Development: without recompiling the prototype, a text file could be edited, fed into the prototype, which then constructs the artifact based on the textual file, and then emits the object file. This would allow experimentation with unusual link patterns, new types of relocations, different kinds of code and relocation patterns, etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant