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

Cramv4 #502

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open

Cramv4 #502

wants to merge 7 commits into from

Conversation

jkbonfield
Copy link
Contributor

@jkbonfield jkbonfield commented May 28, 2020

This adds the CRAMv4.tex document. Note this builds on top of CRAMv3.1, but does so only in as far as CRAMv4 includes all the previous codecs and so the TeX doc should be used in conjunction with the CRAMcodecs.tex in #433

For avoidance of conflicts, these two PRs are kept separate. Fortunately this is easy as they change entirely separate filenames (bar Makefile).

A major chunk of this work is a large structural overhaul of the CRAM specification. Reordering, clarification, improved typesetting of some elements (eg see #490 which was backported from here), etc. I didn't particularly want to be making all those changes in two separate documents, but maybe it's worth considering. [An indication of the scale of restructuring is the v3 and v4 tex docs are 2970 and 2689 lines long respectively, but a diff between them is 3255 lines.]

The other work is, obviously, CRAM v4 itself. Hopefully the commits will reflect that.

This has been forked from CRAMv3.tex c831aba as given this is a major
release we don't wish to keep markup for both versions in the same
document.
This includes a massive reorganisation of the document, which is long
overdue.

It also now replaces EXTERNAL with a variety of type specific codecs
for signed, unsigned and bytes; ditches HUFFMAN (along with all other
bit codecs) and adds CONST codecs instead; removes the CORE block;
removes "external" for block descriptions, instead favouring data
blocks as a way to distinguish from header / structure containing
blocks.

As yet, nothing implements this variant of V4.0! However it's far
cleaner to describe and hopefully far simpler to implement due to
the aggressive culling of largely unused features.
- BYTE is now the same ID as the old EXTERNAL, given it's identical.
  But we refer to it as BYTE for clarity sake.

- Removed sint vs uint in data series types as it's no longer
  necessary to bake this into the specification.

- Moved the Data Series format text to later on and merged with the
  other tables, so the concepts and formats are introduced at the same
  point.
@hts-specs-bot
Copy link

Changed PDFs as of 15a7828: CRAMv4 (diff).

@hts-specs-bot
Copy link

Changed PDFs as of e08b84f: CRAMv4 (diff).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Stalled
Development

Successfully merging this pull request may close these issues.

2 participants