Lab

This time, you get to try things for yourself.

Borrow Snip's scissors to cut up code. Then visit Twig's bench and see if you can repair an expression that won't fit together.

After each experiment, you can compare your work with a real record from the Topaz compiler.

In the Inside Story Microscope, you can read the records from the stories exactly as they were written.

Token Splitter

Where should you cut so the compiler can read the pieces?

Snip

You can borrow my scissors today.

Go ahead. You cut first.

  • Tap a cut point to split the strip.
  • Tap the same spot again to join it.
  • A run of spaces counts as one cut point. Spaces left on their own fall away.

Snip

Let's start with something simple.

Your strip
Compare with Snip's stripClose the record and cut again

Actual token record from the Topaz 5.21.1 compiler

The pieces you made

Snip's pieces

  1. 1
  2. +
  3. 2

Take a look at where the two strips differ.

Your strip matches Snip's.

This time, there are 3 pieces.

  • the space between 1 and + You cut here.
  • the space between 1 and + You kept this together. Snip made a cut here.
  • the space between + and 2 You cut here.
  • the space between + and 2 You kept this together. Snip made a cut here.
  • the space between 1 and + Snip made a cut here.
  • the space between + and 2 Snip made a cut here.

Snip

What happens when a number has two digits?

Your strip
Compare with Snip's stripClose the record and cut again

Actual token record from the Topaz 5.21.1 compiler

The pieces you made

Snip's pieces

  1. 12
  2. +
  3. 3

Take a look at where the two strips differ.

Your strip matches Snip's.

This time, there are 3 pieces.

  • between 1 and 2 You cut here. Snip kept these characters together.
  • between 1 and 2 You kept this together.
  • the space between 2 and + You cut here.
  • the space between 2 and + You kept this together. Snip made a cut here.
  • the space between + and 3 You cut here.
  • the space between + and 3 You kept this together. Snip made a cut here.
  • between 1 and 2 Snip kept these characters together.
  • the space between 2 and + Snip made a cut here.
  • the space between + and 3 Snip made a cut here.

Snip

No spaces this time.

Your strip
Compare with Snip's stripClose the record and cut again

Actual token record from the Topaz 5.21.1 compiler

The pieces you made

Snip's pieces

  1. 1
  2. +
  3. 2

Take a look at where the two strips differ.

Your strip matches Snip's.

This time, there are 3 pieces.

  • between 1 and + You cut here.
  • between 1 and + You kept this together. Snip made a cut here.
  • between + and 2 You cut here.
  • between + and 2 You kept this together. Snip made a cut here.
  • between 1 and + Snip made a cut here.
  • between + and 2 Snip made a cut here.

Snip

Do you need to make any cuts at all?

Your strip
Compare with Snip's stripClose the record and cut again

Actual token record from the Topaz 5.21.1 compiler

The pieces you made

Snip's pieces

  1. 100

Take a look at where the two strips differ.

Your strip matches Snip's.

No cuts needed. The whole strip is one piece.

  • between 1 and 0 You cut here. Snip kept these characters together.
  • between 1 and 0 You kept this together.
  • between 0 and 0 You cut here. Snip kept these characters together.
  • between 0 and 0 You kept this together.
  • between 1 and 0 Snip kept these characters together.
  • between 0 and 0 Snip kept these characters together.

Snip

This symbol has two characters.

Your strip
Compare with Snip's stripClose the record and cut again

Actual token record from the Topaz 5.21.1 compiler

The pieces you made

Snip's pieces

  1. 1
  2. ==
  3. 2

Take a look at where the two strips differ.

Your strip matches Snip's.

This time, there are 3 pieces.

  • the space between 1 and = You cut here.
  • the space between 1 and = You kept this together. Snip made a cut here.
  • between = and = You cut here. Snip kept these characters together.
  • between = and = You kept this together.
  • the space between = and 2 You cut here.
  • the space between = and 2 You kept this together. Snip made a cut here.
  • the space between 1 and = Snip made a cut here.
  • between = and = Snip kept these characters together.
  • the space between = and 2 Snip made a cut here.

Snip

Think you've got the hang of it?

Your strip
Compare with Snip's stripClose the record and cut again

Actual token record from the Topaz 5.21.1 compiler

The pieces you made

Snip's pieces

  1. 12
  2. +
  3. 34

Take a look at where the two strips differ.

Your strip matches Snip's.

This time, there are 3 pieces.

  • between 1 and 2 You cut here. Snip kept these characters together.
  • between 1 and 2 You kept this together.
  • between 2 and + You cut here.
  • between 2 and + You kept this together. Snip made a cut here.
  • between + and 3 You cut here.
  • between + and 3 You kept this together. Snip made a cut here.
  • between 3 and 4 You cut here. Snip kept these characters together.
  • between 3 and 4 You kept this together.
  • between 1 and 2 Snip kept these characters together.
  • between 2 and + Snip made a cut here.
  • between + and 3 Snip made a cut here.
  • between 3 and 4 Snip kept these characters together.
See what we noticed

What we found

Spaces aren't the only places where code can be split.

In these expressions, digits such as 12 and 100 stay together. Even a two-character symbol like == can be one piece.

The compiler calls pieces like these tokens.

Want to see Snip's first day with the scissors?

Episode 1 Liney's First Day at Work

Grammar Puzzle

Can you make a tree by removing one piece or adding a single 3?

Twig

I couldn't get this bundle to fit together.

Want to try your own idea?

  • Tap one piece to remove it.
  • Or tap one of the gaps to put a 3 there.
  • You get one change at a time.
Send it to TwigClose the record and try another change

1 + * 2

Twig

It got stuck here again.

Plain explanation

The compiler needed an expression here, but the next piece didn't fit.

Topaz compiler 5.21.1 observation

The compiler's original diagnostic

TPZ2001 error

expected an expression

The position it points to

cell 5 *

+ * 2

Twig

It got stuck here again.

Plain explanation

The compiler needed an expression here, but the next piece didn't fit.

Topaz compiler 5.21.1 observation

The compiler's original diagnostic

TPZ2001 error

expected an expression

The position it points to

cell 3 *

1 * 2

Twig

This one fits together.

You can also explore the structure recorded by the Topaz compiler.

See the real syntax tree
Topaz compiler 5.21.1 observation

expression/binaryoperator multiply

joins two values · times

  • left

    expression/integer1

    number

  • right

    expression/integer2

    number

Is there another way?

Other fixes found in the records
  • 1 + 2
  • 1 + 3 * 2

1 + 2

Twig

This one fits together.

You can also explore the structure recorded by the Topaz compiler.

See the real syntax tree
Topaz compiler 5.21.1 observation

expression/binaryoperator add

joins two values · plus

  • left

    expression/integer1

    number

  • right

    expression/integer2

    number

Is there another way?

Other fixes found in the records
  • 1 * 2
  • 1 + 3 * 2

1 + *

Twig

It got stuck here again.

Plain explanation

The compiler needed an expression here, but the next piece didn't fit.

Topaz compiler 5.21.1 observation

The compiler's original diagnostic

TPZ2001 error

expected an expression

The position it points to

cell 5 *

3 1 + * 2

Twig

It got stuck here again.

Plain explanation

Another value appeared right after the first one.

The compiler couldn't find the required separation between them.

Topaz compiler 5.21.1 observation

The compiler's original diagnostic

TPZ2001 error

expected a statement separator

The position it points to

cell 3 1

1 3 + * 2

Twig

It got stuck here again.

Plain explanation

Another value appeared right after the first one.

The compiler couldn't find the required separation between them.

Topaz compiler 5.21.1 observation

The compiler's original diagnostic

TPZ2001 error

expected a statement separator

The position it points to

cell 3 3

1 + 3 * 2

Twig

This one fits together.

You can also explore the structure recorded by the Topaz compiler.

See the real syntax tree
Topaz compiler 5.21.1 observation

expression/binaryoperator add

joins two values · plus

  • left

    expression/integer1

    number

  • right

    expression/binaryoperator multiply

    joins two values · times

    • left

      expression/integer3

      number

    • right

      expression/integer2

      number

Is there another way?

Other fixes found in the records
  • 1 * 2
  • 1 + 2

1 + * 3 2

Twig

It got stuck here again.

Plain explanation

The compiler needed an expression here, but the next piece didn't fit.

Topaz compiler 5.21.1 observation

The compiler's original diagnostic

TPZ2001 error

expected an expression

The position it points to

cell 5 *

1 + * 2 3

Twig

It got stuck here again.

Plain explanation

The compiler needed an expression here, but the next piece didn't fit.

Topaz compiler 5.21.1 observation

The compiler's original diagnostic

TPZ2001 error

expected an expression

The position it points to

cell 5 *

What we found

A small change can give the compiler a structure it can build.

But when the pieces don't fit the grammar, it cannot finish that structure. It reports where it found a problem.

Want to see Twig's first tree-building adventure?

Episode 2 Twig's Assembly Time

Inside Story Microscope

Open the records from the stories exactly as the compiler wrote them.

1 + 2 token record tokens.jsonl

We recorded this example for Episode 4.

The lines appear in the order Topaz wrote them in the file.

  1. {"kind":"integer","ordinal":0,"schema":"topaz.compiler.tokens/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","sourceOrdinal":0,"span":{"hi":1,"lo":0,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":"1","stream":"raw","synthetic":false}
  2. {"kind":"plus","ordinal":1,"schema":"topaz.compiler.tokens/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","sourceOrdinal":0,"span":{"hi":3,"lo":2,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":"+","stream":"raw","synthetic":false}
  3. {"kind":"integer","ordinal":2,"schema":"topaz.compiler.tokens/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","sourceOrdinal":0,"span":{"hi":5,"lo":4,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":"2","stream":"raw","synthetic":false}
  4. {"kind":"newline","ordinal":3,"schema":"topaz.compiler.tokens/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","sourceOrdinal":0,"span":{"hi":6,"lo":5,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":"\n","stream":"raw","synthetic":false}
  5. {"kind":"eof","ordinal":4,"schema":"topaz.compiler.tokens/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","sourceOrdinal":0,"span":{"hi":6,"lo":6,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":"","stream":"raw","synthetic":false}
  6. {"kind":"integer","ordinal":0,"schema":"topaz.compiler.tokens/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","sourceOrdinal":0,"span":{"hi":1,"lo":0,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":"1","stream":"layout","synthetic":false}
  7. {"kind":"plus","ordinal":1,"schema":"topaz.compiler.tokens/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","sourceOrdinal":0,"span":{"hi":3,"lo":2,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":"+","stream":"layout","synthetic":false}
  8. {"kind":"integer","ordinal":2,"schema":"topaz.compiler.tokens/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","sourceOrdinal":0,"span":{"hi":5,"lo":4,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":"2","stream":"layout","synthetic":false}
  9. {"kind":"eof","ordinal":3,"schema":"topaz.compiler.tokens/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","sourceOrdinal":0,"span":{"hi":6,"lo":6,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":"","stream":"layout","synthetic":false}

tokens.jsonl 2841 bytes sha256:97356c5c773c4714a3cc87d90cd6cf7f77729855cac2c7543b5448f0db4d38fd

Open this file exactly as it was written, opens in a new tab

Compared Topaz compiler versions 5.21.0 and 5.21.1

This file had the same bytes in both versions.

Version
Topaz compiler 5.21.1 topaz-lang@5.21.1
Compiler that made it
topaz-native-k compiler.producer
Command
topaz compiler observe inputs/w1/main.tpz --out-dir out/w1 --compiler self --terminal rust-source
Input hash
sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
Observation details
Input name
w1
Observation commit
96aa9d8
Input bytes
31 20 2b 20 32 0a
Record schema
topaz.compiler.tokens/v1
Show the 14 files of the bundle
FileSizeHash
ast.jsonl2311 bytessha256:fe5b13011321da001156cfc25727a6180e740167bcc94195388aa4ffc891d929
diagnostics.jsonl0 bytessha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl3332 bytessha256:26968c7c119ad38d2e26b93fb70e69fb4f311aff8c5da0aad43c70ea3de16d23
provenance.json1395 bytessha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1155 bytessha256:2860e9c21cf1c0a8aa86c80c7013c621df29fd8c41d45624fff4acdbd95ad382
resolved.jsonl747 bytessha256:9828e89b129b3be509a9465698d6caa813bd801b415170224292278563b7d41b
response.json1020 bytessha256:72e3e8708917a0f897f4466d0a7872da3178a16a6c93c721f2876cd84defa5b4
rust-source.jsonlFor this file, you can see its name, size and hash.7722 bytessha256:51ca84a2cd85b1520fc1a734b0c9ab7edb987736086028c69abd019f0cdb63b3
self-compilation-product.json2418 bytessha256:c3cbfad3539faadabac5d7f6128e36d75d4668c9c10117f245caaeb848249b6a
source-set.jsonl935 bytessha256:02ed379005b32ab40416fff78b46ccdbe54e891e1795c75253299e04472eaac5
sources/000000.tpz6 bytessha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
tokens.jsonl2841 bytessha256:97356c5c773c4714a3cc87d90cd6cf7f77729855cac2c7543b5448f0db4d38fd
topaz-observation.jsonThe listing file's own size and hash come from its bytes.2304 bytessha256:245f50ad3bbf0197a8e2a92838c007a78303057e316a6016cab110a40b04ae84
typed.jsonl1238 bytessha256:e57b1d4e30111eef8639b7cf460c35280dd91ddebf4c6bae3bc671d9c3f3fb7e

Bundle rootDigest sha256:bfeb4b4d1e491242f6c8606ff62e42298ea0d13f7df451d3f6707ddbdb12a506

1 + 2 tree record ast.jsonl

We recorded this example for Episode 4.

The lines appear in the order Topaz wrote them in the file.

  1. {"field":"root","index":0,"kind":"program","nodeId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf#n00000000","parentNodeId":null,"schema":"topaz.compiler.ast/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","span":{"hi":6,"lo":0,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":""}
  2. {"field":"items","index":0,"kind":"statement/expression","nodeId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf#n00000001","parentNodeId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf#n00000000","schema":"topaz.compiler.ast/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","span":{"hi":5,"lo":0,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":""}
  3. {"field":"value","index":0,"kind":"expression/binary","nodeId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf#n00000002","operator":"add","parentNodeId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf#n00000001","schema":"topaz.compiler.ast/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","span":{"hi":5,"lo":0,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":""}
  4. {"field":"left","index":0,"kind":"expression/integer","nodeId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf#n00000003","parentNodeId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf#n00000002","schema":"topaz.compiler.ast/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","span":{"hi":1,"lo":0,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":"1","valueDecimal":"1"}
  5. {"field":"right","index":0,"kind":"expression/integer","nodeId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf#n00000004","parentNodeId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf#n00000002","schema":"topaz.compiler.ast/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","span":{"hi":5,"lo":4,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"spelling":"2","valueDecimal":"2"}

ast.jsonl 2311 bytes sha256:fe5b13011321da001156cfc25727a6180e740167bcc94195388aa4ffc891d929

Open this file exactly as it was written, opens in a new tab

Compared Topaz compiler versions 5.21.0 and 5.21.1

This file had the same bytes in both versions.

Version
Topaz compiler 5.21.1 topaz-lang@5.21.1
Compiler that made it
topaz-native-k compiler.producer
Command
topaz compiler observe inputs/w1/main.tpz --out-dir out/w1 --compiler self --terminal rust-source
Input hash
sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
Observation details
Input name
w1
Observation commit
96aa9d8
Input bytes
31 20 2b 20 32 0a
Record schema
topaz.compiler.ast/v1
Show the 14 files of the bundle
FileSizeHash
ast.jsonl2311 bytessha256:fe5b13011321da001156cfc25727a6180e740167bcc94195388aa4ffc891d929
diagnostics.jsonl0 bytessha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl3332 bytessha256:26968c7c119ad38d2e26b93fb70e69fb4f311aff8c5da0aad43c70ea3de16d23
provenance.json1395 bytessha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1155 bytessha256:2860e9c21cf1c0a8aa86c80c7013c621df29fd8c41d45624fff4acdbd95ad382
resolved.jsonl747 bytessha256:9828e89b129b3be509a9465698d6caa813bd801b415170224292278563b7d41b
response.json1020 bytessha256:72e3e8708917a0f897f4466d0a7872da3178a16a6c93c721f2876cd84defa5b4
rust-source.jsonlFor this file, you can see its name, size and hash.7722 bytessha256:51ca84a2cd85b1520fc1a734b0c9ab7edb987736086028c69abd019f0cdb63b3
self-compilation-product.json2418 bytessha256:c3cbfad3539faadabac5d7f6128e36d75d4668c9c10117f245caaeb848249b6a
source-set.jsonl935 bytessha256:02ed379005b32ab40416fff78b46ccdbe54e891e1795c75253299e04472eaac5
sources/000000.tpz6 bytessha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
tokens.jsonl2841 bytessha256:97356c5c773c4714a3cc87d90cd6cf7f77729855cac2c7543b5448f0db4d38fd
topaz-observation.jsonThe listing file's own size and hash come from its bytes.2304 bytessha256:245f50ad3bbf0197a8e2a92838c007a78303057e316a6016cab110a40b04ae84
typed.jsonl1238 bytessha256:e57b1d4e30111eef8639b7cf460c35280dd91ddebf4c6bae3bc671d9c3f3fb7e

Bundle rootDigest sha256:bfeb4b4d1e491242f6c8606ff62e42298ea0d13f7df451d3f6707ddbdb12a506

1 + 2 type record typed.jsonl

We recorded this example for Episode 4.

The lines appear in the order Topaz wrote them in the file.

  1. {"ambient":false,"nodeId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf#n00000003","nodeKind":"expression","rowKind":"node","schema":"topaz.compiler.typed/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","span":{"hi":1,"lo":0,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"type":{"kind":"literal","name":"int","value":"1"}}
  2. {"ambient":false,"nodeId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf#n00000001","nodeKind":"expression","rowKind":"node","schema":"topaz.compiler.typed/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","span":{"hi":5,"lo":0,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"type":{"kind":"primitive","name":"int"}}
  3. {"ambient":false,"nodeId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf#n00000004","nodeKind":"expression","rowKind":"node","schema":"topaz.compiler.typed/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf","span":{"hi":5,"lo":4,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"},"type":{"kind":"literal","name":"int","value":"2"}}

typed.jsonl 1238 bytes sha256:e57b1d4e30111eef8639b7cf460c35280dd91ddebf4c6bae3bc671d9c3f3fb7e

Open this file exactly as it was written, opens in a new tab

Compared Topaz compiler versions 5.21.0 and 5.21.1

This file had the same bytes in both versions.

Version
Topaz compiler 5.21.1 topaz-lang@5.21.1
Compiler that made it
topaz-native-k compiler.producer
Command
topaz compiler observe inputs/w1/main.tpz --out-dir out/w1 --compiler self --terminal rust-source
Input hash
sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
Observation details
Input name
w1
Observation commit
96aa9d8
Input bytes
31 20 2b 20 32 0a
Record schema
topaz.compiler.typed/v1
Show the 14 files of the bundle
FileSizeHash
ast.jsonl2311 bytessha256:fe5b13011321da001156cfc25727a6180e740167bcc94195388aa4ffc891d929
diagnostics.jsonl0 bytessha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl3332 bytessha256:26968c7c119ad38d2e26b93fb70e69fb4f311aff8c5da0aad43c70ea3de16d23
provenance.json1395 bytessha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1155 bytessha256:2860e9c21cf1c0a8aa86c80c7013c621df29fd8c41d45624fff4acdbd95ad382
resolved.jsonl747 bytessha256:9828e89b129b3be509a9465698d6caa813bd801b415170224292278563b7d41b
response.json1020 bytessha256:72e3e8708917a0f897f4466d0a7872da3178a16a6c93c721f2876cd84defa5b4
rust-source.jsonlFor this file, you can see its name, size and hash.7722 bytessha256:51ca84a2cd85b1520fc1a734b0c9ab7edb987736086028c69abd019f0cdb63b3
self-compilation-product.json2418 bytessha256:c3cbfad3539faadabac5d7f6128e36d75d4668c9c10117f245caaeb848249b6a
source-set.jsonl935 bytessha256:02ed379005b32ab40416fff78b46ccdbe54e891e1795c75253299e04472eaac5
sources/000000.tpz6 bytessha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
tokens.jsonl2841 bytessha256:97356c5c773c4714a3cc87d90cd6cf7f77729855cac2c7543b5448f0db4d38fd
topaz-observation.jsonThe listing file's own size and hash come from its bytes.2304 bytessha256:245f50ad3bbf0197a8e2a92838c007a78303057e316a6016cab110a40b04ae84
typed.jsonl1238 bytessha256:e57b1d4e30111eef8639b7cf460c35280dd91ddebf4c6bae3bc671d9c3f3fb7e

Bundle rootDigest sha256:bfeb4b4d1e491242f6c8606ff62e42298ea0d13f7df451d3f6707ddbdb12a506

1 + 2 operation record lowered.jsonl

We recorded this example for Episode 4.

These 8 lines appear in file order. 5 describe operations. The other 3 describe the module, a runtime part it needs and the runtime template.

  1. {"entry":true,"extern":false,"identity":"main","initializationOrdinal":0,"operationIds":["op:main:0:0:6:ModuleInitialization:module","op:main:0:0:5:Statement:expression-statement","op:main:0:0:5:Expression:binary","op:main:0:0:1:Expression:integer","op:main:0:4:5:Expression:integer"],"path":"inputs/w1/main.tpz","rowKind":"module","schema":"topaz.compiler.lowered/v1","sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"}The module
  2. {"deterministic":true,"identity":"binary","rowKind":"runtime-leaf","schema":"topaz.compiler.lowered/v1"}A runtime part it needs
  3. {"identity":"stage1-ir-table/v1","rowKind":"runtime-template","schema":"topaz.compiler.lowered/v1","sha256":"sha256:79b4af8e5544a04eb021fe093dda38ed15b655e8dc56faef151807a8cb925d74"}The runtime template
  4. {"binding":null,"call":null,"control":null,"detail":null,"kind":"module","module":"main","operands":["op:main:0:0:5:Statement:expression-statement"],"operationId":"op:main:0:0:6:ModuleInitialization:module","parentOperationId":null,"representation":null,"role":"module-initialization","rowKind":"operation","runtimeLeaf":null,"schema":"topaz.compiler.lowered/v1","semanticType":null,"span":{"hi":6,"lo":0,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"}}Operation 1 · Getting the program ready
  5. {"binding":null,"call":null,"control":null,"detail":{"detail":null,"expressionKind":"block"},"kind":"expression","module":"main","operands":["op:main:0:0:5:Expression:binary"],"operationId":"op:main:0:0:5:Statement:expression-statement","parentOperationId":"op:main:0:0:6:ModuleInitialization:module","representation":"i64","role":"statement","rowKind":"operation","runtimeLeaf":null,"schema":"topaz.compiler.lowered/v1","semanticType":null,"span":{"hi":5,"lo":0,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"}}Operation 2 · The statement holding the expression
  6. {"binding":null,"call":null,"control":null,"detail":{"detail":"add","expressionKind":"binary"},"kind":"expression","module":"main","operands":["op:main:0:0:1:Expression:integer","op:main:0:4:5:Expression:integer"],"operationId":"op:main:0:0:5:Expression:binary","parentOperationId":"op:main:0:0:5:Statement:expression-statement","representation":"i64","role":"expression","rowKind":"operation","runtimeLeaf":"binary","schema":"topaz.compiler.lowered/v1","semanticType":null,"span":{"hi":5,"lo":0,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"}}Operation 3 · An operation on two values
  7. {"binding":null,"call":null,"control":null,"detail":{"detail":"1","expressionKind":"integer"},"kind":"expression","module":"main","operands":[],"operationId":"op:main:0:0:1:Expression:integer","parentOperationId":"op:main:0:0:5:Expression:binary","representation":"i64","role":"expression","rowKind":"operation","runtimeLeaf":null,"schema":"topaz.compiler.lowered/v1","semanticType":null,"span":{"hi":1,"lo":0,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"}}Operation 4 · A whole number
  8. {"binding":null,"call":null,"control":null,"detail":{"detail":"2","expressionKind":"integer"},"kind":"expression","module":"main","operands":[],"operationId":"op:main:0:4:5:Expression:integer","parentOperationId":"op:main:0:0:5:Expression:binary","representation":"i64","role":"expression","rowKind":"operation","runtimeLeaf":null,"schema":"topaz.compiler.lowered/v1","semanticType":null,"span":{"hi":5,"lo":4,"sourceId":"s:b0bf3d44f5dfbd643a64c8c7f820dff43e2af8c25d85ec0045202129687b06cf"}}Operation 5 · A whole number

Episode 4's cards follow the order Topaz wrote the operations to the file.

The + itself takes up cell 3 of the source. The addition operation covers the whole expression, cells 1 to 5.

The statement and addition operations cover the same source range. The statement points to the addition, and the addition points to the two integer operations.

The type record gives 1, 2 and the expression 1 + 2 the type int. Those three operations have i64 in representation. That means a signed 64-bit integer representation. The outermost operation, module initialization, has no representation value.

The outermost operation, module initialization, covers the line feed (LF) at the end of the line too.

lowered.jsonl 3332 bytes sha256:26968c7c119ad38d2e26b93fb70e69fb4f311aff8c5da0aad43c70ea3de16d23

Open this file exactly as it was written, opens in a new tab

Compared Topaz compiler versions 5.21.0 and 5.21.1

This file had the same bytes in both versions.

Version
Topaz compiler 5.21.1 topaz-lang@5.21.1
Compiler that made it
topaz-native-k compiler.producer
Command
topaz compiler observe inputs/w1/main.tpz --out-dir out/w1 --compiler self --terminal rust-source
Input hash
sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
Observation details
Input name
w1
Observation commit
96aa9d8
Input bytes
31 20 2b 20 32 0a
Record schema
topaz.compiler.lowered/v1
Runtime template
stage1-ir-table/v1
IR schema
topaz.compiler.stage1-ir/v5 compiler.irSchema
Show the 14 files of the bundle
FileSizeHash
ast.jsonl2311 bytessha256:fe5b13011321da001156cfc25727a6180e740167bcc94195388aa4ffc891d929
diagnostics.jsonl0 bytessha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl3332 bytessha256:26968c7c119ad38d2e26b93fb70e69fb4f311aff8c5da0aad43c70ea3de16d23
provenance.json1395 bytessha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1155 bytessha256:2860e9c21cf1c0a8aa86c80c7013c621df29fd8c41d45624fff4acdbd95ad382
resolved.jsonl747 bytessha256:9828e89b129b3be509a9465698d6caa813bd801b415170224292278563b7d41b
response.json1020 bytessha256:72e3e8708917a0f897f4466d0a7872da3178a16a6c93c721f2876cd84defa5b4
rust-source.jsonlFor this file, you can see its name, size and hash.7722 bytessha256:51ca84a2cd85b1520fc1a734b0c9ab7edb987736086028c69abd019f0cdb63b3
self-compilation-product.json2418 bytessha256:c3cbfad3539faadabac5d7f6128e36d75d4668c9c10117f245caaeb848249b6a
source-set.jsonl935 bytessha256:02ed379005b32ab40416fff78b46ccdbe54e891e1795c75253299e04472eaac5
sources/000000.tpz6 bytessha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
tokens.jsonl2841 bytessha256:97356c5c773c4714a3cc87d90cd6cf7f77729855cac2c7543b5448f0db4d38fd
topaz-observation.jsonThe listing file's own size and hash come from its bytes.2304 bytessha256:245f50ad3bbf0197a8e2a92838c007a78303057e316a6016cab110a40b04ae84
typed.jsonl1238 bytessha256:e57b1d4e30111eef8639b7cf460c35280dd91ddebf4c6bae3bc671d9c3f3fb7e

Bundle rootDigest sha256:bfeb4b4d1e491242f6c8606ff62e42298ea0d13f7df451d3f6707ddbdb12a506

1 + 2 * 3 token record tokens.jsonl

We recorded this example for Episode 4.

The lines appear in the order Topaz wrote them in the file.

  1. {"kind":"integer","ordinal":0,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":1,"lo":0,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"1","stream":"raw","synthetic":false}
  2. {"kind":"plus","ordinal":1,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":3,"lo":2,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"+","stream":"raw","synthetic":false}
  3. {"kind":"integer","ordinal":2,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":5,"lo":4,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"2","stream":"raw","synthetic":false}
  4. {"kind":"star","ordinal":3,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":7,"lo":6,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"*","stream":"raw","synthetic":false}
  5. {"kind":"integer","ordinal":4,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":9,"lo":8,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"3","stream":"raw","synthetic":false}
  6. {"kind":"newline","ordinal":5,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":10,"lo":9,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"\n","stream":"raw","synthetic":false}
  7. {"kind":"eof","ordinal":6,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":10,"lo":10,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"","stream":"raw","synthetic":false}
  8. {"kind":"integer","ordinal":0,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":1,"lo":0,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"1","stream":"layout","synthetic":false}
  9. {"kind":"plus","ordinal":1,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":3,"lo":2,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"+","stream":"layout","synthetic":false}
  10. {"kind":"integer","ordinal":2,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":5,"lo":4,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"2","stream":"layout","synthetic":false}
  11. {"kind":"star","ordinal":3,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":7,"lo":6,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"*","stream":"layout","synthetic":false}
  12. {"kind":"integer","ordinal":4,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":9,"lo":8,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"3","stream":"layout","synthetic":false}
  13. {"kind":"eof","ordinal":5,"schema":"topaz.compiler.tokens/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","sourceOrdinal":0,"span":{"hi":10,"lo":10,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"","stream":"layout","synthetic":false}

tokens.jsonl 4110 bytes sha256:b9baaa0fba5b5e6df960627284d174a33c2651a1740bace189f3b46bd7f25953

Open this file exactly as it was written, opens in a new tab

Compared Topaz compiler versions 5.21.0 and 5.21.1

This file had the same bytes in both versions.

Version
Topaz compiler 5.21.1 topaz-lang@5.21.1
Compiler that made it
topaz-native-k compiler.producer
Command
topaz compiler observe inputs/w3/main.tpz --out-dir out/w3 --compiler self --terminal rust-source
Input hash
sha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
Observation details
Input name
w3
Observation commit
96aa9d8
Input bytes
31 20 2b 20 32 20 2a 20 33 0a
Record schema
topaz.compiler.tokens/v1
Show the 14 files of the bundle
FileSizeHash
ast.jsonl3288 bytessha256:9a7c4b7d6189ef10560f211fec2dad9a3bb5437598beac86aa2217fcfa70ee47
diagnostics.jsonl0 bytessha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl4466 bytessha256:1159c174cf94ad280cbf8a823ec74767e29c3624afa0ff9edbf53b05a8f34eba
provenance.json1395 bytessha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1156 bytessha256:ae361d2ae0bb215014450dd296203ba2de06b552cf3e76cb8ccaf0c18253b26f
resolved.jsonl748 bytessha256:dc1436b30f79bf7f2f8342cfb2c892b0542e1998f09720cadef8b743000ce2cc
response.json1020 bytessha256:1440edb4389b802f2cb2f966e80647e52fb3135b62e2aee21c0013bc3748f0f4
rust-source.jsonlFor this file, you can see its name, size and hash.10287 bytessha256:6910e188573d6837c47d0f9dbbdb02b70d4a8f06334c0dbde7997aab7d4cbe6f
self-compilation-product.json2418 bytessha256:891a8be1f7257ef9975d8e0aef8d50cde243f77467ec2963a06c3fef111bd387
source-set.jsonl937 bytessha256:c8a7ab1c4685022be2ce82fca21540149f7826f23e4390c053eeeded317511ed
sources/000000.tpz10 bytessha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
tokens.jsonl4110 bytessha256:b9baaa0fba5b5e6df960627284d174a33c2651a1740bace189f3b46bd7f25953
topaz-observation.jsonThe listing file's own size and hash come from its bytes.2306 bytessha256:52ebc7b3172f0ab19c4ae0111edecb1787c44edb08d2b0bf0f7b22e2bdd9217c
typed.jsonl2060 bytessha256:c4b0af2d43aa0cb381ef49acca1b6eaf5d8681e251c23c96c576c34fedccb42e

Bundle rootDigest sha256:c4824db06dd2bcc366173cfe66ffb7756c48a8667aded16080a842f414082f7c

1 + 2 * 3 tree record ast.jsonl

We recorded this example for Episode 4.

The lines appear in the order Topaz wrote them in the file.

  1. {"field":"root","index":0,"kind":"program","nodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000000","parentNodeId":null,"schema":"topaz.compiler.ast/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","span":{"hi":10,"lo":0,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":""}
  2. {"field":"items","index":0,"kind":"statement/expression","nodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000001","parentNodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000000","schema":"topaz.compiler.ast/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","span":{"hi":9,"lo":0,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":""}
  3. {"field":"value","index":0,"kind":"expression/binary","nodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000002","operator":"add","parentNodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000001","schema":"topaz.compiler.ast/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","span":{"hi":9,"lo":0,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":""}
  4. {"field":"left","index":0,"kind":"expression/integer","nodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000003","parentNodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000002","schema":"topaz.compiler.ast/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","span":{"hi":1,"lo":0,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"1","valueDecimal":"1"}
  5. {"field":"right","index":0,"kind":"expression/binary","nodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000004","operator":"multiply","parentNodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000002","schema":"topaz.compiler.ast/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","span":{"hi":9,"lo":4,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":""}
  6. {"field":"left","index":0,"kind":"expression/integer","nodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000005","parentNodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000004","schema":"topaz.compiler.ast/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","span":{"hi":5,"lo":4,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"2","valueDecimal":"2"}
  7. {"field":"right","index":0,"kind":"expression/integer","nodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000006","parentNodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000004","schema":"topaz.compiler.ast/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","span":{"hi":9,"lo":8,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"spelling":"3","valueDecimal":"3"}

ast.jsonl 3288 bytes sha256:9a7c4b7d6189ef10560f211fec2dad9a3bb5437598beac86aa2217fcfa70ee47

Open this file exactly as it was written, opens in a new tab

Compared Topaz compiler versions 5.21.0 and 5.21.1

This file had the same bytes in both versions.

Version
Topaz compiler 5.21.1 topaz-lang@5.21.1
Compiler that made it
topaz-native-k compiler.producer
Command
topaz compiler observe inputs/w3/main.tpz --out-dir out/w3 --compiler self --terminal rust-source
Input hash
sha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
Observation details
Input name
w3
Observation commit
96aa9d8
Input bytes
31 20 2b 20 32 20 2a 20 33 0a
Record schema
topaz.compiler.ast/v1
Show the 14 files of the bundle
FileSizeHash
ast.jsonl3288 bytessha256:9a7c4b7d6189ef10560f211fec2dad9a3bb5437598beac86aa2217fcfa70ee47
diagnostics.jsonl0 bytessha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl4466 bytessha256:1159c174cf94ad280cbf8a823ec74767e29c3624afa0ff9edbf53b05a8f34eba
provenance.json1395 bytessha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1156 bytessha256:ae361d2ae0bb215014450dd296203ba2de06b552cf3e76cb8ccaf0c18253b26f
resolved.jsonl748 bytessha256:dc1436b30f79bf7f2f8342cfb2c892b0542e1998f09720cadef8b743000ce2cc
response.json1020 bytessha256:1440edb4389b802f2cb2f966e80647e52fb3135b62e2aee21c0013bc3748f0f4
rust-source.jsonlFor this file, you can see its name, size and hash.10287 bytessha256:6910e188573d6837c47d0f9dbbdb02b70d4a8f06334c0dbde7997aab7d4cbe6f
self-compilation-product.json2418 bytessha256:891a8be1f7257ef9975d8e0aef8d50cde243f77467ec2963a06c3fef111bd387
source-set.jsonl937 bytessha256:c8a7ab1c4685022be2ce82fca21540149f7826f23e4390c053eeeded317511ed
sources/000000.tpz10 bytessha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
tokens.jsonl4110 bytessha256:b9baaa0fba5b5e6df960627284d174a33c2651a1740bace189f3b46bd7f25953
topaz-observation.jsonThe listing file's own size and hash come from its bytes.2306 bytessha256:52ebc7b3172f0ab19c4ae0111edecb1787c44edb08d2b0bf0f7b22e2bdd9217c
typed.jsonl2060 bytessha256:c4b0af2d43aa0cb381ef49acca1b6eaf5d8681e251c23c96c576c34fedccb42e

Bundle rootDigest sha256:c4824db06dd2bcc366173cfe66ffb7756c48a8667aded16080a842f414082f7c

1 + 2 * 3 type record typed.jsonl

We recorded this example for Episode 4.

The lines appear in the order Topaz wrote them in the file.

  1. {"ambient":false,"nodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000003","nodeKind":"expression","rowKind":"node","schema":"topaz.compiler.typed/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","span":{"hi":1,"lo":0,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"type":{"kind":"literal","name":"int","value":"1"}}
  2. {"ambient":false,"nodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000001","nodeKind":"expression","rowKind":"node","schema":"topaz.compiler.typed/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","span":{"hi":9,"lo":0,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"type":{"kind":"primitive","name":"int"}}
  3. {"ambient":false,"nodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000005","nodeKind":"expression","rowKind":"node","schema":"topaz.compiler.typed/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","span":{"hi":5,"lo":4,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"type":{"kind":"literal","name":"int","value":"2"}}
  4. {"ambient":false,"nodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000004","nodeKind":"expression","rowKind":"node","schema":"topaz.compiler.typed/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","span":{"hi":9,"lo":4,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"type":{"kind":"primitive","name":"int"}}
  5. {"ambient":false,"nodeId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139#n00000006","nodeKind":"expression","rowKind":"node","schema":"topaz.compiler.typed/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139","span":{"hi":9,"lo":8,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"},"type":{"kind":"literal","name":"int","value":"3"}}

typed.jsonl 2060 bytes sha256:c4b0af2d43aa0cb381ef49acca1b6eaf5d8681e251c23c96c576c34fedccb42e

Open this file exactly as it was written, opens in a new tab

Compared Topaz compiler versions 5.21.0 and 5.21.1

This file had the same bytes in both versions.

Version
Topaz compiler 5.21.1 topaz-lang@5.21.1
Compiler that made it
topaz-native-k compiler.producer
Command
topaz compiler observe inputs/w3/main.tpz --out-dir out/w3 --compiler self --terminal rust-source
Input hash
sha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
Observation details
Input name
w3
Observation commit
96aa9d8
Input bytes
31 20 2b 20 32 20 2a 20 33 0a
Record schema
topaz.compiler.typed/v1
Show the 14 files of the bundle
FileSizeHash
ast.jsonl3288 bytessha256:9a7c4b7d6189ef10560f211fec2dad9a3bb5437598beac86aa2217fcfa70ee47
diagnostics.jsonl0 bytessha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl4466 bytessha256:1159c174cf94ad280cbf8a823ec74767e29c3624afa0ff9edbf53b05a8f34eba
provenance.json1395 bytessha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1156 bytessha256:ae361d2ae0bb215014450dd296203ba2de06b552cf3e76cb8ccaf0c18253b26f
resolved.jsonl748 bytessha256:dc1436b30f79bf7f2f8342cfb2c892b0542e1998f09720cadef8b743000ce2cc
response.json1020 bytessha256:1440edb4389b802f2cb2f966e80647e52fb3135b62e2aee21c0013bc3748f0f4
rust-source.jsonlFor this file, you can see its name, size and hash.10287 bytessha256:6910e188573d6837c47d0f9dbbdb02b70d4a8f06334c0dbde7997aab7d4cbe6f
self-compilation-product.json2418 bytessha256:891a8be1f7257ef9975d8e0aef8d50cde243f77467ec2963a06c3fef111bd387
source-set.jsonl937 bytessha256:c8a7ab1c4685022be2ce82fca21540149f7826f23e4390c053eeeded317511ed
sources/000000.tpz10 bytessha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
tokens.jsonl4110 bytessha256:b9baaa0fba5b5e6df960627284d174a33c2651a1740bace189f3b46bd7f25953
topaz-observation.jsonThe listing file's own size and hash come from its bytes.2306 bytessha256:52ebc7b3172f0ab19c4ae0111edecb1787c44edb08d2b0bf0f7b22e2bdd9217c
typed.jsonl2060 bytessha256:c4b0af2d43aa0cb381ef49acca1b6eaf5d8681e251c23c96c576c34fedccb42e

Bundle rootDigest sha256:c4824db06dd2bcc366173cfe66ffb7756c48a8667aded16080a842f414082f7c

1 + 2 * 3 operation record lowered.jsonl

We recorded this example for Episode 4.

These 10 lines appear in file order. 7 describe operations. The other 3 describe the module, a runtime part it needs and the runtime template.

  1. {"entry":true,"extern":false,"identity":"main","initializationOrdinal":0,"operationIds":["op:main:0:0:10:ModuleInitialization:module","op:main:0:0:9:Statement:expression-statement","op:main:0:0:9:Expression:binary","op:main:0:0:1:Expression:integer","op:main:0:4:9:Expression:binary","op:main:0:4:5:Expression:integer","op:main:0:8:9:Expression:integer"],"path":"inputs/w3/main.tpz","rowKind":"module","schema":"topaz.compiler.lowered/v1","sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"}The module
  2. {"deterministic":true,"identity":"binary","rowKind":"runtime-leaf","schema":"topaz.compiler.lowered/v1"}A runtime part it needs
  3. {"identity":"stage1-ir-table/v1","rowKind":"runtime-template","schema":"topaz.compiler.lowered/v1","sha256":"sha256:79b4af8e5544a04eb021fe093dda38ed15b655e8dc56faef151807a8cb925d74"}The runtime template
  4. {"binding":null,"call":null,"control":null,"detail":null,"kind":"module","module":"main","operands":["op:main:0:0:9:Statement:expression-statement"],"operationId":"op:main:0:0:10:ModuleInitialization:module","parentOperationId":null,"representation":null,"role":"module-initialization","rowKind":"operation","runtimeLeaf":null,"schema":"topaz.compiler.lowered/v1","semanticType":null,"span":{"hi":10,"lo":0,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"}}Operation 1 · Getting the program ready
  5. {"binding":null,"call":null,"control":null,"detail":{"detail":null,"expressionKind":"block"},"kind":"expression","module":"main","operands":["op:main:0:0:9:Expression:binary"],"operationId":"op:main:0:0:9:Statement:expression-statement","parentOperationId":"op:main:0:0:10:ModuleInitialization:module","representation":"i64","role":"statement","rowKind":"operation","runtimeLeaf":null,"schema":"topaz.compiler.lowered/v1","semanticType":null,"span":{"hi":9,"lo":0,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"}}Operation 2 · The statement holding the expression
  6. {"binding":null,"call":null,"control":null,"detail":{"detail":"add","expressionKind":"binary"},"kind":"expression","module":"main","operands":["op:main:0:0:1:Expression:integer","op:main:0:4:9:Expression:binary"],"operationId":"op:main:0:0:9:Expression:binary","parentOperationId":"op:main:0:0:9:Statement:expression-statement","representation":"i64","role":"expression","rowKind":"operation","runtimeLeaf":"binary","schema":"topaz.compiler.lowered/v1","semanticType":null,"span":{"hi":9,"lo":0,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"}}Operation 3 · An operation on two values
  7. {"binding":null,"call":null,"control":null,"detail":{"detail":"1","expressionKind":"integer"},"kind":"expression","module":"main","operands":[],"operationId":"op:main:0:0:1:Expression:integer","parentOperationId":"op:main:0:0:9:Expression:binary","representation":"i64","role":"expression","rowKind":"operation","runtimeLeaf":null,"schema":"topaz.compiler.lowered/v1","semanticType":null,"span":{"hi":1,"lo":0,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"}}Operation 4 · A whole number
  8. {"binding":null,"call":null,"control":null,"detail":{"detail":"multiply","expressionKind":"binary"},"kind":"expression","module":"main","operands":["op:main:0:4:5:Expression:integer","op:main:0:8:9:Expression:integer"],"operationId":"op:main:0:4:9:Expression:binary","parentOperationId":"op:main:0:0:9:Expression:binary","representation":"i64","role":"expression","rowKind":"operation","runtimeLeaf":"binary","schema":"topaz.compiler.lowered/v1","semanticType":null,"span":{"hi":9,"lo":4,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"}}Operation 5 · An operation on two values
  9. {"binding":null,"call":null,"control":null,"detail":{"detail":"2","expressionKind":"integer"},"kind":"expression","module":"main","operands":[],"operationId":"op:main:0:4:5:Expression:integer","parentOperationId":"op:main:0:4:9:Expression:binary","representation":"i64","role":"expression","rowKind":"operation","runtimeLeaf":null,"schema":"topaz.compiler.lowered/v1","semanticType":null,"span":{"hi":5,"lo":4,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"}}Operation 6 · A whole number
  10. {"binding":null,"call":null,"control":null,"detail":{"detail":"3","expressionKind":"integer"},"kind":"expression","module":"main","operands":[],"operationId":"op:main:0:8:9:Expression:integer","parentOperationId":"op:main:0:4:9:Expression:binary","representation":"i64","role":"expression","rowKind":"operation","runtimeLeaf":null,"schema":"topaz.compiler.lowered/v1","semanticType":null,"span":{"hi":9,"lo":8,"sourceId":"s:d2e29de08dd3e422f618090b82bff6eaf49af5c4625b06279035b7c3597f6139"}}Operation 7 · A whole number

lowered.jsonl 4466 bytes sha256:1159c174cf94ad280cbf8a823ec74767e29c3624afa0ff9edbf53b05a8f34eba

Open this file exactly as it was written, opens in a new tab

Compared Topaz compiler versions 5.21.0 and 5.21.1

This file had the same bytes in both versions.

Version
Topaz compiler 5.21.1 topaz-lang@5.21.1
Compiler that made it
topaz-native-k compiler.producer
Command
topaz compiler observe inputs/w3/main.tpz --out-dir out/w3 --compiler self --terminal rust-source
Input hash
sha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
Observation details
Input name
w3
Observation commit
96aa9d8
Input bytes
31 20 2b 20 32 20 2a 20 33 0a
Record schema
topaz.compiler.lowered/v1
Runtime template
stage1-ir-table/v1
IR schema
topaz.compiler.stage1-ir/v5 compiler.irSchema
Show the 14 files of the bundle
FileSizeHash
ast.jsonl3288 bytessha256:9a7c4b7d6189ef10560f211fec2dad9a3bb5437598beac86aa2217fcfa70ee47
diagnostics.jsonl0 bytessha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl4466 bytessha256:1159c174cf94ad280cbf8a823ec74767e29c3624afa0ff9edbf53b05a8f34eba
provenance.json1395 bytessha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1156 bytessha256:ae361d2ae0bb215014450dd296203ba2de06b552cf3e76cb8ccaf0c18253b26f
resolved.jsonl748 bytessha256:dc1436b30f79bf7f2f8342cfb2c892b0542e1998f09720cadef8b743000ce2cc
response.json1020 bytessha256:1440edb4389b802f2cb2f966e80647e52fb3135b62e2aee21c0013bc3748f0f4
rust-source.jsonlFor this file, you can see its name, size and hash.10287 bytessha256:6910e188573d6837c47d0f9dbbdb02b70d4a8f06334c0dbde7997aab7d4cbe6f
self-compilation-product.json2418 bytessha256:891a8be1f7257ef9975d8e0aef8d50cde243f77467ec2963a06c3fef111bd387
source-set.jsonl937 bytessha256:c8a7ab1c4685022be2ce82fca21540149f7826f23e4390c053eeeded317511ed
sources/000000.tpz10 bytessha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
tokens.jsonl4110 bytessha256:b9baaa0fba5b5e6df960627284d174a33c2651a1740bace189f3b46bd7f25953
topaz-observation.jsonThe listing file's own size and hash come from its bytes.2306 bytessha256:52ebc7b3172f0ab19c4ae0111edecb1787c44edb08d2b0bf0f7b22e2bdd9217c
typed.jsonl2060 bytessha256:c4b0af2d43aa0cb381ef49acca1b6eaf5d8681e251c23c96c576c34fedccb42e

Bundle rootDigest sha256:c4824db06dd2bcc366173cfe66ffb7756c48a8667aded16080a842f414082f7c

1 + 2 provenance record provenance.json

This provenance file was kept with the bundle we recorded for Episode 4. Episode 6 opens it.

The one raw line

Topaz wrote this file as one line. The table below copies chosen fields from that line so they are easier to read.

  1. {"compiler":{"emitterExecutableSha256":"sha256:bc2077c5467fba81210f641dd4c19c2d01db5a8f4def9bf6d32a81e11a378c2c","emitterToolchain":"rustc 1.96.0 (ac68faa20 2026-05-25)\nbinary: rustc\ncommit-hash: ac68faa20c58cbccd01ee7208bf3b6e93a7d7f96\ncommit-date: 2026-05-25\nhost: x86_64-pc-windows-msvc\nrelease: 1.96.0\nLLVM version: 22.1.2\n","exchangeSchema":"topaz.compiler.stage1-exchange/v2","executionKind":"native","generatedRustSha256":"sha256:5f32cee07a1adea1c67ba8ac8fbd4f3ee4051f019a7856fcdb228740a1d4b8b1","irSchema":"topaz.compiler.stage1-ir/v5","linkToolchain":"rustc 1.96.0 (ac68faa20 2026-05-25)\nbinary: rustc\ncommit-hash: ac68faa20c58cbccd01ee7208bf3b6e93a7d7f96\ncommit-date: 2026-05-25\nhost: aarch64-apple-darwin\nrelease: 1.96.0\nLLVM version: 22.1.2\n","nativeLinkId":"sha256:9096b16d2fc482609ba5bf3e89a0373f7711075bc56350e03d06e6ce1f9b0c5d","producer":"topaz-native-k","producerStage":1,"runtimeSourceSetId":"sha256:85ed8d3b0571c34bc40c3ffd1be8bcda2a539d6c82c92b417c834507200d9c60","sourceSetId":"sha256:17d598ebcb0dea65195aba8c0b3ab20f94003a7f343714f7b1df25d790cdacd5","target":"aarch64-apple-darwin"},"defaultEngine":"self","engine":"topaz-native-k","generatedSourceFixedPoint":"established","languageMode":"topaz-5.21","nativeBinaryReproducibility":"not-run","productVersion":"5.21.1","schema":"topaz.compiler.bootstrap-provenance/v2","semanticFixedPoint":"not-established"}
Fields to read by
FieldValue in the recordWhat it means
enginetopaz-native-kThe name of the compiler implementation that produced the result.
compiler.producertopaz-native-kThe identifier of the producer that made this observation. Here it matches engine.
compiler.producerStage1The stage number written for the producer that made this record.
defaultEngineselfThis release's default choice. The Episode 4 command did say --compiler self.
generatedSourceFixedPointestablishedWhether successive self-compilation stages produced identical generated Rust bytes.
semanticFixedPointnot-establishedWhether a semantic fixed point was established for the compiler's intermediate records.
nativeBinaryReproducibilitynot-runThe comparison of executable bytes.
schematopaz.compiler.bootstrap-provenance/v2The name of the format of this provenance record.
languageModetopaz-5.21The Topaz language mode recorded for this observation.

The first line of compiler.linkToolchain is rustc 1.96.0 (ac68faa20 2026-05-25). It records the tools used to link this compiler.

provenance.json 1395 bytes sha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05

Open this file exactly as it was written, opens in a new tab

Compared Topaz compiler versions 5.21.0 and 5.21.1

The nine fields we compared had the same values in 5.21.0 and 5.21.1.

The two provenance files differed at the byte level.

Version
Topaz compiler 5.21.1 topaz-lang@5.21.1
Compiler that made it
topaz-native-k compiler.producer
Command
topaz compiler observe inputs/w1/main.tpz --out-dir out/w1 --compiler self --terminal rust-source
Input hash
sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807

1 line break 2 line break token record tokens.jsonl

Observed for Episode 7. Topaz wrote both token streams into one file.

The lines are in the order Topaz wrote them. The first 5 are the raw stream, the last 4 the layout stream.

  1. {"kind":"integer","ordinal":0,"schema":"topaz.compiler.tokens/v1","sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db","sourceOrdinal":0,"span":{"hi":1,"lo":0,"sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db"},"spelling":"1","stream":"raw","synthetic":false}
  2. {"kind":"newline","ordinal":1,"schema":"topaz.compiler.tokens/v1","sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db","sourceOrdinal":0,"span":{"hi":2,"lo":1,"sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db"},"spelling":"\n","stream":"raw","synthetic":false}
  3. {"kind":"integer","ordinal":2,"schema":"topaz.compiler.tokens/v1","sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db","sourceOrdinal":0,"span":{"hi":3,"lo":2,"sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db"},"spelling":"2","stream":"raw","synthetic":false}
  4. {"kind":"newline","ordinal":3,"schema":"topaz.compiler.tokens/v1","sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db","sourceOrdinal":0,"span":{"hi":4,"lo":3,"sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db"},"spelling":"\n","stream":"raw","synthetic":false}
  5. {"kind":"eof","ordinal":4,"schema":"topaz.compiler.tokens/v1","sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db","sourceOrdinal":0,"span":{"hi":4,"lo":4,"sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db"},"spelling":"","stream":"raw","synthetic":false}
  6. {"kind":"integer","ordinal":0,"schema":"topaz.compiler.tokens/v1","sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db","sourceOrdinal":0,"span":{"hi":1,"lo":0,"sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db"},"spelling":"1","stream":"layout","synthetic":false}
  7. {"kind":"separator","ordinal":1,"schema":"topaz.compiler.tokens/v1","sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db","sourceOrdinal":0,"span":{"hi":2,"lo":1,"sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db"},"spelling":"\n","stream":"layout","synthetic":true}
  8. {"kind":"integer","ordinal":2,"schema":"topaz.compiler.tokens/v1","sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db","sourceOrdinal":0,"span":{"hi":3,"lo":2,"sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db"},"spelling":"2","stream":"layout","synthetic":false}
  9. {"kind":"eof","ordinal":3,"schema":"topaz.compiler.tokens/v1","sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db","sourceOrdinal":0,"span":{"hi":4,"lo":4,"sourceId":"s:3c3875b9785d34f36fee02fd46e5641728b8c62d830a742987676ae1f36613db"},"spelling":"","stream":"layout","synthetic":false}
Reading table · raw stream
KindRangeSpellingsynthetic
integer[0,1)1false
newline[1,2)line breakfalse
integer[2,3)2false
newline[3,4)line breakfalse
eof[4,4)emptyfalse
Reading table · layout stream
KindRangeSpellingsynthetic
integer[0,1)1false
separator[1,2)line breaktrue
integer[2,3)2false
eof[4,4)emptyfalse

tokens.jsonl 2850 bytes sha256:43cd60a7914df8d34f46883a2385806fa85946974fea712a16f0f53ff10b8cb6

Open this file exactly as it was written, opens in a new tab

Compared Topaz compiler versions 5.21.0 and 5.21.1

This file had the same bytes in both versions.

Version
Topaz compiler 5.21.1
Command
topaz compiler observe inputs/g3/main.tpz --out-dir out/g3 --compiler self --terminal typed
Input hash
sha256:a6e2b7a040683432de03a18fd8a1939a2fdf82585b364bfc874bdd4095c4cae1
Show the 12 files of the bundle
FileSizeHash
ast.jsonl2298 bytessha256:fac5660d4e5f64f3b62aa30068b0bd1d65b425a4eaa7121f48c569dab67553ce
diagnostics.jsonl0 bytessha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
provenance.json1395 bytessha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1149 bytessha256:b06d9bfe643b31e918867d659086976f6e567eaf318b9d07eb4a8fbe1fb34828
resolved.jsonl747 bytessha256:a70eedc9358ba6f5a79ff14eff80ba28cf494f515574340e777571b045a980b2
response.json886 bytessha256:2865f4277db0678a9cf0a5714c3c25a805d4dfc27257641f2a5bbe25db3febb8
self-compilation-product.json2418 bytessha256:ca964aa7ed946498a82586b524c0dac6b2875cebc4fe65f7c647aac350595559
source-set.jsonl935 bytessha256:3f2cf1b400430606f9bfef21a37a4d29a238367a2180292bcc77fd958220ce77
sources/000000.tpz4 bytessha256:a6e2b7a040683432de03a18fd8a1939a2fdf82585b364bfc874bdd4095c4cae1
tokens.jsonl2850 bytessha256:43cd60a7914df8d34f46883a2385806fa85946974fea712a16f0f53ff10b8cb6
topaz-observation.jsonThe listing file's own size and hash come from its bytes.1968 bytessha256:84ddd0dfde5f6aa59b32f820afcf4e88083cefc9704455e3ca7b8e4f5b03f14e
typed.jsonl832 bytessha256:288681c0208c6be1b61c690c1834bf12d0bb94630842111506067ec807bcbf74

Bundle rootDigest sha256:8df091d5ba0f4308a50440d916cec45147241581f531c5c2ae7b65720306520f

Read this record in Episode 7