실험실

여기서는 네가 먼저 해 볼 차례야.

톡톡의 가위를 빌려 코드를 자르고, 가지의 조립대에서는 잘못된 코드를 고쳐 보자.

실험 뒤에는 실제 토파즈 컴파일러가 남긴 기록을 살펴볼 수 있어.

속사정 현미경에서는 이야기에 나온 기록을 원본 그대로 읽을 수 있어.

토큰 분리대

어디를 잘라야 컴파일러가 읽는 조각이 될까?

톡톡

오늘은 가위를 빌려줄게.

네가 먼저 잘라 봐.

  • 글자 사이를 누르면 띠가 잘려.
  • 같은 자리를 다시 누르면 붙어.
  • 빈칸이 이어진 곳은 한 자리로 다루고, 따로 남은 빈칸은 떨어져 나가.

톡톡

가볍게 시작해 볼까?

내가 자른 띠
톡톡의 띠와 비교하기기록 접고 다시 자르기

실제 토파즈 컴파일러 5.21.1의 토큰 기록

내가 나눈 조각

톡톡이 나눈 조각

  1. 1
  2. +
  3. 2

두 띠가 어디서 달라졌는지 살펴보자.

톡톡의 띠와 같은 모양이 됐네.

이번에는 조각 3개가 남았어.

  • 1과 + 사이 빈칸 여기는 잘랐어.
  • 1과 + 사이 빈칸 여기는 자르지 않았어. 톡톡이는 여기서 잘랐어.
  • +와 2 사이 빈칸 여기는 잘랐어.
  • +와 2 사이 빈칸 여기는 자르지 않았어. 톡톡이는 여기서 잘랐어.
  • 1과 + 사이 빈칸 톡톡이는 여기서 잘랐어.
  • +와 2 사이 빈칸 톡톡이는 여기서 잘랐어.

톡톡

숫자가 두 글자면 어떨까?

내가 자른 띠
톡톡의 띠와 비교하기기록 접고 다시 자르기

실제 토파즈 컴파일러 5.21.1의 토큰 기록

내가 나눈 조각

톡톡이 나눈 조각

  1. 12
  2. +
  3. 3

두 띠가 어디서 달라졌는지 살펴보자.

톡톡의 띠와 같은 모양이 됐네.

이번에는 조각 3개가 남았어.

  • 1과 2 사이 여기는 잘랐어. 톡톡이는 여기서 자르지 않았어.
  • 1과 2 사이 여기는 자르지 않았어.
  • 2와 + 사이 빈칸 여기는 잘랐어.
  • 2와 + 사이 빈칸 여기는 자르지 않았어. 톡톡이는 여기서 잘랐어.
  • +와 3 사이 빈칸 여기는 잘랐어.
  • +와 3 사이 빈칸 여기는 자르지 않았어. 톡톡이는 여기서 잘랐어.
  • 1과 2 사이 톡톡이는 여기서 자르지 않았어.
  • 2와 + 사이 빈칸 톡톡이는 여기서 잘랐어.
  • +와 3 사이 빈칸 톡톡이는 여기서 잘랐어.

톡톡

빈칸이 하나도 없어.

내가 자른 띠
톡톡의 띠와 비교하기기록 접고 다시 자르기

실제 토파즈 컴파일러 5.21.1의 토큰 기록

내가 나눈 조각

톡톡이 나눈 조각

  1. 1
  2. +
  3. 2

두 띠가 어디서 달라졌는지 살펴보자.

톡톡의 띠와 같은 모양이 됐네.

이번에는 조각 3개가 남았어.

  • 1과 + 사이 여기는 잘랐어.
  • 1과 + 사이 여기는 자르지 않았어. 톡톡이는 여기서 잘랐어.
  • +와 2 사이 여기는 잘랐어.
  • +와 2 사이 여기는 자르지 않았어. 톡톡이는 여기서 잘랐어.
  • 1과 + 사이 톡톡이는 여기서 잘랐어.
  • +와 2 사이 톡톡이는 여기서 잘랐어.

톡톡

이번에는 꼭 잘라야 할까?

내가 자른 띠
톡톡의 띠와 비교하기기록 접고 다시 자르기

실제 토파즈 컴파일러 5.21.1의 토큰 기록

내가 나눈 조각

톡톡이 나눈 조각

  1. 100

두 띠가 어디서 달라졌는지 살펴보자.

톡톡의 띠와 같은 모양이 됐네.

이번에는 자르지 않아도 조각 하나야.

  • 1과 0 사이 여기는 잘랐어. 톡톡이는 여기서 자르지 않았어.
  • 1과 0 사이 여기는 자르지 않았어.
  • 0과 0 사이 여기는 잘랐어. 톡톡이는 여기서 자르지 않았어.
  • 0과 0 사이 여기는 자르지 않았어.
  • 1과 0 사이 톡톡이는 여기서 자르지 않았어.
  • 0과 0 사이 톡톡이는 여기서 자르지 않았어.

톡톡

기호가 두 글자네.

내가 자른 띠
톡톡의 띠와 비교하기기록 접고 다시 자르기

실제 토파즈 컴파일러 5.21.1의 토큰 기록

내가 나눈 조각

톡톡이 나눈 조각

  1. 1
  2. ==
  3. 2

두 띠가 어디서 달라졌는지 살펴보자.

톡톡의 띠와 같은 모양이 됐네.

이번에는 조각 3개가 남았어.

  • 1과 = 사이 빈칸 여기는 잘랐어.
  • 1과 = 사이 빈칸 여기는 자르지 않았어. 톡톡이는 여기서 잘랐어.
  • =와 = 사이 여기는 잘랐어. 톡톡이는 여기서 자르지 않았어.
  • =와 = 사이 여기는 자르지 않았어.
  • =와 2 사이 빈칸 여기는 잘랐어.
  • =와 2 사이 빈칸 여기는 자르지 않았어. 톡톡이는 여기서 잘랐어.
  • 1과 = 사이 빈칸 톡톡이는 여기서 잘랐어.
  • =와 = 사이 톡톡이는 여기서 자르지 않았어.
  • =와 2 사이 빈칸 톡톡이는 여기서 잘랐어.

