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

WIP: Import background & philosophy information into the documentation. #39

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

mithro
Copy link
Contributor

@mithro mithro commented Apr 21, 2021

This pull request aims to pull a lot of the "higher level" background information around the interchange format.

This was discussed by myself, @litghost and @clavin-xlnx a long time ago and a bunch of it written down in places like the Google Doc at https://interchange.vtr.tools (however some stuff in that document is obsolete / out of date).

As @litghost has moved onto other projects and other people are now working on more low level stuff like the timing annotation, it is a good time to get this stuff written down before it gets forgotten or lost.

My goal is that after all the useful content from the Google Doc is imported, we can delete that document.

@mithro
Copy link
Contributor Author

mithro commented Apr 21, 2021

To make sure everyone is on the same page, I would like to make sure this work gets reviewed and eventually approved by;

@mithro
Copy link
Contributor Author

mithro commented Apr 21, 2021

@duck2 - You might find this interesting.

@mithro
Copy link
Contributor Author

mithro commented Apr 21, 2021

@vaughnbetz - You might find this interesting.

@mithro
Copy link
Contributor Author

mithro commented Apr 21, 2021

@nelsobe - You might find this interesting.

@mithro
Copy link
Contributor Author

mithro commented Apr 21, 2021

@andrewb1999 - You might find this interesting.

A lot of this is based on the initial stuff documented in the Google Doc
at https://interchange.vtr.tools

Signed-off-by: Tim 'mithro' Ansell <[email protected]>
Copy link
Contributor

@acomodi acomodi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. discovered some possible typos below.

docs/common.md Outdated Show resolved Hide resolved
docs/common.md Outdated Show resolved Hide resolved
docs/common.md Outdated Show resolved Hide resolved
The preferred on disk formats for the interchange format are;

* (a) Binary Machine readable format - **Cap'n'Proto**
* (b) Text based human readable format - **XML**
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's worth noting that we don't actually have any XML support at all atm, and seem to be preferring YAML for human readable/writeable stuff like the constraint/LUT patches for xc7, so far

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps it is worth mentioning that one of the original motivations of having both a binary and text based format were to provide the need for speed/space efficiency and debuggability. Binary has much better speed and data compaction properties whereas text enables powerful checks (such as diff).

The most readable/debugging-useful text format would probably be something custom, however that introduces additional overhead of building custom parsers/deparsers for each language. The ecosystem of tooling that already exists around YAML, XML and JSON is I think one of the primary motivators for their selection.

docs/common.md Outdated Show resolved Hide resolved
Co-authored-by: Alessandro Comodi <[email protected]>
Co-authored-by: gatecat <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants