Releases: odipar/YMXS
Release list
YMXS 0.4.7
Every file a tool is built from stands as 0.4.6 has it, so the five
executables are that release's bytes and the Go module is its source. One
test reads the line a tool reports today.
- A pipe test read the line before the four formats.
PipeTestruns
the tools one into the next and readnot a YM5! or YM6! dumpfrom
ym-to-ymxs, which 0.4.6 reworded to name YM3! and YM3b; the test now
reads the line as it stands. It runs wheretarget/classpath.txt
stands, whichbin/runand the workflow write andmvn testalone
does not, so it and eight others skip on a bare local run: 116 tests
where the workflow runs 123. 0.4.6 was cut from such a run, and the
workflow found this after the release was published.
YMXS 0.4.6
ym-to-ymxs reads two formats more, so the five executables differ from
0.4.5's. A structure reads as 0.4.5 has it, every file and every form.
- A YM3 dump reads.
YM3!andYM3bopen with the frames: fourteen
vectors of one register each, R0 to R13, follow the four bytes of the
format, and underYM3ba long after them is the frame the dump
repeats to (ym.md 2.6). The frame count is the vectors' length, the
name and the author are empty, the sample count is 0, the rate is 50
Hz, and R14 and R15 are zero, so every slot of every frame is off and
the rows carry registers alone. A loop frame outside the rows falls
back to row 0, the rule 8.3 already defines for a YM5 dump. YMXR's
reader has read the two formats since its 0.4.14, so the same file read
in one repository and ended the reader here withnot a YM5! or YM6! dump. Measured on
capture.ym, aYM3!dump of 921 frames: the Java tree, the Go tree
and YMXR's reader write the same 42,968 bytes of JSON, and
ymxs-checkreports every rule of SPEC.md 6 satisfied. - The lines a table reports are read against both trees. Every line a
table of SPEC.md, tools.md, json.md, csv.md or ym.md quotes is read
against the Java tree and the Go tree: the longest run of words between
the figures a tool writes into a line stands in both, and a table whose
header names the two trees is read a column a tree. A line reworded in
one tree and the document, or in the document alone, fails it. - README.md opens with what YMXS is, what the five tools do, the
release to download, a pipe to run onpacked.ym, and the terms of
SPEC.md a reader meets first.
YMXS 0.4.5
A structure reads as 0.4.4 has it, every file and every form: what moves
is one line a reader reports, and the documents a reader is written
against.
- A shape of -1 is named among the shapes a row has. The JSON form
reads -1 as the row that leaves the effect of a timer alone (json.md
6.2), and the line a reader reported of another value named 0, 1 and 2
alone. Both trees name -1 now, and json.md's row has the line as it
stands. The CSV form's cell is 0, 1 or 2, an empty cell being the row
that acts on no timer, so the line of that form reads as it did. - A conformance kit, and two readers of it. doc/conformance is nine
tunes in the JSON form, the record of one tune of each beside them, and
the task an implementer receives. Two implementers wrote a recorder
from SPEC.md and json.md alone and produced every record line for line;
their notes moved nine places of the two documents, three of them
contradictions. json.md's reading procedure readversionas equal to
3, where 2.4 reads 4 and the version before it and every tune of the
kit is version 4: a reader following the procedure stopped on all of
them. SPEC.md 1.8 read that this version defines one kind of target and
one kind of source, where 1.1 and 3.1.1 define three of each. And 7.4's
sourceis the number in first-start order, where a file numbers its
sources in file order and only an emitter was bound to the first. - A citation of a specification lands on a clause, which
SpecTest
reads over SPEC.md, json.md, csv.md and ym.md: 3.1.1 cited 2.5 for the
envelope period, which stands in 2.2, and a 2.6 no document has.
YMXS 0.4.4
An empty text is not JSON, and a quoted block keeps its words. Every file
a tool is built from stands as 0.4.2 has it - go/, bin/ and every
document - so the five executables are that release's and the Go module is
its bytes. The Java tree gains the reading of an empty text, which the Go
tree already had.
- An empty text is not JSON. A reader handed an empty input reported
format is null, and this form requires a textin the Java tree and
this is not JSON: EOFin the Go tree: the Java reader read the empty
text as an empty object and then found the keys of that object missing,
where the Go reader found no JSON at all. The Java reader now reports
what the Go one does, and the two trees answer an empty input alike. - The parity tests read the error paths, which is the gap that hid it:
each repository of the family read something the others did not, and
none of the three read an empty input. - A code span that wraps is quoted whole. The style check blanked a
code span a line at a time while the rest of it reads a paragraph
joined, so a span broken by a wrap was two unpaired backticks and its
words were read as prose. doc/tools.md 11.2 has such a message, the
build lock's, and passed because the span fits one line; YMXR wrapped
the same sentence and the check fired on a word inside it. - A fenced block is quoted as a code span is. doc/tools.md 2.1 quotes
bin/ymxs-checkwhole, comment and all, and the check reads that script
where it stands in the tree, undersources, so the fenced copy was a
second reading of a file the check already has. Over the four
repositories that is 53 blocks, 106 fences and 188 lines.
YMXS 0.4.3
The document checks are one package. Every file a tool is built from stands
as 0.4.2 has it - go/, bin/ and every document - so the five
executables are that release's and the Go module is its bytes.
org.ymxs.doc.Documentsreads a link that resolves, one wrap width
and the rows a glossary is read from. Those were written in each of the
four repositories of the family, and the copies had drifted: this tree
counted a line with a bare URL in it against the wrap width, where ST4
left one. The package reads the best of the four, and two of them came
from here - the line a broken link is written at, and the count of
documents read that says the check is awake. It is carried from DTX,
where it is kept, asorg.ymxs.styleis.ShapeTestreads the two it had.
YMXS 0.4.2
The style check, two calls a reader outside this package reads a dump
through, and a plan that shipped. The tools write the bytes 0.4.1 wrote:
the ten dumps under YMXR's ym/test convert to the structures a build of
the tag before writes, measured.
- The struck list is a document. The check was a list of 88 phrases in
a test class, matched as substrings over the documents alone.
org.ymxs.stylereadsSTRUCK.md- a section a rule of AGENTS.md, an
entry a name, a pattern and the samples the pattern is and is not in -
and runs over every document and every code comment. The package is
carried from DTX, which wrote it, and the four repositories of the family
run the same 370 lines. Reading comments, which this check never did,
found 51 lines to reword, and the cleft four more: AGENTS.md has struck
the cleft since it was written and no list encoded it. Lha.isArchiveandLha.unpackare public. They were
package-private, so YMXR carried a copy of the whole decoder to read a
packed dump - 351 lines of code identical to these but for the class
modifier - beside a Go tree that imports this module and calls the
exported pair. YMXR's copy goes when it reads this release.doc/plan.mdgoes. It worked the voice target out before it became a
clause, and 0.4.0 made it SPEC.md 3.1.1.
YMXS 0.4.1
The order a target writes its registers is the player's. One clause moves
and every other file stands as 0.4.0 has it, so every file of this release
reads under 0.4.0 and the other way round, and the JSON and CSV the tools
write are the bytes 0.4.0 wrote.
3.1.1's table read "registers, in the order it writes them", which
fixed an order for every target. The sound depends on two of those
orderings alone, and the text under the table already named both: a
voice's fine byte before its coarse nibble, so the period standing
between the two writes is the new fine with the old coarse; and a
buzzer's shape after its period, since writing the shape restarts the
generator on the period standing. Where a volume register stands among
them is unheard.- The table is the map from a value of the row to a register now, as its
column says, and those two orderings stand written out below it. A
player that writes the rest in another order plays the tune this
structure defines: YMXR's tick writes the column the marker stands in
last, which is R8 between R0 and R1 for a voice and R6 after R8 for a
noise.
YMXS 0.4.0
A target that writes several registers, and a source of several values a
row. The structure's version is 4: a writer writes 4, a reader reads 4 and
3, and a 0.3.6 reader reports a file this writes as an error of the form. A
version-3 file reads here as it read there.
- targets 14 to 24, each writing its registers in one order and reading one
value of the row each:setToneA/B/Cwrites R0 R1, R2 R3, R4 R5;
setVoiceA/B/Cthose and the voice's volume;setEnvelopeR11 R12;
setBuzzerthose and the shape;setNoiseA/B/Cthe noise period and one
voice's volume. An effect runs a voice's period and its volume on one
timer where it needed two. - a source of two or three values a row, whose table is one width from top
to bottom. - a source fits its target by shape and not by a check:
Targetis sealed
overOneTarget,TwoTargetandThreeTarget, a source overSingle,
PairandTriple, and a start overStartOne,StartPairand
StartTriple, each pairing a target with the source of that width.
Timingis the prescaler, the count and the two resets, whichRetune
and every start share. - in JSON a row is a number where the source is one value a row and an
array of two or three where it is more; in CSV a value block names its
cellsvaluefor one andvalue1,value2,value3for more. - the Go tree mirrors the Java tree interface for interface, and
ParityTestreads the same files through both.
YMXS 0.3.6
A check reads one citation more. The structure, the tools and the two forms
are 0.3.5's, so every file of this release reads under 0.3.5 and the other
way round, and the JSON and CSV the tools write are the bytes 0.3.5 wrote.
everyClauseCitedInAnotherDocumentIsDefinedread a citation written as
SPEC.md 7and passed over one written through a link, the form
README.md uses, so the clauses a reader follows from there were read by
no check. The closing bracket is part of the pattern now: 75 citations
are read where 67 were, and each resolves.- ST4, DTX and YMXR read a citation the same way, so one check stands in
the four repositories of the family.
YMXS 0.3.5
The documents, and the checks that read their figures back. The structure,
the tools and the two forms are 0.3.4's, so every file of this release reads
under 0.3.4 and the other way round, and the JSON and CSV the tools write
are the bytes 0.3.4 wrote.
- Four checks read a document against the thing it describes. Every line
tools.md quotes of a run is a line a run writes, figures and all; the tune
json.md 10.1 and csv.md 8.1 quote is the file beside it, byte for byte;
the release the documents name is the onepom.xmlnames; and every
clause one document cites in another is one that document defines. Each
failed on the text as it stood. - The release the documents named was the one before this. README.md
fetchedgithub.com/odipar/ymxs/go@v0.3.3of a module the pom had at
0.3.4, and tools.md 12.5 and this document showed that tag beside it. - A list of tunes became a search. tools.md 11.4 read "each of the seven
files ofdoc/tunes" for a listParityTestwrote out by name, so a tune
added later crossed neither way; the test finds them now. - The check of SPEC.md 6.6 is read line by line.
CheckTestcounted six
warnings ofdoc/tunes/warnings.json; it reads the six lines the clause
quotes. - ym.md 1.4, 1.5 and 1.6 stand in a paragraph each, as every clause
beside them, and README.md opens its second paragraph without a cleft.