톡톡

이제 혼자서도 할 수 있을까?

내가 자른 띠
톡톡의 띠와 비교하기기록 접고 다시 자르기

실제 토파즈 컴파일러 5.21.1의 토큰 기록

내가 나눈 조각

톡톡이 나눈 조각

  1. 12
  2. +
  3. 34

두 띠가 어디서 달라졌는지 살펴보자.

톡톡의 띠와 같은 모양이 됐네.

이번에는 조각 3개가 남았어.

  • 1과 2 사이 여기는 잘랐어. 톡톡이는 여기서 자르지 않았어.
  • 1과 2 사이 여기는 자르지 않았어.
  • 2와 + 사이 여기는 잘랐어.
  • 2와 + 사이 여기는 자르지 않았어. 톡톡이는 여기서 잘랐어.
  • +와 3 사이 여기는 잘랐어.
  • +와 3 사이 여기는 자르지 않았어. 톡톡이는 여기서 잘랐어.
  • 3과 4 사이 여기는 잘랐어. 톡톡이는 여기서 자르지 않았어.
  • 3과 4 사이 여기는 자르지 않았어.
  • 1과 2 사이 톡톡이는 여기서 자르지 않았어.
  • 2와 + 사이 톡톡이는 여기서 잘랐어.
  • +와 3 사이 톡톡이는 여기서 잘랐어.
  • 3과 4 사이 톡톡이는 여기서 자르지 않았어.
발견한 것 살펴보기

마지막 발견

빈칸이 있어야만 조각이 나뉘는 건 아니야.

12나 100처럼 이어진 숫자는 이 식에서 한 조각이고, ==도 기호 두 글자가 한 조각이야.

컴파일러가 알아본 이런 조각을 토큰이라고 해.

톡톡이가 처음 가위를 들었던 이야기가 궁금해?

제1화 한줄이의 첫 출근

문법 퍼즐

조각 하나를 빼거나 3을 하나 넣어서 나무를 만들 수 있을까?

가지

이 꾸러미는 아무리 살펴봐도 제대로 묶이지 않았어.

네 방법이 궁금해.

  • 조각을 하나 누르면 빠져.
  • 빈틈을 하나 누르면 3이 들어가.
  • 이번에는 딱 한 번만 바꿀 수 있어.
가지에게 보내기기록 접고 다시 고치기

1 + * 2

가지

이번에도 여기서 멈췄어.

쉬운 풀이

이 자리에 식이 필요했는데 알맞은 조각이 오지 않았어.

토파즈 컴파일러 5.21.1 관측 기록

컴파일러가 남긴 오류 코드와 원문

TPZ2001 error

expected an expression

컴파일러가 가리킨 자리

5번째 칸 *

+ * 2

가지

이번에도 여기서 멈췄어.

쉬운 풀이

이 자리에 식이 필요했는데 알맞은 조각이 오지 않았어.

토파즈 컴파일러 5.21.1 관측 기록

컴파일러가 남긴 오류 코드와 원문

TPZ2001 error

expected an expression

컴파일러가 가리킨 자리

3번째 칸 *

1 * 2

가지

이번에는 묶였어.

토파즈 컴파일러가 기록한 구조도 살펴볼 수 있어.

실제 구문 트리 보기
토파즈 컴파일러 5.21.1 관측 기록

expression/binaryoperator multiply

두 값을 잇는 식 · 곱하기

  • 왼쪽

    expression/integer1

    숫자

  • 오른쪽

    expression/integer2

    숫자

다른 방법도 있을까?

기록에서 찾은 다른 고친 길
  • 1 + 2
  • 1 + 3 * 2

1 + 2

가지

이번에는 묶였어.

토파즈 컴파일러가 기록한 구조도 살펴볼 수 있어.

실제 구문 트리 보기
토파즈 컴파일러 5.21.1 관측 기록

expression/binaryoperator add

두 값을 잇는 식 · 더하기

  • 왼쪽

    expression/integer1

    숫자

  • 오른쪽

    expression/integer2

    숫자

다른 방법도 있을까?

기록에서 찾은 다른 고친 길
  • 1 * 2
  • 1 + 3 * 2

1 + *

가지

이번에도 여기서 멈췄어.

쉬운 풀이

이 자리에 식이 필요했는데 알맞은 조각이 오지 않았어.

토파즈 컴파일러 5.21.1 관측 기록

컴파일러가 남긴 오류 코드와 원문

TPZ2001 error

expected an expression

컴파일러가 가리킨 자리

5번째 칸 *

3 1 + * 2

가지

이번에도 여기서 멈췄어.

쉬운 풀이

앞의 값 다음에 또 다른 값이 나왔어.

그 사이에서 문장을 어떻게 나눠야 할지 문제가 생겼어.

토파즈 컴파일러 5.21.1 관측 기록

컴파일러가 남긴 오류 코드와 원문

TPZ2001 error

expected a statement separator

컴파일러가 가리킨 자리

3번째 칸 1

1 3 + * 2

가지

이번에도 여기서 멈췄어.

쉬운 풀이

앞의 값 다음에 또 다른 값이 나왔어.

그 사이에서 문장을 어떻게 나눠야 할지 문제가 생겼어.

토파즈 컴파일러 5.21.1 관측 기록

컴파일러가 남긴 오류 코드와 원문

TPZ2001 error

expected a statement separator

컴파일러가 가리킨 자리

3번째 칸 3

1 + 3 * 2

가지

이번에는 묶였어.

토파즈 컴파일러가 기록한 구조도 살펴볼 수 있어.

실제 구문 트리 보기
토파즈 컴파일러 5.21.1 관측 기록

expression/binaryoperator add

두 값을 잇는 식 · 더하기

  • 왼쪽

    expression/integer1

    숫자

  • 오른쪽

    expression/binaryoperator multiply

    두 값을 잇는 식 · 곱하기

    • 왼쪽

      expression/integer3

      숫자

    • 오른쪽

      expression/integer2

      숫자

다른 방법도 있을까?

기록에서 찾은 다른 고친 길
  • 1 * 2
  • 1 + 2

1 + * 3 2

가지

이번에도 여기서 멈췄어.

쉬운 풀이

이 자리에 식이 필요했는데 알맞은 조각이 오지 않았어.

토파즈 컴파일러 5.21.1 관측 기록

컴파일러가 남긴 오류 코드와 원문

TPZ2001 error

expected an expression

컴파일러가 가리킨 자리

5번째 칸 *

1 + * 2 3

가지

이번에도 여기서 멈췄어.

쉬운 풀이

이 자리에 식이 필요했는데 알맞은 조각이 오지 않았어.

토파즈 컴파일러 5.21.1 관측 기록

컴파일러가 남긴 오류 코드와 원문

TPZ2001 error

expected an expression

컴파일러가 가리킨 자리

5번째 칸 *

마지막 발견

조각을 조금만 바꿔도 나무가 만들어질 수 있어.

하지만 조각이 문법에 맞게 놓이지 않으면 컴파일러는 그 구조를 완성하지 못하고, 문제가 발견된 자리를 알려 줘.

가지가 처음 나무를 만들었던 이야기가 궁금해?

제2화 가지의 조립 시간

속사정 현미경

이야기에서 본 기록을 컴파일러가 남긴 그대로 열어 봐.

1 + 2 토큰 기록 tokens.jsonl

제4화를 위해 새로 관측한 기록이야.

줄 순서는 토파즈가 파일에 적은 그대로야.

  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바이트 sha256:97356c5c773c4714a3cc87d90cd6cf7f77729855cac2c7543b5448f0db4d38fd

이 파일 원본 그대로 열기, 새 창

판 대조 토파즈 컴파일러 5.21.0 판과 5.21.1 판

두 판에서 이 파일의 바이트가 같았어.

판
토파즈 컴파일러 5.21.1 topaz-lang@5.21.1
만든 컴파일러
topaz-native-k compiler.producer
명령
topaz compiler observe inputs/w1/main.tpz --out-dir out/w1 --compiler self --terminal rust-source
입력 해시
sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
관측 정보
입력 이름
w1
관측 커밋
96aa9d8
입력 바이트
31 20 2b 20 32 0a
기록 스키마
topaz.compiler.tokens/v1
묶음의 파일 14개 보기
파일크기해시
ast.jsonl2311바이트sha256:fe5b13011321da001156cfc25727a6180e740167bcc94195388aa4ffc891d929
diagnostics.jsonl0바이트sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl3332바이트sha256:26968c7c119ad38d2e26b93fb70e69fb4f311aff8c5da0aad43c70ea3de16d23
provenance.json1395바이트sha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1155바이트sha256:2860e9c21cf1c0a8aa86c80c7013c621df29fd8c41d45624fff4acdbd95ad382
resolved.jsonl747바이트sha256:9828e89b129b3be509a9465698d6caa813bd801b415170224292278563b7d41b
response.json1020바이트sha256:72e3e8708917a0f897f4466d0a7872da3178a16a6c93c721f2876cd84defa5b4
rust-source.jsonl이 파일은 이름과 크기, 해시를 볼 수 있어.7722바이트sha256:51ca84a2cd85b1520fc1a734b0c9ab7edb987736086028c69abd019f0cdb63b3
self-compilation-product.json2418바이트sha256:c3cbfad3539faadabac5d7f6128e36d75d4668c9c10117f245caaeb848249b6a
source-set.jsonl935바이트sha256:02ed379005b32ab40416fff78b46ccdbe54e891e1795c75253299e04472eaac5
sources/000000.tpz6바이트sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
tokens.jsonl2841바이트sha256:97356c5c773c4714a3cc87d90cd6cf7f77729855cac2c7543b5448f0db4d38fd
topaz-observation.json목록 파일 자신의 크기와 해시는 이 파일 바이트에서 구했어.2304바이트sha256:245f50ad3bbf0197a8e2a92838c007a78303057e316a6016cab110a40b04ae84
typed.jsonl1238바이트sha256:e57b1d4e30111eef8639b7cf460c35280dd91ddebf4c6bae3bc671d9c3f3fb7e

묶음 rootDigest sha256:bfeb4b4d1e491242f6c8606ff62e42298ea0d13f7df451d3f6707ddbdb12a506

1 + 2 나무 기록 ast.jsonl

제4화를 위해 새로 관측한 기록이야.

줄 순서는 토파즈가 파일에 적은 그대로야.

  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바이트 sha256:fe5b13011321da001156cfc25727a6180e740167bcc94195388aa4ffc891d929

이 파일 원본 그대로 열기, 새 창

판 대조 토파즈 컴파일러 5.21.0 판과 5.21.1 판

두 판에서 이 파일의 바이트가 같았어.

판
토파즈 컴파일러 5.21.1 topaz-lang@5.21.1
만든 컴파일러
topaz-native-k compiler.producer
명령
topaz compiler observe inputs/w1/main.tpz --out-dir out/w1 --compiler self --terminal rust-source
입력 해시
sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
관측 정보
입력 이름
w1
관측 커밋
96aa9d8
입력 바이트
31 20 2b 20 32 0a
기록 스키마
topaz.compiler.ast/v1
묶음의 파일 14개 보기
파일크기해시
ast.jsonl2311바이트sha256:fe5b13011321da001156cfc25727a6180e740167bcc94195388aa4ffc891d929
diagnostics.jsonl0바이트sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl3332바이트sha256:26968c7c119ad38d2e26b93fb70e69fb4f311aff8c5da0aad43c70ea3de16d23
provenance.json1395바이트sha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1155바이트sha256:2860e9c21cf1c0a8aa86c80c7013c621df29fd8c41d45624fff4acdbd95ad382
resolved.jsonl747바이트sha256:9828e89b129b3be509a9465698d6caa813bd801b415170224292278563b7d41b
response.json1020바이트sha256:72e3e8708917a0f897f4466d0a7872da3178a16a6c93c721f2876cd84defa5b4
rust-source.jsonl이 파일은 이름과 크기, 해시를 볼 수 있어.7722바이트sha256:51ca84a2cd85b1520fc1a734b0c9ab7edb987736086028c69abd019f0cdb63b3
self-compilation-product.json2418바이트sha256:c3cbfad3539faadabac5d7f6128e36d75d4668c9c10117f245caaeb848249b6a
source-set.jsonl935바이트sha256:02ed379005b32ab40416fff78b46ccdbe54e891e1795c75253299e04472eaac5
sources/000000.tpz6바이트sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
tokens.jsonl2841바이트sha256:97356c5c773c4714a3cc87d90cd6cf7f77729855cac2c7543b5448f0db4d38fd
topaz-observation.json목록 파일 자신의 크기와 해시는 이 파일 바이트에서 구했어.2304바이트sha256:245f50ad3bbf0197a8e2a92838c007a78303057e316a6016cab110a40b04ae84
typed.jsonl1238바이트sha256:e57b1d4e30111eef8639b7cf460c35280dd91ddebf4c6bae3bc671d9c3f3fb7e

묶음 rootDigest sha256:bfeb4b4d1e491242f6c8606ff62e42298ea0d13f7df451d3f6707ddbdb12a506

1 + 2 타입 기록 typed.jsonl

제4화를 위해 새로 관측한 기록이야.

줄 순서는 토파즈가 파일에 적은 그대로야.

  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바이트 sha256:e57b1d4e30111eef8639b7cf460c35280dd91ddebf4c6bae3bc671d9c3f3fb7e

이 파일 원본 그대로 열기, 새 창

판 대조 토파즈 컴파일러 5.21.0 판과 5.21.1 판

두 판에서 이 파일의 바이트가 같았어.

판
토파즈 컴파일러 5.21.1 topaz-lang@5.21.1
만든 컴파일러
topaz-native-k compiler.producer
명령
topaz compiler observe inputs/w1/main.tpz --out-dir out/w1 --compiler self --terminal rust-source
입력 해시
sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
관측 정보
입력 이름
w1
관측 커밋
96aa9d8
입력 바이트
31 20 2b 20 32 0a
기록 스키마
topaz.compiler.typed/v1
묶음의 파일 14개 보기
파일크기해시
ast.jsonl2311바이트sha256:fe5b13011321da001156cfc25727a6180e740167bcc94195388aa4ffc891d929
diagnostics.jsonl0바이트sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl3332바이트sha256:26968c7c119ad38d2e26b93fb70e69fb4f311aff8c5da0aad43c70ea3de16d23
provenance.json1395바이트sha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1155바이트sha256:2860e9c21cf1c0a8aa86c80c7013c621df29fd8c41d45624fff4acdbd95ad382
resolved.jsonl747바이트sha256:9828e89b129b3be509a9465698d6caa813bd801b415170224292278563b7d41b
response.json1020바이트sha256:72e3e8708917a0f897f4466d0a7872da3178a16a6c93c721f2876cd84defa5b4
rust-source.jsonl이 파일은 이름과 크기, 해시를 볼 수 있어.7722바이트sha256:51ca84a2cd85b1520fc1a734b0c9ab7edb987736086028c69abd019f0cdb63b3
self-compilation-product.json2418바이트sha256:c3cbfad3539faadabac5d7f6128e36d75d4668c9c10117f245caaeb848249b6a
source-set.jsonl935바이트sha256:02ed379005b32ab40416fff78b46ccdbe54e891e1795c75253299e04472eaac5
sources/000000.tpz6바이트sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
tokens.jsonl2841바이트sha256:97356c5c773c4714a3cc87d90cd6cf7f77729855cac2c7543b5448f0db4d38fd
topaz-observation.json목록 파일 자신의 크기와 해시는 이 파일 바이트에서 구했어.2304바이트sha256:245f50ad3bbf0197a8e2a92838c007a78303057e316a6016cab110a40b04ae84
typed.jsonl1238바이트sha256:e57b1d4e30111eef8639b7cf460c35280dd91ddebf4c6bae3bc671d9c3f3fb7e

묶음 rootDigest sha256:bfeb4b4d1e491242f6c8606ff62e42298ea0d13f7df451d3f6707ddbdb12a506

1 + 2 작업 기록 lowered.jsonl

제4화를 위해 새로 관측한 기록이야.

이 8줄은 토파즈가 파일에 적은 순서대로 놓여 있어. 5줄은 작업이고, 나머지 3줄에는 모듈 정보와 필요한 런타임 부품, 런타임 틀이 적혀 있어.

  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"}모듈 정보
  2. {"deterministic":true,"identity":"binary","rowKind":"runtime-leaf","schema":"topaz.compiler.lowered/v1"}필요한 런타임 부품
  3. {"identity":"stage1-ir-table/v1","rowKind":"runtime-template","schema":"topaz.compiler.lowered/v1","sha256":"sha256:79b4af8e5544a04eb021fe093dda38ed15b655e8dc56faef151807a8cb925d74"}런타임 틀
  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"}}첫째 작업 · 프로그램 시작 준비
  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"}}둘째 작업 · 식을 담은 문장
  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"}}셋째 작업 · 두 값 셈
  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"}}넷째 작업 · 정수
  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"}}다섯째 작업 · 정수

제4화의 카드는 토파즈가 작업을 파일에 적은 순서로 꽂았어.

+ 글자는 소스에서 3번째 칸을 차지해. 더하기 작업의 범위는 식 전체인 1~5번째 칸이야.

문장 작업과 더하기 작업은 같은 소스 범위를 가리켜. 문장 작업은 더하기 작업을 가리키고, 더하기 작업은 두 정수 작업을 가리켜.

타입 기록에서 1과 2, 그리고 둘을 더하는 식의 타입은 int야. 이 세 작업의 representation에는 i64가 적혀 있어. 부호 있는 64비트 정수 표현이야. 맨 바깥의 모듈 초기화 작업에는 표현 값이 없어.

맨 바깥의 모듈 초기화 작업은 줄 끝의 줄바꿈(LF)까지 덮어.

lowered.jsonl 3332바이트 sha256:26968c7c119ad38d2e26b93fb70e69fb4f311aff8c5da0aad43c70ea3de16d23

이 파일 원본 그대로 열기, 새 창

판 대조 토파즈 컴파일러 5.21.0 판과 5.21.1 판

두 판에서 이 파일의 바이트가 같았어.

판
토파즈 컴파일러 5.21.1 topaz-lang@5.21.1
만든 컴파일러
topaz-native-k compiler.producer
명령
topaz compiler observe inputs/w1/main.tpz --out-dir out/w1 --compiler self --terminal rust-source
입력 해시
sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
관측 정보
입력 이름
w1
관측 커밋
96aa9d8
입력 바이트
31 20 2b 20 32 0a
기록 스키마
topaz.compiler.lowered/v1
런타임 틀
stage1-ir-table/v1
IR 스키마
topaz.compiler.stage1-ir/v5 compiler.irSchema
묶음의 파일 14개 보기
파일크기해시
ast.jsonl2311바이트sha256:fe5b13011321da001156cfc25727a6180e740167bcc94195388aa4ffc891d929
diagnostics.jsonl0바이트sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl3332바이트sha256:26968c7c119ad38d2e26b93fb70e69fb4f311aff8c5da0aad43c70ea3de16d23
provenance.json1395바이트sha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1155바이트sha256:2860e9c21cf1c0a8aa86c80c7013c621df29fd8c41d45624fff4acdbd95ad382
resolved.jsonl747바이트sha256:9828e89b129b3be509a9465698d6caa813bd801b415170224292278563b7d41b
response.json1020바이트sha256:72e3e8708917a0f897f4466d0a7872da3178a16a6c93c721f2876cd84defa5b4
rust-source.jsonl이 파일은 이름과 크기, 해시를 볼 수 있어.7722바이트sha256:51ca84a2cd85b1520fc1a734b0c9ab7edb987736086028c69abd019f0cdb63b3
self-compilation-product.json2418바이트sha256:c3cbfad3539faadabac5d7f6128e36d75d4668c9c10117f245caaeb848249b6a
source-set.jsonl935바이트sha256:02ed379005b32ab40416fff78b46ccdbe54e891e1795c75253299e04472eaac5
sources/000000.tpz6바이트sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807
tokens.jsonl2841바이트sha256:97356c5c773c4714a3cc87d90cd6cf7f77729855cac2c7543b5448f0db4d38fd
topaz-observation.json목록 파일 자신의 크기와 해시는 이 파일 바이트에서 구했어.2304바이트sha256:245f50ad3bbf0197a8e2a92838c007a78303057e316a6016cab110a40b04ae84
typed.jsonl1238바이트sha256:e57b1d4e30111eef8639b7cf460c35280dd91ddebf4c6bae3bc671d9c3f3fb7e

묶음 rootDigest sha256:bfeb4b4d1e491242f6c8606ff62e42298ea0d13f7df451d3f6707ddbdb12a506

1 + 2 * 3 토큰 기록 tokens.jsonl

제4화를 위해 새로 관측한 기록이야.

줄 순서는 토파즈가 파일에 적은 그대로야.

  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바이트 sha256:b9baaa0fba5b5e6df960627284d174a33c2651a1740bace189f3b46bd7f25953

이 파일 원본 그대로 열기, 새 창

판 대조 토파즈 컴파일러 5.21.0 판과 5.21.1 판

두 판에서 이 파일의 바이트가 같았어.

판
토파즈 컴파일러 5.21.1 topaz-lang@5.21.1
만든 컴파일러
topaz-native-k compiler.producer
명령
topaz compiler observe inputs/w3/main.tpz --out-dir out/w3 --compiler self --terminal rust-source
입력 해시
sha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
관측 정보
입력 이름
w3
관측 커밋
96aa9d8
입력 바이트
31 20 2b 20 32 20 2a 20 33 0a
기록 스키마
topaz.compiler.tokens/v1
묶음의 파일 14개 보기
파일크기해시
ast.jsonl3288바이트sha256:9a7c4b7d6189ef10560f211fec2dad9a3bb5437598beac86aa2217fcfa70ee47
diagnostics.jsonl0바이트sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl4466바이트sha256:1159c174cf94ad280cbf8a823ec74767e29c3624afa0ff9edbf53b05a8f34eba
provenance.json1395바이트sha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1156바이트sha256:ae361d2ae0bb215014450dd296203ba2de06b552cf3e76cb8ccaf0c18253b26f
resolved.jsonl748바이트sha256:dc1436b30f79bf7f2f8342cfb2c892b0542e1998f09720cadef8b743000ce2cc
response.json1020바이트sha256:1440edb4389b802f2cb2f966e80647e52fb3135b62e2aee21c0013bc3748f0f4
rust-source.jsonl이 파일은 이름과 크기, 해시를 볼 수 있어.10287바이트sha256:6910e188573d6837c47d0f9dbbdb02b70d4a8f06334c0dbde7997aab7d4cbe6f
self-compilation-product.json2418바이트sha256:891a8be1f7257ef9975d8e0aef8d50cde243f77467ec2963a06c3fef111bd387
source-set.jsonl937바이트sha256:c8a7ab1c4685022be2ce82fca21540149f7826f23e4390c053eeeded317511ed
sources/000000.tpz10바이트sha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
tokens.jsonl4110바이트sha256:b9baaa0fba5b5e6df960627284d174a33c2651a1740bace189f3b46bd7f25953
topaz-observation.json목록 파일 자신의 크기와 해시는 이 파일 바이트에서 구했어.2306바이트sha256:52ebc7b3172f0ab19c4ae0111edecb1787c44edb08d2b0bf0f7b22e2bdd9217c
typed.jsonl2060바이트sha256:c4b0af2d43aa0cb381ef49acca1b6eaf5d8681e251c23c96c576c34fedccb42e

묶음 rootDigest sha256:c4824db06dd2bcc366173cfe66ffb7756c48a8667aded16080a842f414082f7c

1 + 2 * 3 나무 기록 ast.jsonl

제4화를 위해 새로 관측한 기록이야.

줄 순서는 토파즈가 파일에 적은 그대로야.

  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바이트 sha256:9a7c4b7d6189ef10560f211fec2dad9a3bb5437598beac86aa2217fcfa70ee47

이 파일 원본 그대로 열기, 새 창

판 대조 토파즈 컴파일러 5.21.0 판과 5.21.1 판

두 판에서 이 파일의 바이트가 같았어.

판
토파즈 컴파일러 5.21.1 topaz-lang@5.21.1
만든 컴파일러
topaz-native-k compiler.producer
명령
topaz compiler observe inputs/w3/main.tpz --out-dir out/w3 --compiler self --terminal rust-source
입력 해시
sha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
관측 정보
입력 이름
w3
관측 커밋
96aa9d8
입력 바이트
31 20 2b 20 32 20 2a 20 33 0a
기록 스키마
topaz.compiler.ast/v1
묶음의 파일 14개 보기
파일크기해시
ast.jsonl3288바이트sha256:9a7c4b7d6189ef10560f211fec2dad9a3bb5437598beac86aa2217fcfa70ee47
diagnostics.jsonl0바이트sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl4466바이트sha256:1159c174cf94ad280cbf8a823ec74767e29c3624afa0ff9edbf53b05a8f34eba
provenance.json1395바이트sha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1156바이트sha256:ae361d2ae0bb215014450dd296203ba2de06b552cf3e76cb8ccaf0c18253b26f
resolved.jsonl748바이트sha256:dc1436b30f79bf7f2f8342cfb2c892b0542e1998f09720cadef8b743000ce2cc
response.json1020바이트sha256:1440edb4389b802f2cb2f966e80647e52fb3135b62e2aee21c0013bc3748f0f4
rust-source.jsonl이 파일은 이름과 크기, 해시를 볼 수 있어.10287바이트sha256:6910e188573d6837c47d0f9dbbdb02b70d4a8f06334c0dbde7997aab7d4cbe6f
self-compilation-product.json2418바이트sha256:891a8be1f7257ef9975d8e0aef8d50cde243f77467ec2963a06c3fef111bd387
source-set.jsonl937바이트sha256:c8a7ab1c4685022be2ce82fca21540149f7826f23e4390c053eeeded317511ed
sources/000000.tpz10바이트sha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
tokens.jsonl4110바이트sha256:b9baaa0fba5b5e6df960627284d174a33c2651a1740bace189f3b46bd7f25953
topaz-observation.json목록 파일 자신의 크기와 해시는 이 파일 바이트에서 구했어.2306바이트sha256:52ebc7b3172f0ab19c4ae0111edecb1787c44edb08d2b0bf0f7b22e2bdd9217c
typed.jsonl2060바이트sha256:c4b0af2d43aa0cb381ef49acca1b6eaf5d8681e251c23c96c576c34fedccb42e

묶음 rootDigest sha256:c4824db06dd2bcc366173cfe66ffb7756c48a8667aded16080a842f414082f7c

1 + 2 * 3 타입 기록 typed.jsonl

제4화를 위해 새로 관측한 기록이야.

줄 순서는 토파즈가 파일에 적은 그대로야.

  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바이트 sha256:c4b0af2d43aa0cb381ef49acca1b6eaf5d8681e251c23c96c576c34fedccb42e

이 파일 원본 그대로 열기, 새 창

판 대조 토파즈 컴파일러 5.21.0 판과 5.21.1 판

두 판에서 이 파일의 바이트가 같았어.

판
토파즈 컴파일러 5.21.1 topaz-lang@5.21.1
만든 컴파일러
topaz-native-k compiler.producer
명령
topaz compiler observe inputs/w3/main.tpz --out-dir out/w3 --compiler self --terminal rust-source
입력 해시
sha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
관측 정보
입력 이름
w3
관측 커밋
96aa9d8
입력 바이트
31 20 2b 20 32 20 2a 20 33 0a
기록 스키마
topaz.compiler.typed/v1
묶음의 파일 14개 보기
파일크기해시
ast.jsonl3288바이트sha256:9a7c4b7d6189ef10560f211fec2dad9a3bb5437598beac86aa2217fcfa70ee47
diagnostics.jsonl0바이트sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl4466바이트sha256:1159c174cf94ad280cbf8a823ec74767e29c3624afa0ff9edbf53b05a8f34eba
provenance.json1395바이트sha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1156바이트sha256:ae361d2ae0bb215014450dd296203ba2de06b552cf3e76cb8ccaf0c18253b26f
resolved.jsonl748바이트sha256:dc1436b30f79bf7f2f8342cfb2c892b0542e1998f09720cadef8b743000ce2cc
response.json1020바이트sha256:1440edb4389b802f2cb2f966e80647e52fb3135b62e2aee21c0013bc3748f0f4
rust-source.jsonl이 파일은 이름과 크기, 해시를 볼 수 있어.10287바이트sha256:6910e188573d6837c47d0f9dbbdb02b70d4a8f06334c0dbde7997aab7d4cbe6f
self-compilation-product.json2418바이트sha256:891a8be1f7257ef9975d8e0aef8d50cde243f77467ec2963a06c3fef111bd387
source-set.jsonl937바이트sha256:c8a7ab1c4685022be2ce82fca21540149f7826f23e4390c053eeeded317511ed
sources/000000.tpz10바이트sha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
tokens.jsonl4110바이트sha256:b9baaa0fba5b5e6df960627284d174a33c2651a1740bace189f3b46bd7f25953
topaz-observation.json목록 파일 자신의 크기와 해시는 이 파일 바이트에서 구했어.2306바이트sha256:52ebc7b3172f0ab19c4ae0111edecb1787c44edb08d2b0bf0f7b22e2bdd9217c
typed.jsonl2060바이트sha256:c4b0af2d43aa0cb381ef49acca1b6eaf5d8681e251c23c96c576c34fedccb42e

묶음 rootDigest sha256:c4824db06dd2bcc366173cfe66ffb7756c48a8667aded16080a842f414082f7c

1 + 2 * 3 작업 기록 lowered.jsonl

제4화를 위해 새로 관측한 기록이야.

이 10줄은 토파즈가 파일에 적은 순서대로 놓여 있어. 7줄은 작업이고, 나머지 3줄에는 모듈 정보와 필요한 런타임 부품, 런타임 틀이 적혀 있어.

  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"}모듈 정보
  2. {"deterministic":true,"identity":"binary","rowKind":"runtime-leaf","schema":"topaz.compiler.lowered/v1"}필요한 런타임 부품
  3. {"identity":"stage1-ir-table/v1","rowKind":"runtime-template","schema":"topaz.compiler.lowered/v1","sha256":"sha256:79b4af8e5544a04eb021fe093dda38ed15b655e8dc56faef151807a8cb925d74"}런타임 틀
  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"}}첫째 작업 · 프로그램 시작 준비
  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"}}둘째 작업 · 식을 담은 문장
  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"}}셋째 작업 · 두 값 셈
  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"}}넷째 작업 · 정수
  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"}}다섯째 작업 · 두 값 셈
  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"}}여섯째 작업 · 정수
  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"}}일곱째 작업 · 정수

lowered.jsonl 4466바이트 sha256:1159c174cf94ad280cbf8a823ec74767e29c3624afa0ff9edbf53b05a8f34eba

이 파일 원본 그대로 열기, 새 창

판 대조 토파즈 컴파일러 5.21.0 판과 5.21.1 판

두 판에서 이 파일의 바이트가 같았어.

판
토파즈 컴파일러 5.21.1 topaz-lang@5.21.1
만든 컴파일러
topaz-native-k compiler.producer
명령
topaz compiler observe inputs/w3/main.tpz --out-dir out/w3 --compiler self --terminal rust-source
입력 해시
sha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
관측 정보
입력 이름
w3
관측 커밋
96aa9d8
입력 바이트
31 20 2b 20 32 20 2a 20 33 0a
기록 스키마
topaz.compiler.lowered/v1
런타임 틀
stage1-ir-table/v1
IR 스키마
topaz.compiler.stage1-ir/v5 compiler.irSchema
묶음의 파일 14개 보기
파일크기해시
ast.jsonl3288바이트sha256:9a7c4b7d6189ef10560f211fec2dad9a3bb5437598beac86aa2217fcfa70ee47
diagnostics.jsonl0바이트sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
lowered.jsonl4466바이트sha256:1159c174cf94ad280cbf8a823ec74767e29c3624afa0ff9edbf53b05a8f34eba
provenance.json1395바이트sha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1156바이트sha256:ae361d2ae0bb215014450dd296203ba2de06b552cf3e76cb8ccaf0c18253b26f
resolved.jsonl748바이트sha256:dc1436b30f79bf7f2f8342cfb2c892b0542e1998f09720cadef8b743000ce2cc
response.json1020바이트sha256:1440edb4389b802f2cb2f966e80647e52fb3135b62e2aee21c0013bc3748f0f4
rust-source.jsonl이 파일은 이름과 크기, 해시를 볼 수 있어.10287바이트sha256:6910e188573d6837c47d0f9dbbdb02b70d4a8f06334c0dbde7997aab7d4cbe6f
self-compilation-product.json2418바이트sha256:891a8be1f7257ef9975d8e0aef8d50cde243f77467ec2963a06c3fef111bd387
source-set.jsonl937바이트sha256:c8a7ab1c4685022be2ce82fca21540149f7826f23e4390c053eeeded317511ed
sources/000000.tpz10바이트sha256:3553c468c86fade22a00dab4c3970537a6d2e1588fa7514a01b860de9a151ba1
tokens.jsonl4110바이트sha256:b9baaa0fba5b5e6df960627284d174a33c2651a1740bace189f3b46bd7f25953
topaz-observation.json목록 파일 자신의 크기와 해시는 이 파일 바이트에서 구했어.2306바이트sha256:52ebc7b3172f0ab19c4ae0111edecb1787c44edb08d2b0bf0f7b22e2bdd9217c
typed.jsonl2060바이트sha256:c4b0af2d43aa0cb381ef49acca1b6eaf5d8681e251c23c96c576c34fedccb42e

묶음 rootDigest sha256:c4824db06dd2bcc366173cfe66ffb7756c48a8667aded16080a842f414082f7c

1 + 2 출처 기록 provenance.json

제4화를 위해 관측한 묶음에 함께 남은 출처 파일이야. 제6화가 이 파일을 펼쳐.

원본 한 줄

토파즈는 이 파일을 한 줄로 적었어. 아래 표는 그 줄에서 고른 항목을 읽기 쉽게 옮긴 거야.

  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"}
읽기용 필드 표
필드기록의 값뜻
enginetopaz-native-k결과를 만든 컴파일러 구현의 이름이야.
compiler.producertopaz-native-k이 관측 결과를 만든 생성자의 식별자야. 여기서는 engine과 값이 같아.
compiler.producerStage1기록을 만든 생성자에 적힌 단계 번호야.
defaultEngineself이 판의 기본 선택이야. 제4화 명령에는 실제로 --compiler self가 있었어.
generatedSourceFixedPointestablished자기 소스를 연이어 컴파일한 단계에서 생성한 Rust의 바이트가 같았는지 적는 값이야.
semanticFixedPointnot-established컴파일러의 중간 기록에서 의미 고정점이 성립했는지 나타내.
nativeBinaryReproducibilitynot-run실행 파일의 바이트를 견주는 대조를 적는 값이야.
schematopaz.compiler.bootstrap-provenance/v2이 출처 기록의 형식 이름이야.
languageModetopaz-5.21이 관측에 적힌 토파즈 언어 모드야.

compiler.linkToolchain의 첫 줄은 rustc 1.96.0 (ac68faa20 2026-05-25)이야. 이 컴파일러의 링크 도구 기록이야.

provenance.json 1395바이트 sha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05

이 파일 원본 그대로 열기, 새 창

판 대조 토파즈 컴파일러 5.21.0 판과 5.21.1 판

5.21.0 판과 5.21.1 판의 출처 기록에서 고른 아홉 항목의 값이 같았어.

두 출처 파일의 전체 바이트는 달랐어.

판
토파즈 컴파일러 5.21.1 topaz-lang@5.21.1
만든 컴파일러
topaz-native-k compiler.producer
명령
topaz compiler observe inputs/w1/main.tpz --out-dir out/w1 --compiler self --terminal rust-source
입력 해시
sha256:cb898749d76e51fdaf6c6636920ccdb4f415fc1cffd1e2497636b38cc2469807

1 줄바꿈 2 줄바꿈 토큰 기록 tokens.jsonl

제7화를 위해 관측한 기록이야. 토파즈는 두 토큰 흐름을 한 파일에 함께 적었어.

줄 순서는 토파즈가 파일에 적은 그대로야. 앞 5줄은 raw 흐름, 뒤 4줄은 layout 흐름이야.

  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}
읽기용 표 · raw 흐름
종류범위글자synthetic
integer[0,1)1false
newline[1,2)줄바꿈false
integer[2,3)2false
newline[3,4)줄바꿈false
eof[4,4)빈 글자false
읽기용 표 · layout 흐름
종류범위글자synthetic
integer[0,1)1false
separator[1,2)줄바꿈true
integer[2,3)2false
eof[4,4)빈 글자false

tokens.jsonl 2850바이트 sha256:43cd60a7914df8d34f46883a2385806fa85946974fea712a16f0f53ff10b8cb6

이 파일 원본 그대로 열기, 새 창

판 대조 토파즈 컴파일러 5.21.0 판과 5.21.1 판

두 판에서 이 파일의 바이트가 같았어.

판
토파즈 컴파일러 5.21.1
명령
topaz compiler observe inputs/g3/main.tpz --out-dir out/g3 --compiler self --terminal typed
입력 해시
sha256:a6e2b7a040683432de03a18fd8a1939a2fdf82585b364bfc874bdd4095c4cae1
묶음의 파일 12개 보기
파일크기해시
ast.jsonl2298바이트sha256:fac5660d4e5f64f3b62aa30068b0bd1d65b425a4eaa7121f48c569dab67553ce
diagnostics.jsonl0바이트sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
provenance.json1395바이트sha256:10d510756a6d523979c5e891b955a573183f83bd9c20d29994d36546b3bd2a05
request.json1149바이트sha256:b06d9bfe643b31e918867d659086976f6e567eaf318b9d07eb4a8fbe1fb34828
resolved.jsonl747바이트sha256:a70eedc9358ba6f5a79ff14eff80ba28cf494f515574340e777571b045a980b2
response.json886바이트sha256:2865f4277db0678a9cf0a5714c3c25a805d4dfc27257641f2a5bbe25db3febb8
self-compilation-product.json2418바이트sha256:ca964aa7ed946498a82586b524c0dac6b2875cebc4fe65f7c647aac350595559
source-set.jsonl935바이트sha256:3f2cf1b400430606f9bfef21a37a4d29a238367a2180292bcc77fd958220ce77
sources/000000.tpz4바이트sha256:a6e2b7a040683432de03a18fd8a1939a2fdf82585b364bfc874bdd4095c4cae1
tokens.jsonl2850바이트sha256:43cd60a7914df8d34f46883a2385806fa85946974fea712a16f0f53ff10b8cb6
topaz-observation.json목록 파일 자신의 크기와 해시는 이 파일 바이트에서 구했어.1968바이트sha256:84ddd0dfde5f6aa59b32f820afcf4e88083cefc9704455e3ca7b8e4f5b03f14e
typed.jsonl832바이트sha256:288681c0208c6be1b61c690c1834bf12d0bb94630842111506067ec807bcbf74

묶음 rootDigest sha256:8df091d5ba0f4308a50440d916cec45147241581f531c5c2ae7b65720306520f

제7화에서 이 기록 읽기