| 5.20.0 | 공개 | 5.20.0은 이 라인의 첫 공개 릴리스입니다. 셀프호스티드 컴파일러가 기본 경로가 되고, 내장 리스펙스 평가기는 리스펙스 1.20.0으로 올라갑니다. 소스는 github.com/studiohaze/topaz 에 공개되어 있습니다. |
| 5.19.815 | 내부 | 공유 코퍼스 매니페스트 디코더가 단계와 버전과 결과가 모두 채워지고 소스가 파일 하나 또는 디렉터리 하나이며 결과에 맞는 코드가 붙고 기록된 합계가 일치할 때만 픽스처 행을 받아들입니다. 불완전한 행은 빈 값으로 넘어가지 않고 거부됩니다. |
| 5.19.814 | 내부 | v5.4 패키지와 검사와 성능 점검 코퍼스의 매니페스트를 topaz check-corpus 와 같은 디코더로 읽습니다. 형식이 어긋나거나 알 수 없는 매니페스트 줄은 별도 읽기 경로에서 조용히 무시되지 않고 어디서나 거부됩니다. |
| 5.19.813 | 내부 | v5.4 패키지 실행과 시험 코퍼스가 런타임 오류를 예상하는 행도 실행하므로 예상 오류 코드와 메시지와 오류 직전 출력까지 확인합니다. 새 패키지 픽스처는 출력을 남긴 뒤 정수를 0으로 나누는 TPZ4002 로 멈춥니다. |
| 5.19.812 | 내부 | 코퍼스의 예상 출력 파일이 뜻 있는 마지막 빈 줄을 유지합니다. 마지막 줄바꿈 하나만 파일 종결자로 보므로 빈 줄로 끝나는 프로그램의 출력도 잘려나간 기록과 대조되지 않고 정확히 비교됩니다. |
| 5.19.811 | 내부 | topaz run 과 네이티브 빌드가 -- 뒤 인자를 프로그램이 main(args, stdin) 을 내보낼 때만 받습니다. 진입점이 없는 프로그램은 인자를 조용히 버리지 않고 실행 전에 거부합니다. |
| 5.19.810 | 내부 | 셀프호스트 컴파일러로 topaz test 를 돌려도 파이프로 들어온 표준 입력이 유지됩니다. 시험 모드가 입력을 빈 문자열로 바꾸던 문제를 고쳐서 --compiler self 에서 main(args, stdin) 을 읽는 프로그램이 topaz run 과 같은 입력을 받습니다. |
| 5.19.809 | 내부 | 패키지 빌드와 실행과 문서 생성이 같은 경로를 써서 패키지를 한 번만 해석하고 검사합니다. 명령의 동작과 진단과 출력은 그대로입니다. |
| 5.19.808 | 내부 | topaz test 가 main(args, stdin) 을 내보내는 프로그램에 파이프 표준 입력을 그대로 넘겨 topaz run 과 같아집니다. 코퍼스의 패키지 시험도 외부 함수 재생을 유지하고 명령줄과 같은 종료 상태 규칙을 적용합니다. |
| 5.19.807 | 내부 | 검사와 편집기 지원과 코퍼스 단계가 검사기 입력 모듈을 하나의 공유 경로로 만듭니다. 모듈 식별과 진입점과 외부 함수 역할과 소스 조각과 모듈 순서가 그대로 유지되고 각 호출부의 진단과 동작도 달라지지 않습니다. |
| 5.19.806 | 내부 | 존재하지만 읽을 수 없는 임포트 디렉터리를 더 이상 없는 것으로 보고하지 않습니다. 읽을 수 없는 디렉터리와 소스, UTF-8 이 아닌 이름의 항목은 컴파일러와 편집기 서버 양쪽에서 TPZ3001 대신 TPZ3003 을 냅니다. |
| 5.19.805 | 내부 | .stdin 과 .args 와 .defer 같은 코퍼스 사이드카 파일은 정말로 없을 때만 없는 것으로 봅니다. 읽을 수 없거나 UTF-8 이 아닌 사이드카는 입력이나 예상 관찰을 조용히 버리지 않고 경로와 함께 실패하며 가상 파일 블록은 유일한 경로와 정확한 구분자를 요구합니다. |
| 5.19.804 | 내부 | 디렉터리 모양의 코퍼스 픽스처를 정확히 읽습니다. 없거나 읽을 수 없는 픽스처 파일이 그 행이 기대하던 진단을 만들어 우연히 통과하는 일이 사라졌고 UTF-8 이 아닌 경로와 일반 파일이 아닌 항목과 중복 경로와 매니페스트에 어긋나는 진입 표시를 거부합니다. |
| 5.19.803 | 내부 | 코퍼스 매니페스트 읽기가 잘못된 입력을 경로와 줄 번호와 함께 알립니다. 합계가 빠지거나 중복된 경우와 숫자가 아닌 개수와 중복되거나 따옴표 없는 픽스처 키와 잘못된 시계 값을 거부하며 빈 파일을 행이 없는 매니페스트로 오해하지 않습니다. |
| 5.19.802 | 내부 | 인터프리터의 실행 코퍼스 검사가 영역별 개수를 다시 합산해 스스로와 견주던 부분을 뺐습니다. 영역별 개수 확인과 모든 행의 파싱과 실행과 정확한 출력 기록과 중단 코드 및 메시지 대조는 그대로 남습니다. |
| 5.19.801 | 내부 | 예제 문서의 출력 프로그램 여덟 개를 코퍼스 안 정본 소스에서 바로 실행합니다. 바이트가 같은 사본 여덟 개와 그것을 원본과 견주던 검사를 없앴고 예상 출력 파일은 그대로 같은 프로그램 출력을 확인합니다. |
| 5.19.800 | 내부 | 인터프리터가 외부 함수를 (int) -> int 같은 함수 타입에 맞춥니다. 인자 개수와 기본값과 가변 인자 여부를 생성된 코드와 같은 방식으로 읽으며 외부 함수를 재생하는 패키지가 topaz run 과 topaz build --run 양쪽에서 올바로 동작합니다. |
| 5.19.799 | 내부 | 결정론적 호스트의 가상 파일이 원시 바이트를 그대로 보관하므로 0x80 같은 바이트를 쓴 프로그램이 쓴 것을 그대로 다시 읽습니다. 텍스트 읽기와 쓰기는 UTF-8 보기로 남고 디렉터리 목록은 원시 바이트 크기를 보고합니다. |
| 5.19.798 | 내부 | 컴파일러 관찰 출력을 만드는 마지막 단계가 루트 요약값과 매니페스트 항목과 크기 예산을 이미 맡고 있던 하나의 경로로 합쳐졌습니다. 구성원 순서와 해시와 매니페스트 바이트와 예산 오류 문구와 산출물은 그대로입니다. |
| 5.19.797 | 내부 | 편집기용 미리보기 투영이 모듈마다 위치 색인 하나를 만들어 스코프와 선언과 참조와 내보내기와 타입 사실을 읽습니다. 사실마다 구문 트리 전체를 다시 훑지 않으며 첫 일치 규칙과 보고되는 사실은 그대로입니다. |
| 5.19.796 | 내부 | 부호 있는 64비트 최댓값을 한 칸 넘어서는 십진 정수 리터럴이 관찰 결과에서 빈 값이 되지 않고 적힌 표기를 그대로 유지합니다. Stage 0 과 셀프호스트 컴파일러가 그 값을 같은 방식으로 보고하며 기간 상한 관찰은 그대로입니다. |
| 5.19.795 | 내부 | 컴파일러 관찰 검사 하나가 같은 요청을 두 번 돌려 결과를 자기 자신과 견주지 않습니다. 한 번만 컴파일하고 관찰하며 반입 검증과 일부러 다르게 만든 결과물과의 비교와 정확한 투영 내용과 손상된 투영 거부와 자원 상한은 그대로 남습니다. |
| 5.19.794 | 내부 | Html.Text("ready") 와 Command.Dispatch(Msg.Ready) 같은 생성자 호출이 주변 문맥에서 정확한 호출 대상과 특수화된 결과 타입을 받습니다. 결과를 알 수 없는 타입으로 만들던 std.dom 모듈 전용 예외 네 건을 없앴습니다. |
| 5.19.793 | 내부 | 수신자 메서드 호출이 그 메서드를 정의한 모듈을 함께 보고하므로 직접 호출과 파이프라인 호출 모두에서 지역 대상은 main::Point 로, 임포트한 대상은 model::Point 로 읽힙니다. 5.20 내보내기 표현은 메서드 매개변수와 반환 타입과 이 식별을 같은 정본 형태로 담습니다. |
| 5.19.792 | 내부 | 호출 관찰이 일반 호출과 선택적 호출과 멤버 호출에서 검사기가 직접 만든 호출 대상 근거를 담고 파이프라인 단계는 참조가 유일하고 멤버 이름이 맞을 때만 호출 대상을 기록합니다. 두 컴파일러가 직접 호출과 선택적 호출과 파이프라인 호출에서 같은 모양을 보고합니다. |
| 5.19.791 | 내부 | 셀프호스트 검사기가 Option<T> 의 value?.run(41) 처럼 제네릭 선택 값에 대한 수신자 호출을 Stage 0 과 같은 방식으로 타입 검사합니다. 인자를 한 번만 추론하고 유니온 갈래마다 자기 시그니처로 검사하며 TPZ5006 과 TPZ5005 와 TPZ5003 보고는 그대로입니다. |
| 5.19.790 | 내부 | Option<Array<int>>?.get(0) 과 runner?.run(41) 같은 선택적 호출이 검사를 지나며 특수화된 호출 대상 타입을 유지하므로 다음 단계가 셀프호스트 컴파일러와 같은 호출 표현을 봅니다. 런타임 동작과 언어 의미는 그대로입니다. |
| 5.19.789 | 내부 | 사용자가 정의한 수신자 메서드 호출이 호출 자리에서 특수화된 함수 타입을 유지하므로 이름 인자와 기본값을 쓰는 메서드가 Stage 0 과 셀프호스트 컴파일러에서 같은 표현으로 내려갑니다. 런타임 동작과 언어 의미는 그대로입니다. |
| 5.19.788 | 내부 | 셀프호스트 컴파일러가 함수 매개변수 기본값을 매개변수 옆에 매개변수 순서대로 놓아 일반 함수와 메서드에서 Stage 0 과 같아집니다. 런타임은 이 모양을 읽으면서 봉인된 컴파일러 이미지의 예전 중첩 모양도 계속 받아들입니다. |
| 5.19.787 | 내부 | 낮춘 표현을 공개하는 셀프호스트 컴파일러가 더 이상 모든 연산의 호출 정보를 비워 두지 않습니다. 이미 가지고 있던 호출 대상과 수신자와 인자와 평가 순서 사실로 호출 정보를 다시 만들며 값 호출과 멤버 호출과 파이프라인 호출을 모두 담습니다. |
| 5.19.786 | 내부 | Stage 0 의 낮추기가 일반 함수의 바인딩 식별과 페이로드 없는 열거 변형을 지역 바인딩이 아니라 생성자로 보는 처리와 내보내는 표현 증거에서 셀프호스트 쪽과 일치합니다. 스키마와 진단과 실행은 그대로입니다. |
| 5.19.785 | 내부 | lead |> absent?.get(sideEffect(_)) 처럼 파이프라인 안에 있는 선택적 호출이 단락 동작을 유지합니다. 수신자가 없으면 적힌 인자를 계산하지 않고 None 을 돌려주며 컴파일된 산출물도 이 가드를 버리지 않고 확인합니다. |
| 5.19.784 | 내부 | 타입 검사 모음에서 값을 자기 자신이나 자기 복제본과 견주던 비교가 여섯 곳 있었습니다. 이제 따로 만든 Array 와 Map 과 레코드와 외부 값을 써서 동일성이 아니라 구조적 동등성과 비교 불가 값의 정적 거부를 관찰합니다. |
| 5.19.783 | 내부 | 최상위 초기화 식이 && 와 || 와 ?? 의 오른쪽이나 선택적 호출의 인자에서 뒤에 오는 바인딩을 참조할 수 있습니다. 그 자리는 왼쪽이나 수신자가 허용할 때만 실행되므로 정적으로 막지 않으며 실제로 너무 일찍 실행되면 기존 런타임 미바인딩 오류가 그대로 적용됩니다. |
| 5.19.782 | 내부 | 읽을 수 없거나 UTF-8 이 아닌 소스 파일을 더 이상 없는 파일로 보고하지 않습니다. 진입점과 임포트 해석이 그런 파일에 대해 TPZ3001 대신 로더 진단 TPZ3003 을 냅니다. |
| 5.19.781 | 내부 | 자기 자신과 견주는 검사 말고는 쓰이는 곳이 없던 파서 보조 함수를 모듈 내부로 감추고 그 검사를 지웠습니다. 토큰 보존과 관찰에 쓰이는 단계별 파싱 표면은 그대로이며 파싱과 구문 트리와 진단도 달라지지 않습니다. |
| 5.19.780 | 내부 | 동결된 v5.1 픽스처 개수와 v5.2 영역 표를 한 곳에서 소유하고 파서 검사와 topaz check-corpus 가 함께 읽습니다. 같은 표의 사본 둘이 일치한다는 것만 증명하던 검사는 없앴고 개수 자체는 그대로입니다. |
| 5.19.779 | 내부 | 선택 임포트에서 이름이 겹칠 때 뒤에 오는 문제 항목마다 TPZ2011 을 소스 순서대로 정확히 한 번씩 냅니다. 내보낸 이름과 지역 바인딩 두 축이 함께 부딪히면 내보낸 이름이 앞서며 두 컴파일러가 같은 결과를 냅니다. |
| 5.19.778 | 내부 | None 은 Option 생성자이므로 바인딩 이름으로 쓸 수 없습니다. None 이라는 이름의 상수 선언은 그 이름 자리에서 TPZ2012 로 거부되며 Stage 0 과 셀프호스트 파서가 같은 규칙을 적용합니다. |
| 5.19.777 | 내부 | Python 대조 하니스의 소스 지적 네 건을 정리했습니다. 임시 값을 만드는 쪽으로 바로 넘기고 조건 두 곳을 단순하게 폈으며 컴파일러와 런타임과 언어 소스는 그대로이고 하니스는 픽스처를 계속 어긋남 없이 비교합니다. |
| 5.19.776 | 내부 | 점이나 안전한 점 뒤에서 닿거나 레코드 필드 이름 자리에 적힌 키워드 이름 필드가 더 이상 match 나 concurrent 같은 구문으로 배치를 바꾸지 않습니다. 그런 멤버 접근 뒤의 여러 문장 블록과 그런 필드 뒤의 중첩 레코드 패턴이 올바로 파싱됩니다. |
| 5.19.775 | 내부 | 파이프라인 단계가 인자 어디에 있든 _ 자리표시자를 찾고 중첩된 파이프라인 앞에서 멈춥니다. 자리표시자가 없는 단계는 흘러온 값을 첫 인자로 그대로 받고 자리표시자가 있는 단계는 적힌 위치 인자와 이름 인자와 스프레드 인자를 모두 지킨 채 소스 순서대로 계산합니다. |
| 5.19.774 | 내부 | Stage 1 과 Stage 2 컴파일러 이미지 식별값을 툴체인을 빌드할 때 한 번 적어 두므로 값을 물어볼 때마다 내장 이미지 전체를 다시 해싱하지 않습니다. 이미지 바이트와 매니페스트와 실행 전 이미지를 검증하는 별도 검사는 그대로입니다. |
| 5.19.773 | 내부 | 필요한 Rust 툴체인 버전을 세 곳에 따로 적어 두지 않고 패키지 메타데이터에서 읽습니다. 봉인된 매니페스트는 같은 버전을 그대로 기록하며 이미지 바이트와 런타임 동작과 언어 의미는 달라지지 않습니다. |
| 5.19.772 | 내부 | 간결 컴파일러 이미지를 만들 때 길이만 보고 곧바로 직렬화하던 임시 목록 세 개를 더 만들지 않습니다. 이미지 스키마와 순서와 바이트는 똑같고 매니페스트와 런타임 동작도 그대로입니다. |
| 5.19.771 | 내부 | Stage 2 고정점 도구가 입력 경로를 정확히 하나만 받고 인자가 없거나 남으면 아무것도 읽기 전에 거부합니다. 경로 이름은 운영체제가 주는 형태 그대로 받아들이며 만들어지는 보고서 모양은 그대로입니다. |
| 5.19.770 | 내부 | Stage 1 컴파일러 이미지용으로 남아 있던 카나리아 도구를 없앴습니다. 부르는 곳이 더 없었고 공식 생성 경로와 비교 경로가 이미 맡고 있는 응답과 출처 처리를 중복으로 들고 있었습니다. |
| 5.19.769 | 내부 | Stage 2 두 번째 회차 생성기가 옵션을 한 번에 읽고 값이 빠졌거나 중복이거나 알 수 없는 옵션이면 생성 전에 거부합니다. 옵션 처리와 요약값 계산과 원자적 쓰기는 Stage 1 생성기와 함께 씁니다. |
| 5.19.768 | 내부 | Stage 1 이미지 생성기가 인자를 한 번만 읽고 값이 빠진 옵션과 중복되거나 알 수 없는 옵션과 쓰이지도 않을 입력 매니페스트를 거부합니다. 생산자를 지정하지 않았을 때만 해석 방식이 기본이 되고 링크 방식은 매니페스트를 먼저 읽습니다. |
| 5.19.767 | 내부 | Stage 1 비교 도구가 같은 출력을 두 번 만들어 일치했다고 안정성을 주장하지 않습니다. 한 번만 생성하고 링크 경로와 해석 경로가 같은 소스를 내놓아야 하며 컴파일과 실행 확인과 이미지 식별과 손상 및 잘못된 생산자 거부는 그대로 남습니다. |
| 5.19.766 | 내부 | 같은 출력을 두 번 만들어 자기 자신과 견주던 검사 두 개를 없앴고 이름도 실제로 관찰하는 성질에 맞게 바꿨습니다. 완료 상태와 타입과 낮춘 표현과 내보내기와 생성 소스 표면과 매니페스트 반입과 결과를 컴파일해 42 를 얻는 확인은 그대로 남습니다. |
| 5.19.765 | 내부 | 검사 픽스처 호스트가 소스 텍스트를 프로그램 전체 수명 값으로 요구하지 않고 빌려 씁니다. 그래서 동적으로 만든 소스 세 개를 흘려 둘 필요가 없어졌고 픽스처 텍스트와 검사가 관찰하는 내용은 그대로입니다. |
| 5.19.764 | 내부 | 컴파일러가 내보내는 JSON 의 숫자를 텍스트로 찍었다가 일반 읽기 경로로 되파싱하지 않고 곧바로 만듭니다. 정확한 십진 표기와 키 순서와 필드 이름과 개수와 서수와 위치는 그대로입니다. |
| 5.19.763 | 내부 | 타깃 어댑터 투영이 부모와 필드와 이름을 찾을 때마다 같은 구문 트리를 다시 훑지 않고 모듈마다 색인 하나를 만듭니다. 이름 개수와 첫 내보내기 함수 선택과 멤버와 페이로드와 기본값과 모양 투영은 그대로입니다. |
| 5.19.762 | 내부 | 정본 모양을 그대로 베낀 레코드 타입 세 개와 호스트 사실과 디렉터리 항목과 생성된 표준 모듈을 다시 만들던 변환 두 개를 셀프호스트 컴파일러의 요청 계층에서 없앴습니다. 필드 이름과 모양과 사실 순서와 중복 처리는 그대로입니다. |
| 5.19.761 | 내부 | 셀프호스트 컴파일러의 프로파일러가 조회할 때마다 식별값을 구분자 문자열로 엮지 않고 타입이 있는 중첩 맵으로 참조를 색인하며 목록 하나가 원본 참조와 대상 색인과 멤버 색인을 함께 소유합니다. 프로파일 판정과 코드와 메모와 위치와 순서는 그대로입니다. |
| 5.19.760 | 내부 | 낮춘 연산 목록을 셀프호스트 이미터가 한 번만 훑어 첫 등장 색인과 정렬된 런타임 잎을 담은 목록 하나를 만듭니다. 맵을 따로 만들고 같은 목록을 다시 훑지 않으며 연산 상한과 닫힌 정수 계산과 만들어지는 바이트는 그대로입니다. |
| 5.19.759 | 내부 | 셀프호스트 컴파일러의 검사기가 내부 레코드 타입 열아홉 개를 모듈 안에만 둡니다. 내보내는 것은 검사 진입점 하나뿐이며 필드와 조회와 단계와 진단과 위치는 예전 그대로 동작합니다. |
| 5.19.758 | 내부 | 셀프호스트 컴파일러의 이름 해석이 읽기와 포함 확인과 디렉터리 목록마다 사실 목록 전체를 훑지 않고 종류별 경로 색인으로 호스트 사실을 찾습니다. 질의 순서와 중복 시 첫 일치와 상태와 페이로드 바이트와 진단은 그대로입니다. |
| 5.19.757 | 내부 | 파서 상태 레코드를 셀프호스트 컴파일러 모듈 내부로 감췄습니다. 같은 상태가 공개 진입점 뒤에 있는 Stage 0 과 모양이 맞으며 내보내는 파싱 함수와 구문 트리와 진단과 메모와 위치와 복구는 그대로입니다. |
| 5.19.756 | 내부 | 생성된 표에서 쓰이지 않던 Unicode 버전 상수를 없앴습니다. 고정된 Unicode 16.0.0 자료의 권한은 생성기 한 곳에 그대로 있고 생성 헤더도 그 사실을 계속 적으며 문자 범위와 매핑 바이트는 하나도 달라지지 않았습니다. |
| 5.19.755 | 내부 | 셀프호스트 컴파일러의 Unicode 보조 함수 가운데 자기 모듈 안에서만 쓰이던 셋을 내부로 감춰 내보내는 함수가 일곱 개로 줄었습니다. 시그니처와 본문과 호출부와 Unicode 16.0 표는 그대로입니다. |
| 5.19.754 | 내부 | 이름 해석이 토큰 그래프 탐색으로 옮겨간 뒤 필요 없어진 내보내기를 들고 있던 렉서 보조 함수 네 개를 내부로 감췄습니다. 내보내는 것은 렉싱 진입점과 키워드 조회 둘만 남았고 시그니처와 본문과 호출부는 그대로입니다. |
| 5.19.753 | 내부 | 페이로드 레코드와 스키마 상수 셋이 셀프호스트 컴파일러의 이미터 모듈 안에만 남아 내보내기는 방출 단계 하나뿐이고 한 모듈은 필요 없던 임포트를 뺐습니다. 스키마 값과 만들어지는 바이트와 출처 정보는 그대로입니다. |
| 5.19.752 | 내부 | 자기 모듈 안에서만 쓰이던 출처 스키마 상수 하나를 더는 내보내지 않습니다. 값 자체와 그 값이 만드는 바이트와 읽는 쪽의 별도 검증은 그대로입니다. |
| 5.19.751 | 내부 | 아무도 쓰지 않던 교환용 레코드 하나와 참조되지 않던 임포트를 함께 지웠습니다. 요청 반입은 자기 전용 레코드를 그대로 쓰고 패키지 처리와 진단과 위치와 출력 모양은 달라지지 않았습니다. |
| 5.19.750 | 내부 | 셀프호스트 파서의 임포트 처리에 남아 있던 쓰이지 않는 지역 값을 지웠습니다. 임포트 경로와 선택과 별칭과 파서 위치와 복구와 진단과 위치 정보는 예전과 똑같이 동작합니다. |
| 5.19.749 | 내부 | macOS 내부 실행 감독자가 기존 시간과 메모리 감시 아래에서 요청 쓰기와 출력 읽기를 동시에 하므로 읽기를 멈춘 자식 프로세스가 진행을 막지 못합니다. 중괄호가 겹쳐 들어가 JSON 읽기를 깨뜨리던 결과 파일도 다시 올바른 객체 하나로 나옵니다. |
| 5.19.748 | 내부 | macOS 내부 샌드박스 감독자가 자식 프로세스에 요청을 쓰는 일과 출력을 읽어내는 일을 실제 시간 감시 아래에서 동시에 합니다. 입력을 전혀 읽지 않는 자식이 제한 시간 처리가 시작되기 전에 감독자를 막을 수 없습니다. |
| 5.19.747 | 내부 | 관리 아티팩트의 설치와 준비, 오래된 파일 정리가 상위 디렉터리마다 심볼릭 링크가 아닌 실제 디렉터리를 요구합니다. 예전 Python 마이그레이션은 링크된 캐시 디렉터리와 그것이 가리키는 바깥 내용을 건드리지 않고 남깁니다. |
| 5.19.746 | 내부 | 셀프호스트 컴파일러가 성공한 결과뿐 아니라 최종 결과 전체에 프로필 검사를 적용합니다. 거부된 프로그램도 구문 오류와 함께 TPZ2001 같은 프로필 진단을 그대로 지녀 Stage 0 컴파일러와 같은 결과를 보고합니다. |
| 5.19.745 | 내부 | 명령줄 도구가 실제 결과에 닿지도 못한 채 버려지던 자리표시 컴파일 기록을 더 이상 만들고 검사하지 않습니다. 검사 결과는 실제 컴파일에서 곧바로 나오며 보고되는 내용은 그대로입니다. |
| 5.19.744 | 내부 | 5.6.1 이전 웹 출력 디렉터리 마이그레이션이 로더에 토파즈가 직접 생성하는 서명 세 개가 모두 있을 때만 그 폴더를 자기 것으로 봅니다. 이름만 스친 사용자 번들은 정리 대상이 되지 않고 자바스크립트와 WASM, Cargo.toml 파일을 그대로 지킵니다. |
| 5.19.743 | 내부 | 윈도우 확장 드라이브 경로와 UNC 경로를 명령에 안전한 형태로 바꾸는 처리를 한 곳으로 합쳤습니다. 똑같은 구현이 두 벌 있던 자리이며 작업 공간 루트와 빌드 출력, 소스, 로그 경로 동작은 이전과 같습니다. |
| 5.19.742 | 내부 | 설치된 리스펙스 제품을 찾을 때 네 개의 아티팩트 신원을 고정된 표 하나에서 읽고 순서와 상태, 호스트, 경로, 크기, 해시를 공통 판정 하나로 확인합니다. 표시되는 정보와 실행 요청은 그대로입니다. |
| 5.19.741 | 내부 | 리스펙스 애플리케이션 계획과 호스트 판정이 여섯 개로 흩어져 있던 항목 대신 잠긴 규칙 신원 기록 하나를 들고 다니며 제한 프로필과 전체 프로필이 같은 방식으로 그 기록을 만듭니다. 동작과 잠금·아티팩트 검사는 그대로입니다. |
| 5.19.740 | 내부 | 가져오기 순환 보고가 단계마다 모든 간선을 다시 훑는 대신 순환 묶음마다 정렬된 이웃 목록을 따라갑니다. TPZ3006 메시지와 위치, 순환 하나에 진단 하나라는 규칙은 그대로입니다. |
| 5.19.739 | 내부 | 미리보기 관측을 만들 때 요청을 직렬화한 뒤 단계를 고치려고 다시 파싱하고 또 인코딩하던 과정을 없앴습니다. 공통 파일을 호출자의 실제 단계로 한 번에 모으며 관측 내용과 스키마, 진단은 그대로입니다. |
| 5.19.738 | 내부 | 검사기가 호출 지점 정보를 일곱 항목으로 흩어 넘기지 않고 기록 하나로 호출 해석과 완성, 타입 스킴 적용까지 들고 갑니다. 모듈 검사 결과도 깊게 중첩된 튜플 대신 이름 있는 기록으로 돌려주며 언어 의미와 진단은 그대로입니다. |
| 5.19.737 | 내부 | 인터프리터의 런타임 타입 검사가 별칭 순환 기록과 오류 위치를 상태값 하나에 담고, 열거형과 레코드, 뉴타입 검사는 런타임 정의를 곧바로 읽습니다. 인터프리터 동작과 오류 코드, 오류 위치는 그대로입니다. |
| 5.19.736 | 내부 | Python 백엔드가 모듈마다 런타임 내보내기 표를 한 번만 만들고 네임스페이스 가져오기와 읽기 전용으로 공유합니다. 깊은 복사를 하던 자리이며 생성되는 Python 코드와 순서, 오류 동작은 그대로입니다. |
| 5.19.735 | 내부 | 컴프리헨션 본문이 모음 종류와 어긋난 프로그램을 본문 실행 전에 소스 위치와 함께 거부합니다. 예전에는 이런 불일치가 엉뚱한 자리에 쌓이면서 조용히 빈 모음을 돌려주었습니다. |
| 5.19.734 | 내부 | 빌드 시점의 검사 하나가 생성된 컴파일러 매니페스트 전체를 확인하여 중복된 JSON 키와 알 수 없는 항목을 거부하고 컴파일러 페이로드도 압축 전에 확인합니다. 런타임은 매니페스트 바이트를 다시 파싱하지 않고 그 확인된 결과를 읽습니다. |
| 5.19.733 | 내부 | 리스펙스 제품 검사가 지금 배포된 릴리스를 그대로 기술하며 호스트에 올라간 기능은 전부 구현되어 있고 지원되지 않는 기능은 없습니다. 과거 전용 자료는 선택 활성화 뒤로 옮겼고 보관된 기록 자체는 그대로 둡니다. |
| 5.19.732 | 내부 | 패키지를 vendor 디렉터리로 복사할 때 대상을 건드리기 전에 후보의 이름과 버전, 해시를 확인하고 심볼릭 링크 상위 경로를 거부하며 실패하면 끝나지 않은 교체를 되돌립니다. topaz.toml 과 .tpz 소스는 일반 파일이어야 합니다. |
| 5.19.731 | 내부 | topaz.toml 이 알 수 없는 항목을 거부하고 버전과 경로를 함께 선언한 의존성도 거부합니다. topaz.lock 은 루트 행 하나와 직접 의존성마다 한 행만 허용하며, 매니페스트와 잠금 파일 읽기는 패키지 안에 머물면서 바깥을 가리키는 링크를 거부합니다. |
| 5.19.730 | 내부 | 패키지의 재생 픽스처와 선택 아티팩트를 엄격한 패키지 파일 읽기로 가져옵니다. 경로 어느 마디의 심볼릭 링크도, 패키지 루트 바깥으로 벗어나는 경로도, 일반 파일이 아닌 것도 거부하며 잠금 확인과 런타임 재생이 같은 바이트를 씁니다. |
| 5.19.729 | 내부 | 내보낸 let 과 const 를 셀프호스트 경로와 문서, 내보내기 목록이 제대로 알아봅니다. 타입 선언이 없다고 보고되던 자리입니다. 모듈은 최상위를 정확히 한 번만 실행하므로 내보낸 초기화 코드가 두 번 작동하지 않습니다. |
| 5.19.728 | 내부 | Map.filter 과 Map.mapValues 가 콜백을 부르기 전에 삽입 순서대로 쌍을 스냅샷으로 잡습니다. 같은 Map 을 콜백에서 바꾸어도 생성된 Rust 프로그램이 죽지 않으며 변경은 원본 Map 에 그대로 남고 콜백 호출 수도 늘지 않습니다. |
| 5.19.727 | 내부 | 이름 있는 JSON 스키마와 한정된 JSON 스키마를 만들 때 고정된 입력 여덟 가지를 값 하나로 넘기고 순회 상태만 따로 둡니다. 스키마 조회와 제네릭 치환, 재귀, 오류 동작은 그대로입니다. |
| 5.19.726 | 내부 | 생성 Rust 백엔드가 모듈과 함수, 위치 계층에 이름을 붙이고 for 패턴 생성의 고정 입력을 값 하나로 묶으며 읽지도 않던 선언 목록을 더 이상 들고 다니지 않습니다. 생성되는 코드와 오류 동작은 그대로입니다. |
| 5.19.725 | 내부 | 네이티브 호출 경계에서 바이트 레코드를 짧은 이름이 아니라 그것을 선언한 모듈의 신원으로 가려냅니다. 토파즈 5.20 에서는 다른 모듈의 같은 이름 레코드가 더 이상 받아들여지지 않고 토파즈 5.19 의 짧은 이름 동작은 그대로입니다. |
| 5.19.724 | 내부 | 명시된 선언 신원이 있으면 그것을, 없으면 공개 이름을 쓰는 규칙을 런타임마다 한 곳에 모았습니다. 동등 비교와 정렬, Map 과 Set 의 키, 레코드 펼치기, 언래핑, 패턴과 타입 검사가 모두 그 규칙을 읽으며 동작은 그대로입니다. |
| 5.19.723 | 내부 | 집합 스냅샷을 만드는 길이 똑같이 둘 있던 것을 하나로 합쳤습니다. 순회와 Set.toArray , union , intersection , difference 는 순서와 중복 제거, 결과가 모두 그대로입니다. |
| 5.19.722 | 내부 | Array.sortedBy 와 sortBy , retain 이 호출 대상과 항목을 곁에 복사해 두지 않고 대기 상태 하나에서만 읽습니다. 호출 순서와 인자 수, 남긴 항목의 의미, 오류 동작은 그대로입니다. |
| 5.19.721 | 내부 | 배열과 Map 의 고차 콜백이 두 벌로 적혀 있던 단계 규약을 하나로 공유합니다. map 과 filter , reduce , Map.filter , Map.mapValues 는 모든 런타임에서 호출 순서와 결과, 오류가 그대로입니다. |
| 5.19.720 | 내부 | 타입 있는 JSON 스키마를 만들 때 쓰는 별칭과 레코드, 열거형, 뉴타입 조회가 네 번 반복되던 모양을 하나로 공유합니다. 조회 결과와 치환, 재귀 한계, 타입 있는 JSON 오류 동작은 그대로입니다. |
| 5.19.719 | 내부 | 스키마 타입 문법을 훑는 두 검사가 각자 모든 타입 마디를 나열하는 대신 소스 순서로 도는 순회 하나를 공유합니다. 토파즈 5.20 이전의 가져온 스키마 거부와 블록 지역 별칭 거부는 이전과 똑같이 동작합니다. |
| 5.19.718 | 내부 | 타입의 네임스페이스 한정이 모든 타입 종류를 손으로 다시 짜지 않고 공통 구조 순회를 씁니다. 네임스페이스 표에 이름이 있는 열거형과 레코드, 뉴타입 마디만 바꾸며 타입 결과는 그대로입니다. |
| 5.19.717 | 내부 | 검사기에 손으로 관리하던 타입 모양 목록 두 개가 더 있었는데 이를 공통 순회로 바꿨습니다. 내보낸 이름 있는 타입 신원 수집과 생성된 리스펙스 운반 타입 봉인은 결과가 그대로입니다. |
| 5.19.716 | 내부 | 검사기가 이름 있는 타입 신원을 바꾸는 일을 처리하는 곳을 하나로 합쳤습니다. 토파즈 5.19 의 선택 가져오기 재결합과 토파즈 5.20 의 모듈 고정 정규화가 똑같이 두 벌로 적혀 있던 자리이며 결과는 둘 다 그대로입니다. |
| 5.19.715 | 내부 | 아직 준비되지 않은 최상위 함수나 let 을 참조하는 경우를 찾을 때 식과 블록이 같은 조회와 같은 기준을 씁니다. TPZ5002 메시지와 첫 위반 위치, const 예외는 그대로입니다. |
| 5.19.714 | 내부 | 검사기가 추론 변수를 모을 때 검사를 둘로 겹쳐 두지 않고 조건을 한 번에 씁니다. 처음 본 순서와 중복 제거는 그대로입니다. |
| 5.19.713 | 내부 | JSON 스키마 키를 만들 때 실제로 쓰는 값만 받습니다. 선언 목록이 손대지 않은 채 그냥 지나가던 자리이며 키 바이트와 순서, 치환, 재귀 한계, 타입 있는 JSON 결과는 그대로입니다. |
| 5.19.712 | 내부 | 모듈 순환을 보고할 때 기준점을 참조 한 겹 더 거치지 않고 곧바로 넘깁니다. 순환 탐지와 보고되는 경로, 메시지는 그대로입니다. |
| 5.19.711 | 내부 | 모듈 내보내기를 타입과 값 두 가지로만 분류합니다. 함수와 let , const 를 따로 구분해 두었지만 그 차이를 읽는 곳이 없던 자리이며 가져오기 적격성과 제안, 내보내기 진단은 이전과 같습니다. |
| 5.19.710 | 내부 | 값 참조를 해석할 때 뒤이어 진단이 필요한 경우, 곧 가져온 바인딩과 네임스페이스만 알려 줍니다. 평범한 모듈 바인딩은 아무것도 알리지 않으며 읽기와 쓰기, 진단은 그대로입니다. |
| 5.19.709 | 내부 | 지역 값이 가져온 네임스페이스를 가리는지 판단할 때 다른 지역 조회와 같은 어휘 탐색을 씁니다. 거의 같은 탐색이 하나 더 있던 자리이며 가리기와 우선순위, 네임스페이스 진단은 그대로입니다. |
| 5.19.708 | 내부 | 이름 있는 타입을 해석할 때 어휘 스코프를 먼저 보고 지역 바인딩이 없을 때만 모듈 표를 봅니다. 늘 둘 다 조회하던 자리이며 가리기와 우선순위, 해석 실패 보고는 그대로입니다. |
| 5.19.707 | 내부 | 내보낸 시그니처를 검사할 때 공개 타입을 목록에 모았다가 다시 도는 대신 만나는 자리에서 바로 훑습니다. 공개 시그니처의 비공개 타입을 알리는 TPZ3014 는 위치와 순서가 그대로입니다. |
| 5.19.706 | 내부 | 가져오기 표면 검증이 읽지도 않던 현재 모듈 표를 더 이상 받지 않습니다. TPZ3010 과 TPZ3009 메시지와 위치, 순서, 제안은 그대로입니다. |
| 5.19.705 | 내부 | 값 참조를 기록할 때 무엇을 찾았는지 함께 알려 주므로 식별자 경로와 대입 경로가 스코프 탐색과 표 조회를 다시 하지 않습니다. TPZ3012 와 TPZ3015 메시지는 위치와 순서가 그대로입니다. |
| 5.19.704 | 내부 | 네임스페이스 멤버를 해석할 때 내보내기를 한 번만 조회하고 그 결과를 분류와 모든 진단 갈래에서 다시 씁니다. TPZ3013 과 TPZ3010 , TPZ0002 메시지와 비공개 레코드 기본값 예외는 그대로입니다. |
| 5.19.703 | 내부 | 한정된 타입 이름이 네임스페이스 머리를 한 번만 해석하고 그 대상을 멤버와 내보내기, 참조 처리에 다시 씁니다. 잘못된 머리를 알리는 TPZ3013 은 위치와 순서가 그대로입니다. |
| 5.19.702 | 내부 | 셀프호스트 컴파일러에서 참조를 해석할 때 찾은 모듈 바인딩을 함께 돌려주므로 대입 경로와 값 경로가 지역 조회와 표 조회를 다시 하지 않습니다. TPZ3013 과 TPZ3005 메시지는 그대로입니다. |
| 5.19.701 | 내부 | 선택 가져오기 별칭을 타입 자리에서 쓰면 지역 별칭 이름을 기록하므로 셀프호스트 컴파일러와 Stage 0 컴파일러가 같은 참조 대상을 말합니다. 값 자리에서는 여전히 원래 모듈과 내보낸 이름을 기록합니다. |
| 5.19.700 | 내부 | 모듈 표를 만들 때 없는 바인딩을 음수 색인 대신 값 없음으로 다루면서 내보내기 색인을 고르고 충돌인지 삽입인지 가릅니다. TPZ3008 메시지와 중복 내보내기 동작은 그대로입니다. |
| 5.19.699 | 내부 | 네임스페이스 멤버 해석이 없는 내보내기를 음수 색인과 빈 네임스페이스 문자열로 눌러 담지 않고 값 없음 그대로 둡니다. 멤버 의미와 비공개 레코드 기본값 예외, 진단은 모두 그대로입니다. |
| 5.19.698 | 내부 | 읽기 전용 조회가 셀프호스트 컴파일러에서 음수가 될 수 있는 색인을 받아 배열을 다시 뒤지지 않고 모듈 표 기록을 곧바로 가져옵니다. 진단과 순서, 가져오기·내보내기 표면은 그대로입니다. |
| 5.19.697 | 내부 | 모듈 바인딩을 읽기만 하는 셀프호스트 컴파일러의 경로 여덟 곳이 음수가 될 수 있는 색인 대신 바인딩 기록을 곧바로 가져옵니다. 참조 대상과 네임스페이스·내보내기 상태, 진단은 그대로입니다. |
| 5.19.696 | 내부 | 프로토콜 선언을 임시 바인딩으로 먼저 짓지 않고 선언 사실로 곧바로 기록합니다. 순서와 위치, 네임스페이스·내보내기 상태, 진단은 그대로입니다. |
| 5.19.695 | 내부 | 선언 사실을 바인딩마다 통째로 다시 짓지 않고 기존 모듈 바인딩에서 뽑아내며 최종 네임스페이스와 내보내기 여부만 따로 넘깁니다. 사실과 순서, 위치, 진단은 그대로입니다. |
| 5.19.694 | 내부 | 내보낸 이름마다 바인딩 색인과 네임스페이스를 함께 지닌 항목을 한 번만 조회합니다. 같은 이름을 두 번 따로 조회하던 자리이며 내보내기 사실과 순서, 제안, 진단은 그대로입니다. |
| 5.19.693 | 내부 | 모듈마다 중복 없는 내보내기 이름을 정렬해 한 벌 두고 빈 내보내기 판정과 제안, 내보내기 사실이 모두 그것을 다시 씁니다. 예전에는 쓸 때마다 바인딩을 훑고 배열을 새로 정렬했습니다. |
| 5.19.692 | 내부 | 내보내기 사실을 모듈 순서대로 덧붙이고 모듈 안의 이름은 이미 정렬되어 있습니다. 내보낼 때마다 쌓인 목록 전체를 다시 훑고 밀어내던 처리를 없앴으며 결과 순서와 내용은 똑같습니다. |
| 5.19.691 | 내부 | 내보내기 시그니처 검증이 표를 모듈 순서 그대로 위치로 집습니다. 표가 모듈 순서대로 만들어지기 때문이며 검증을 조용히 건너뛸 수 있던 중복 신원 조회가 사라졌습니다. |
| 5.19.690 | 내부 | 모듈 소스 텍스트를 모듈을 파싱할 때 UTF-8 로 한 번만 인코딩하고 이후 단계들이 그 결과를 함께 씁니다. 예전에는 다섯 단계가 저마다 같은 소스 전체를 다시 인코딩했습니다. |
| 5.19.689 | 내부 | 성공적으로 파싱된 모듈이 무엇인지는 통과 모듈 목록 하나만 알고 있습니다. 옆에 신원 집합을 따로 두던 자리이며 탐색과 간선 정리, 순환 보고, 의존성 순서는 그대로입니다. |
| 5.19.688 | 내부 | 가져오기 판정을 한 번에 내리면서 경로와 소스, 물리 별칭, 표준 모듈 출처를 함께 만듭니다. 여섯 곳이 같은 경로를 다시 짓고 같은 사실을 다시 훑던 자리이며 질의 순서와 경로 배정, 별칭 충돌, 진단은 그대로입니다. |
| 5.19.687 | 내부 | 물리 별칭이 겹쳐 거부된 모듈이 자기 가져오기가 가리키는 파일을 호스트에 더 이상 묻지 않습니다. 파싱 전에 따로 돌던 스캐너를 없애고 파서가 만드는 모듈 그래프만 가져오기를 찾으며 TPZ3004 메시지는 그대로입니다. |
| 5.19.686 | 내부 | 가져오기 뒤 주석 안에 쓴 중괄호가 그다음 가져오기를 가리지 않습니다. 모듈 탐색이 중괄호를 세기 전에 줄 주석과 블록 주석을 건너뛰므로 이런 주석이 있는 소스도 파일을 묻는 회차가 더 늘지 않습니다. |
| 5.19.685 | 내부 | 모듈 탐색이 모듈 경로 마디로 진짜 식별자만 받습니다. import function 과 import * , import lib.function , import lib.sub"text" 가 더 이상 호스트에 파일을 묻게 하지 않으며 이 형태들은 전에도 가져오기 간선을 만들지 않았습니다. |
| 5.19.684 | 내부 | 점이 들어간 가져오기에서 점 둘레의 공백과 줄바꿈, 주석을 파서와 같은 방식으로 읽습니다. import lib . sub 이 상위 모듈이 아니라 중첩된 모듈 파일을 호스트에 묻습니다. 뒤에 마디가 없는 점은 경로를 반쪽으로 남기지 않고 버립니다. |
| 5.19.683 | 내부 | import 머리 뒤의 문장 구분자가 모듈 탐색에서도 가져오기를 끝냅니다. import 다음에 줄바꿈이나 세미콜론, 줄 주석이 오면 컴파일러가 호스트에 파일을 묻지 않습니다. 파서는 원래 이런 형태를 가져오기로 읽지 않았습니다. |
| 5.19.682 | 내부 | 모듈 탐색이 줄 주석을 줄바꿈에서만 끝내고 폼 피드를 공백으로 보지 않아 렉서와 같아집니다. 주석 처리된 가져오기 뒤에 캐리지 리턴만 온 경우에도 컴파일러가 호스트에 그 파일을 묻지 않습니다. |
| 5.19.681 | 내부 | 모듈 탐색이 중첩 깊이를 세지 않고 언어 명세대로 첫 닫는 표시에서 블록 주석을 끝냅니다. 해석 결과와 진단, 호스트에 던지는 질문은 그대로입니다. |
| 5.19.680 | 내부 | 식별자가 끝나는 자리를 찾는 일을 셀프호스트 컴파일러의 공통 처리 하나가 맡고 렉서와 모듈 탐색이 함께 씁니다. 기간 접미사와 레이블, 키워드, 태그 붙은 문자열, Unicode 식별자 규칙은 동작이 그대로입니다. |
| 5.19.679 | 내부 | 식별자를 검사할 때 셀프호스트 렉서가 두 벌로 나뉘어 있던 문자 폭 계산을 한 경로로 모읍니다. 식별자를 시작하거나 이어 갈 수 있는 문자는 Unicode 문자와 숫자, 이모지를 포함해 그대로입니다. |
| 5.19.678 | 내부 | 줄 이어짐을 결정하는 토큰 목록을 레이아웃마다 한 곳에서 선언합니다. 줄바꿈 앞뒤로 어떤 토큰이 줄을 잇는지는 앞에만 오는 else 와 뒤에만 오는 쉼표, 굵은 화살표를 포함해 그대로입니다. |
| 5.19.677 | 내부 | 한 줄 문자열 보간 안에서 줄바꿈을 만났을 때의 복구를 Stage 0 렉서가 한 경로로 처리합니다. 직접 만나든 중첩된 문자열에서 만나든 같으며 토큰과 진단, 들여쓰기 검사는 그대로입니다. |
| 5.19.676 | 내부 | 문자열을 검사할 때 셀프호스트 렉서가 구분자 길이를 따로 들고 있지 않고 여러 줄 여부에서 바로 끌어냅니다. 두 값이 어긋나는 상태가 사라졌고 토큰과 진단, 위치는 그대로입니다. |
| 5.19.675 | 내부 | 여러 줄 문자열이 한 줄 보간 안에 놓였을 때 Stage 0 렉서가 감싸는 보간을 두 번 찾지 않고 한 번만 찾습니다. 줄바꿈 복구와 토큰, 진단, 들여쓰기 검사는 그대로입니다. |
| 5.19.674 | 내부 | Stage 0 렉서의 보간이 한 줄인지 여러 줄인지를 따로 들고 있지 않고 감싸는 문자열에서 그대로 가져옵니다. 둘이 서로 다른 종류를 가리키는 상태가 없어졌고 렉싱 동작은 그대로입니다. |
| 5.19.673 | 내부 | Stage 0 의 문자열 모드가 여러 줄 들여쓰기 정보를 옆에 둔 별도 스택이 아니라 스스로 들고 있습니다. 둘이 어긋날 여지가 사라졌고 토큰과 진단, 들여쓰기 검사, 복구는 그대로입니다. |
| 5.19.672 | 내부 | 태그 문자열을 검사할 때 셀프호스트 렉서가 문자열 검사 결과를 그대로 넘깁니다. 낱낱이 분해했다 다시 만들지 않으며 태그 템플릿의 토큰 결과는 이전과 똑같습니다. |
| 5.19.671 | 내부 | 일반 코드와 문자열, 보간 검사가 셀프호스트 렉서에서 하나의 결과를 돌려줍니다. 같은 내용을 이름만 달리 담던 두 결과가 사라졌고 렉싱 결과물은 달라지지 않았습니다. |
| 5.19.670 | 내부 | 줄 주석과 블록 주석이 셀프호스트 렉서에서 한 갈래로 들어가고 주석 종류는 한 곳에서 정해집니다. 주석 토큰과 닫히지 않은 주석 진단, / 와 /= 토큰은 그대로입니다. |
| 5.19.669 | 내부 | 문자열 검사와 일반 토큰 검사가 셀프호스트 렉서에서 결과 기록을 하나로 함께 씁니다. 같은 내용을 담던 두 벌의 타입 정의가 하나로 줄었고 토큰화와 태그 템플릿 인접, 복구는 그대로입니다. |
| 5.19.668 | 내부 | 모은 토큰과 진단을 넘긴 뒤에는 셀프호스트 렉서의 보간 검사가 호출한 쪽이 실제로 쓰는 값만 돌려줍니다. 이미 넘긴 내용이 밖으로 새지 않으며 문자열 토큰화와 복구는 그대로입니다. |
| 5.19.667 | 내부 | 셀프호스트 레이아웃에서 중괄호의 배치 방식을 고르는 일과 대기 중인 concurrent 표시를 소비하는 일이 한 판단으로 합쳐집니다. 되풀이되던 상태 확인이 사라졌고 모듈 임포트와 레코드 패턴, 본문 배치는 그대로입니다. |
| 5.19.666 | 내부 | 중괄호 미리보기가 셀프호스트 레이아웃에서 두 토큰을 한 번에 읽습니다. 두 번째 토큰을 위해 앞의 줄바꿈을 다시 훑던 일이 사라졌고 레코드 필드 판별과 중괄호 배치 방식은 그대로입니다. |
| 5.19.665 | 내부 | 셀프호스트 컴파일러의 레이아웃 프레임이 배치 방식과 여는 구분자를 자유로운 문자열이 아니라 정해진 값으로 담습니다. 알려지지 않은 값이 들어갈 자리가 없어졌고 레이아웃 결과는 그대로입니다. |
| 5.19.664 | 내부 | 직전 유효 토큰을 없음을 뜻하는 빈 문자열이 아니라 있음과 없음으로 구분해 셀프호스트 레이아웃이 기록합니다. 줄 이어짐 판단과 구분자, 레이아웃 결과는 그대로입니다. |
| 5.19.663 | 내부 | 활성 패턴 구역이 셀프호스트 레이아웃에서 깊이와 종류를 한 값으로 함께 담고, 종류는 바인딩과 case, for 구역으로 한정됩니다. 패턴 배치와 패턴 파이프 이어짐은 그대로입니다. |
| 5.19.662 | 내부 | 셀프호스트 컴파일러의 레이아웃 프레임이 배치 방식과 여는 구분자, 항목 유무를 각각 담던 세 배열 대신 한 스택에 모입니다. 셋이 서로 다른 프레임을 가리킬 여지가 사라졌고 레이아웃 결과는 그대로입니다. |
| 5.19.661 | 내부 | 대기 중인 암묵 구분자를 참거짓 표시와 낡을 수 있는 위치 값이 아니라 하나의 선택적 토큰으로 셀프호스트 레이아웃이 담습니다. 암묵 구분자 자리와 명시적 세미콜론, 토큰 결과는 그대로입니다. |
| 5.19.660 | 내부 | concurrent 머리말이 잘못 겹친 소스에서 셀프호스트 레이아웃이 엉뚱한 문장 구분자를 만들지 않습니다. 구분자를 만나면 현재 깊이에 남은 표시를 모두 지우고, 정상적인 concurrent 본문은 그대로 표시 하나만 씁니다. |
| 5.19.659 | 내부 | 셀프호스트 렉서의 보간 결과에서 쓰이지 않던 항목을 걷어냈습니다. 정상 종료와 파일 끝 균형, 줄바꿈 복구는 이미 토큰과 다음 위치가 말해 주므로 토큰과 진단, 위치는 그대로입니다. |
| 5.19.658 | 내부 | 소스 안의 폼피드 문자를 셀프호스트 렉서가 공백으로 조용히 받아들이지 않고 TPZ0001 로 거부합니다. Stage 0 컴파일러와 같아졌으며 공백과 탭, 캐리지 리턴, 줄바꿈 처리는 그대로입니다. |
| 5.19.657 | 내부 | 셀프호스트 파서가 범위를 벗어난 미리보기에서 따로 만든 끝 표시가 아니라 스트림의 실제 마지막 토큰을 돌려줍니다. 폴백 경로들이 서로 어긋나지 않고 끝 토큰의 종류와 위치, 진단, 복구는 그대로입니다. |
| 5.19.656 | 내부 | 파서 허용 표시 두 개를 기본값을 낀 조회와 꺼냈다 넣기가 아니라 셀프호스트 컴파일러가 곧바로 읽고 씁니다. 비어 있는 잘못된 자리가 조용히 메워지는 일이 없어졌고 파싱 결과는 그대로입니다. |
| 5.19.655 | 내부 | 셀프호스트 파서가 위치와 직전 범위 커서를 빈 자리일 때 호출자가 준 값을 지어내던 도우미를 거치지 않고 곧바로 읽습니다. 구문 트리와 진단, 위치, 복구는 그대로입니다. |
| 5.19.654 | 내부 | 두 컴파일러가 대기 중인 > 를 일반 토큰 커서로 소비해 닫는 꺾쇠의 주인이 하나가 됐습니다. 중첩 제네릭과 쉼표로 나눈 타입 인자, >> 의 분리, 잘못된 여분 닫기 처리는 그대로입니다. |
| 5.19.653 | 내부 | 타입 인자 목록을 끝낼 때 셀프호스트 파서가 대기 중인 닫는 꺾쇠 저장소를 따로 보지 않고 토큰 커서만 봅니다. 타입 인자 파싱과 구문 트리, 진단은 그대로입니다. |
| 5.19.652 | 내부 | 보간이 들어간 문자열을 리터럴 타입으로 쓰면 셀프호스트 파서가 TPZ2001 로 거부합니다. Stage 0 컴파일러가 이미 내던 것과 같은 코드와 메시지, 위치를 쓰며 예전에는 그대로 통과했습니다. |
| 5.19.651 | 내부 | 매개변수 이름으로 None 을 쓰면 두 컴파일러 모두 TPZ2012 로 거부합니다. 일반 함수와 프로토콜 메서드, 두 가지 람다 형태에 모두 적용되며 None 은 Option 생성자라 보통 이름으로 쓸 수 없습니다. |
| 5.19.650 | 내부 | using 자원의 이름을 None 으로 묶으면 셀프호스트 파서가 TPZ2012 로 거부해 Stage 0 컴파일러와 같아집니다. 자원 값과 본문 파싱, 다른 바인딩 형태는 그대로입니다. |
| 5.19.649 | 내부 | 키워드를 이름으로 쓴 네임스페이스 멤버를 참조하면 셀프호스트 컴파일러가 내보내지 않았다는 일반 오류 대신 TPZ3013 을 냅니다. 같은 소스에 두 컴파일러가 같은 진단을 내놓습니다. |
| 5.19.648 | 내부 | 타입 자리에 쓰인 네임스페이스 멤버가 셀프호스트 컴파일러에서 타입 대상으로 기록되고, 비공개 레코드 기본값 예외는 값 자리에만 적용됩니다. 타입으로 참조된 비공개 바인딩이 다시 TPZ3009 를 냅니다. |
| 5.19.647 | 내부 | 최상위 이름이 충돌한 모듈도 셀프호스트 컴파일러에서 선언한 내보내기를 그대로 지킵니다. 임포트한 쪽이 모듈에 내보낸 것이 없다는 잘못된 보고를 받지 않으며 충돌 자체는 그대로 보고합니다. |
| 5.19.646 | 내부 | 임포트 표면 검사가 이름 충돌이 이미 보고된 뒤에도 셀프호스트 컴파일러에서 계속 돌아 관계없는 임포트 오류가 묻히지 않습니다. 두 컴파일러 모두 충돌을 먼저 내고 임포트 오류를 이어서 냅니다. |
| 5.19.645 | 내부 | 이름이 이미 충돌한 자리에서도 export let mut 선언이 셀프호스트 컴파일러에서 TPZ3011 을 냅니다. 진단이 빠지지 않으며 두 컴파일러가 보고 순서까지 같아집니다. |
| 5.19.644 | 내부 | 한 스코프에서 같은 이름을 두 번 선언한 뒤의 참조가 셀프호스트 컴파일러에서 첫 선언이 아니라 나중 선언을 가리킵니다. 중첩 스코프의 가림과 기록되는 선언 자체는 그대로입니다. |
| 5.19.643 | 내부 | 두 컴파일러가 임포트한 모듈의 초기화 블록을 검사할 때 중첩된 using 문 안까지 봅니다. 자원 값이나 본문에서 뒤에 오는 이름을 앞질러 참조하면 그냥 넘어가지 않고 TPZ3018 을 냅니다. |
| 5.19.642 | 내부 | 구조적 레코드 타입이나 레코드 리터럴에 같은 필드가 두 번 나오면 셀프호스트 검사기가 받아들이지 않고 TPZ5022 로 거부합니다. 필드 순서를 다르게 적은 레코드는 여전히 같은 기대 타입에 대입됩니다. |
| 5.19.641 | 내부 | 내장 함수가 셀프호스트 검사기에서 타입과 호출 서명을 한 목록에서 함께 가져옵니다. 같은 매개변수 이름과 기본값, 개수를 두 곳이 따로 적던 상태가 사라졌고 내장 호출 동작은 그대로입니다. |
| 5.19.640 | 내부 | Stage 0 컴파일러의 모듈 단위 검사가 타입 결과를 남기든 남기지 않든 한 경로로 돕니다. 의존 순서와 진입점 검사, 내보내기, 별칭, 프로토콜 준수는 그대로입니다. |
| 5.19.639 | 내부 | 구조적 레코드가 셀프호스트 검사기에서 표준 필드 순서를 한 곳에서 정합니다. 순서를 거꾸로 적은 레코드도 같은 바인딩 타입을 얻고, 정확한 레코드 타입이 기대되는 자리에서는 알려진 필드가 리터럴 타입을 지킵니다. |
| 5.19.638 | 내부 | 타입 인자 치환이 호출마다 두 벌의 나란한 목록을 다시 만들지 않고 셀프호스트 검사기에서 바인딩을 곧바로 읽습니다. 배열 정렬은 원소 타입을 한 번만 구해 능력 판정과 진단 문구에 함께 씁니다. |
| 5.19.637 | 내부 | 내보낸 제네릭 타입 별칭이 enum 과 레코드 타입, newtype 에도 타입 인자를 채워 넣습니다. 네임스페이스로 한정한 별칭을 거쳐 닿는 필드와 변형 패턴, 메서드가 실패하지 않고 풀리며 지역 별칭은 이전과 같습니다. |
| 5.19.636 | 내부 | 셀프호스트 검사기에서 명시한 타입 인자와 기대 결과 타입은 리터럴 타입을 지키고 일반 인자는 예전처럼 넓힙니다. 리터럴 타입 인자를 담은 제네릭을 돌려주는 문맥 호출이 거부되지 않고 통과합니다. |
| 5.19.635 | 내부 | 타입 순회를 셀프호스트 검사기에서 타입에 묻는 판단 하나와 부분을 바꿔 쓰는 변환 하나가 나눠 맡습니다. 같은 자식들을 각자 훑던 일곱 갈래가 정리됐고 판단마다의 규칙은 그대로 남았습니다. |
| 5.19.634 | 내부 | Stage 0 컴파일러가 타입의 부분을 한 곳에 모은 목록을 따라 훑습니다. 미지 타입 탐지와 변수 수집, 투영 탐지, 이름 있는 타입의 인자 검사에 흩어져 있던 같은 자식 목록이 정리됐고 판단마다의 규칙은 그대로입니다. |
| 5.19.633 | 내부 | 능력 검사 다섯 가지가 셀프호스트 검사기에서 이름 있는 타입의 자식을 뽑아내는 한 가지 방식을 함께 씁니다. 레코드와 enum, newtype 조회, 제네릭 치환을 한 번만 적으며 어떤 타입이 비교와 정렬, 키, JSON 에 쓰일 수 있는지는 그대로입니다. |
| 5.19.632 | 내부 | Stage 0 컴파일러의 JSON 인코딩과 디코딩 능력 검사가 한 순회를 함께 쓰면서 실제 차이 두 가지는 그대로 둡니다. 내장 타입 하나는 인코딩만 되고, 재귀적인 이름 있는 타입은 유한한 스키마가 필요한 디코딩에서 거부됩니다. |
| 5.19.631 | 내부 | Stage 0 컴파일러의 프로토콜 호출이 수신자를 한 번만 추론해 그 타입을 디스패치 검사에 다시 씁니다. 수신자 식을 두 번 훑던 일이 없어졌고 준수 허용과 거부, 진단은 그대로입니다. |
| 5.19.630 | 내부 | Stage 0 컴파일러의 JSON.stringify 인코딩 가능 검사가 이미 구한 인자 타입을 다시 쓰고, 그 타입이 아직 정해지지 않았을 때만 추가 조사를 합니다. 어떤 값이 인코딩되는지는 그대로입니다. |
| 5.19.629 | 내부 | Stage 0 컴파일러에서 함수 본문과 수신자 메서드 본문이 반환 문맥과 반복문 격리, 생략된 반환 수집을 한 흐름으로 함께 씁니다. 자유 함수는 여전히 추론한 서명을 공개하고 메서드는 메서드 목록을 갱신합니다. |
| 5.19.628 | 내부 | Stage 0 컴파일러의 한 어휘 스코프가 바인딩 타입과 변경 가능한 이름, 대기 중인 반환, 별칭 연결, 호출 정보를 다섯 개의 나란한 목록이 아니라 한 프레임에 담습니다. 가림과 변경 가능성, 재귀 진단은 그대로입니다. |
| 5.19.627 | 내부 | Stage 0 컴파일러가 수신자 메서드와 직접 작성한 프로토콜 메서드, 준수 관계를 겹쳐 놓은 목록으로 조회하고, 셀프호스트 검사기는 목록을 훑는 대신 색인으로 준수 여부를 답합니다. 출력 순서는 그대로입니다. |
| 5.19.626 | 내부 | 편집기의 자동 완성과 서명 도움말이 내장 이름보다 소스에 실제로 있는 바인딩을 먼저 찾습니다. Map 이라는 이름의 배열은 배열 멤버를 보여 주고, 직접 만든 print 함수는 내장 서명이 아니라 자기 서명을 보여 줍니다. |
| 5.19.625 | 내부 | 편집기 자동 완성이 검사기가 실제로 받아들이는 내장 이름을 모두 보여 줍니다. ByteBuffer 와 template 같은 타입, Math 와 JSON, Test 같은 정적 네임스페이스, Show 같은 프로토콜, RoundingMode 값이 함께 나옵니다. |
| 5.19.624 | 내부 | 타입 이름을 붙인 레코드 패턴이 Stage 0 이름 해석 단계에서 필드 바인딩을 제대로 등록합니다. 임포트한 모듈의 초기화 블록에 있는 정상 소스가 TPZ3018 을 잘못 받지 않고, 그 패턴 안의 타입 붙은 하위 패턴도 선언을 가리킵니다. |
| 5.19.623 | 내부 | Stage 0 컴파일러의 최상위 초기화 검사가 타입 이름을 붙인 레코드 패턴이 묶는 이름까지 모읍니다. 블록 안의 바인딩이 뒤에 오는 최상위 이름을 제대로 가리므로 TPZ5002 를 잘못 받지 않습니다. |
| 5.19.622 | 내부 | 셀프호스트 검사기 소스가 봉인된 Stage 2 컴파일러를 진단 없이 통과합니다. return 으로 끝나는 match 갈래 때문에 넓어지던 값을 구체적으로 유지하고, 배열은 길이를 확인한 뒤 다루며 값이 정해진 뒤에만 타입이 붙은 도우미로 넘어갑니다. |
| 5.19.621 | 내부 | 깊게 재귀하는 프로그램이 호스트 스택을 소진하지 않고 언어의 재귀 한계에 닿아 호출 자리에서 TPZ5009 를 보고합니다. 64 MiB 실행 스택 하나를 대상 제품과 내장 컴파일러 이미지가 함께 씁니다. |
| 5.19.620 | 내부 | 최상위 바인딩 색인을 참조마다 모든 최상위 문을 다시 훑는 대신 셀프호스트 검사기가 모듈당 한 번만 만듭니다. 초기화 순서 규칙과 TPZ5002 진단은 그대로입니다. |
| 5.19.619 | 내부 | 두 컴파일러가 이름 있는 모든 타입에 정확한 개수의 타입 인자를 요구합니다. int 과 string 부터 Array, Map, Option, 직접 만든 레코드와 enum, newtype 까지 해당하며 File 은 open 이 돌려주는 자원을 가리키고 단위 타입의 표기는 () 하나뿐입니다. |
| 5.19.618 | 내부 | 값이나 반환 타입에 template 을 적는 표기가 두 컴파일러에서 제대로 동작합니다. 이름만 같은 두 타입이 어긋난다는 오류가 사라졌고, template 이라는 이름으로 레코드나 enum, newtype 을 선언하면 TPZ5022 로 거부합니다. |
| 5.19.617 | 내부 | 보간이 들어간 문자열을 함수 매개변수 기본값으로 쓰면 셀프호스트 검사기가 거부합니다. 예전에는 받아들였고, 글자만으로 이뤄진 문자열만 상수 식으로 인정해 Stage 0 컴파일러와 같아집니다. |
| 5.19.616 | 내부 | ByteBuffer 를 보간하거나 레코드와 유니온, enum 페이로드, newtype 안에 그것을 품은 값을 보간하면 셀프호스트 검사기가 TPZ5001 로 거부합니다. 일반 문자열과 태그 템플릿 모두 해당하며 예전에는 그냥 지나갔습니다. |
| 5.19.615 | 내부 | 수신자가 프로토콜을 따르지 않아 호출이 거부될 때도 셀프호스트 검사기가 나머지 인자를 계속 검사합니다. 잘못된 인자 타입이 준수 오류 뒤에 가려지지 않고 함께 보고됩니다. |
| 5.19.614 | 내부 | TPZ5004 의 인자 개수가 호출 자리에서 실제로 건넨 인자 수를 알려 줍니다. 파이프로 넘긴 값과 넘치는 인자까지 세므로 매개변수 하나짜리 함수에 인자를 둘 주면 하나가 아니라 둘로 보고합니다. |
| 5.19.613 | 내부 | 맵 리터럴에 같은 소수나 단위 값을 키로 두어도 셀프호스트 검사기가 검사 단계에서 TPZ5602 로 거부하지 않습니다. 정적 중복 판정은 정수와 불, 보간 없는 문자열 키에만 적용되고 실행 중에 발견된 중복 키는 여전히 TPZ4601 오류입니다. |
| 5.19.612 | 내부 | 기대하는 매개변수 개수와 다른 람다를 넘기면 셀프호스트 검사기가 타입 불일치보다 먼저 TPZ5004 를 냅니다. Stage 0 컴파일러와 같아졌고 추론을 이어 가므로 뒤따르는 오류도 그대로 보고됩니다. |
| 5.19.611 | 내부 | 이름을 바꿔 가져온 newtype 생성자 패턴이 그 가져오기가 실제로 고른 타입과 맞물립니다. 다른 모듈에 같은 이름의 타입이 있어도 두 컴파일러가 똑같이 받아들입니다. |
| 5.19.610 | 내부 | 선택 가져오기로 쓴 레코드 패턴이 실제로 가져온 레코드로 풀립니다. match 완전성 검사도 서로 다른 모듈의 같은 이름 레코드를 하나로 묶지 않고 구분합니다. |
| 5.19.609 | 내부 | 가져온 타입의 파생 프로토콜 준수가 별칭이나 네임스페이스로 한정한 이름을 따라갑니다. 올바른 가져온 타입이 더는 거부되지 않고, 서로 다른 모듈의 같은 이름 타입 사이로 준수가 새지 않습니다. 표시되는 타입 이름은 그대로입니다. |
| 5.19.608 | 내부 | 가져온 타입을 시그니처에 쓴 프로토콜이 그 타입을 제대로 알아봅니다. 형태가 맞는 구현이 불일치로 거부되지 않고 통과합니다. |
| 5.19.607 | 내부 | 공개 값이나 별칭을 통해 닿을 수 있는 비공개 타입이 자신을 선언한 모듈의 정체성을 지닙니다. 한 모듈의 레코드를 다른 모듈의 같은 이름 레코드 자리에 넘기면 TPZ5001 로 거부합니다. 토파즈 5.19 동작은 그대로입니다. |
| 5.19.606 | 내부 | 리스펙스 응용이 셀프호스트 경로에서 평가가 끝나지 않은 채 멈추지 않고 제대로 완료됩니다. 리스펙스 호스트가 돌려준 값을 검사기가 승인한 타입 정체성에 맞춰 받기 때문입니다. |
| 5.19.605 | 내부 | 컴파일러를 고를 수 있는 모든 명령이 아무것도 지정하지 않으면 Rust 를 쓰고 --compiler self 를 적어야만 셀프호스트로 컴파일한다는 규칙에 맞춰 내부 검사를 바로잡았습니다. 제품 동작은 그대로입니다. |
| 5.19.604 | 내부 | 명시한 절대 소스 루트 아래의 절대 진입 파일이 지정한 루트를 그대로 유지해서 모듈을 디렉터리가 겹친 경로가 아니라 실제 경로에서 찾습니다. --exports-json 은 내보내는 것이 없는 모듈까지 해석된 모든 모듈을 싣습니다. |
| 5.19.603 | 내부 | 진입 파일 자체를 --root 로 넘기면 TPZ3002 로 거부하고 소스 루트는 진입 파일이 아니라 그것을 담은 디렉터리여야 한다고 알립니다. 예전에는 두 컴파일러가 이를 받아들이고 서로 다른 잘못된 모듈 이름을 만들었습니다. |
| 5.19.602 | 내부 | 가져오기를 해석하는 동안 모듈마다 소스 전체를 복사하던 일이 사라져 모듈당 할당이 하나씩 줄었습니다. 파싱과 모듈 이름, 진단, 이후 모든 단계는 그대로입니다. |
| 5.19.601 | 내부 | 두 모듈이 같은 없는 모듈을 가져올 때 셀프호스트 컴파일러가 TPZ3001 을 가져오는 쪽마다 하나씩이 아니라 한 번만 알립니다. Rust 컴파일러와 같은 결과입니다. |
| 5.19.600 | 내부 | 구문 분석에 실패한 문장이 가져오기 구역을 닫지 않아서 뒤따르는 import 를 늦은 가져오기로 잘못 알리지 않습니다. 두 컴파일러가 진짜 문법 오류 하나만 알립니다. |
| 5.19.599 | 내부 | 셀프호스트 컴파일러의 중괄호 누락 오류가 산문 설명 대신 { 와 } 토큰을 그대로 가리킵니다. 레코드와 열거형, 프로토콜, 함수 블록, 패턴, match 식에서 두 컴파일러의 문구가 같아집니다. |
| 5.19.598 | 내부 | >> 로 제네릭 목록을 닫은 뒤 남은 > 가 셀프호스트 파서에 그대로 보입니다. 타입 별칭과 제네릭 함수, 프로토콜 구현에서 꺾쇠가 하나 더 붙으면 두 컴파일러가 같은 자리에서 같은 토큰을 기대합니다. |
| 5.19.597 | 내부 | .. 뒤에 끝점이 없는 범위에 셀프호스트 컴파일러도 .. 자리를 가리키며 끝점을 요구하는 메시지 하나만 냅니다. 파일 끝, 괄호 안, 배열 안, 간격을 붙인 경우, match 가드에서 뒤따르던 두 번째 오류가 사라집니다. |
| 5.19.596 | 내부 | map 컴프리헨션이 키와 값 구분자 없이 끝나면 두 컴파일러가 같은 메시지를 냅니다. 빠진 토큰을 이름으로 가리키고 본문이 어떤 모양이어야 하는지 보여 주는 쪽입니다. |
| 5.19.595 | 내부 | match 가드나 컴프리헨션 절의 화살표 바로 앞에 놓인 괄호 식을 더는 람다로 잘못 읽지 않습니다. 셀프호스트 컴파일러에서도 Rust 컴파일러와 똑같이 검사되고 실행됩니다. 괄호로 묶은 람다는 그대로 동작합니다. |
| 5.19.594 | 내부 | match 나 concurrent 안의 잘못된 항목을 한 번만 알리고 다음 케이스나 갈래로 이어서 읽습니다. 식 전체를 되감으며 있지도 않은 오류를 덧붙이지 않습니다. |
| 5.19.593 | 내부 | 비어 있는 match 를 셀프호스트 컴파일러도 case 가 최소 하나는 있어야 한다는 같은 메시지로 같은 중괄호 구간에 알립니다. 예전에는 아무 진단 없이 지나갔습니다. |
| 5.19.592 | 내부 | 셀프호스트 컴파일러에서도 match 의 케이스와 concurrent 의 갈래 사이에 구분자가 필요합니다. 빠지면 다음 케이스나 갈래가 시작하는 자리에서 알립니다. 올바른 구분자와 닫는 중괄호, 파일 끝은 그대로 받아들입니다. |
| 5.19.591 | 내부 | 블록 안에서 구분자 없이 이어진 두 문장에 두 컴파일러 모두 두 번째 문장 자리에 메시지 하나만 냅니다. 그 뒤 닫는 중괄호에서 오류가 두 개 더 붙지 않습니다. |
| 5.19.590 | 내부 | 프로그램 최상위에 닫는 중괄호가 남으면 두 컴파일러가 같은 메시지 두 개를 냅니다. 셀프호스트 파서도 Rust 컴파일러처럼 그 중괄호를 다음 항목에 넘기기 때문입니다. |
| 5.19.589 | 내부 | export enum 과 export record 와 export newtype 선언을 잘못 쓴 경우에 컴파일러가 더는 멈춰 서지 않습니다. 키워드 자리에서 평소의 구분자 메시지로 알리고, 올바른 내보내기 선언은 그대로입니다. |
| 5.19.588 | 내부 | 셀프호스트 컴파일러에서 export 가 impl 블록 전체를 선언으로 받지 않습니다. 오류가 구문 분석 단계에서 impl 자리를 가리킵니다. impl 안의 개별 메서드를 내보내는 방식은 그대로 됩니다. |
| 5.19.587 | 내부 | 매개변수 self 를 수신자로 보는 경우는 맨 앞에 오고 가변 인자가 아닐 때뿐입니다. 다른 매개변수 뒤에 쓰거나 스프레드으로 쓰면 셀프호스트 컴파일러도 Rust 컴파일러처럼 거부합니다. |
| 5.19.586 | 내부 | mut 을 let 앞이나 이름 뒤처럼 엉뚱한 자리에 쓰면 셀프호스트 컴파일러가 두루뭉술한 식이나 등호 오류 대신 let mut 안내를 보여 줍니다. |
| 5.19.585 | 내부 | impl 이나 protocol 본문에 함수가 아닌 항목이 오면 그 본문에는 메서드만 또는 시그니처만 올 수 있다는 전용 메시지로 알립니다. Rust 컴파일러와 같은 문구입니다. |
| 5.19.584 | 내부 | enum, record, newtype, impl, protocol 은 정확한 선언 형태가 뒤따를 때만 선언으로 읽힙니다. 셀프호스트 컴파일러도 같은 규칙을 적용해서 이 낱말들을 평범한 이름으로 계속 쓸 수 있고, 잘못된 쓰임은 Rust 컴파일러와 같은 자리에서 알립니다. |
| 5.19.583 | 내부 | 열거형 배리언트에 빈 페이로드 괄호를 쓰면 셀프호스트 컴파일러가 첫 타입을 요구하며 거부합니다. 페이로드가 없는 배리언트는 예전처럼 괄호를 생략하고, 실패한 선언 뒤 복구도 Rust 컴파일러와 같은 순서로 알립니다. |
| 5.19.582 | 내부 | 타입이나 함수 선언에 빈 <> 목록을 쓰면 셀프호스트 컴파일러가 닫는 꺾쇠 자리에서 타입 매개변수를 요구하며 거부합니다. 타입 매개변수가 아예 없는 선언은 영향을 받지 않습니다. |
| 5.19.581 | 내부 | 선택 가져오기에서 지역 이름이 겹칠 때 나오는 진단이 Rust 컴파일러와 같은 순서로 나옵니다. 나중 쪽이 아니라 각 짝에서 앞선 이름의 위치를 따릅니다. |
| 5.19.580 | 내부 | concurrent 의 timeout 절을 잘못 쓰면 메시지 하나를 내고 짝이 맞는 괄호까지 복구합니다. 뒤따르던 연쇄 오류가 사라졌고, 올바른 지속 시간 값은 예전대로 읽힙니다. |
| 5.19.579 | 내부 | topaz check --compiler self 가 설치된 셀프호스트 컴파일러에서 다시 진짜 파서 진단을 돌려줍니다. 전에는 거부된 프로그램이 실제 TPZ2001 메시지 대신 내부 불일치 오류로 나타났습니다. |
| 5.19.578 | 내부 | 레코드 갱신은 맨 앞 스프레드 뒤에 쉼표나 닫는 중괄호를 요구하고, 두 번째 이후의 스프레드은 정확한 메시지 하나로 거부하며 짝이 맞는 중괄호에서 복구합니다. 보통 레코드 리터럴과 올바른 앞머리 스프레드은 그대로입니다. |
| 5.19.577 | 내부 | 진단에 딸린 참고 문구가 셀프호스트 경로 전체를 통과합니다. 명시한 타입 인자를 빼라는 안내가 사라지지 않고 편집기와 diagnostics.jsonl 까지 도착합니다. |
| 5.19.576 | 내부 | 토파즈에서 괄호는 식 하나만 묶습니다. 괄호 안에 쉼표를 쓰면 셀프호스트 컴파일러가 쉼표 자리에 메시지 하나를 내고 짝이 맞는 괄호까지 복구하며, 두 번째 오류를 덧붙이지 않습니다. |
| 5.19.575 | 내부 | f<x+y>() 같은 식을 셀프호스트 컴파일러가 제네릭 호출이 아니라 비교로 다시 읽습니다. 검사기까지 도달해 Rust 컴파일러와 똑같이 순서 비교 오류 TPZ5007 을 알립니다. |
| 5.19.574 | 내부 | 명시한 타입 인자는 식별자와 멤버, 옵션 접근 뒤에서만 인식합니다. (identity)<int>(1) 을 셀프호스트 컴파일러가 더는 제네릭 호출로 보지 않고 Rust 컴파일러와 같은 TPZ5002 를 냅니다. |
| 5.19.573 | 내부 | JSON.parseAs 나 JSON.decode 를 명시한 타입 인자 개수를 틀리게 호출하면 개수 오류인 TPZ5510 하나만 알리고 뒤따르던 타입 불일치는 나오지 않습니다. 올바른 호출은 그대로입니다. |
| 5.19.572 | 내부 | 명시한 타입 인자는 개수가 호출 대상과 정확히 맞을 때만 씁니다. 개수가 틀린 호출은 개수 메시지 하나만 내고, 나머지는 평소 추론을 이어가서 엉뚱한 불일치가 붙지 않습니다. |
| 5.19.571 | 내부 | 제네릭 함수 본문 안의 이름에 붙인 타입이 그 함수의 타입 매개변수에 제대로 묶입니다. Some 과 Ok, map, reduce 같은 표준 제네릭 생성자와 수신자 메서드에도 명시한 타입 인자를 쓸 수 있습니다. 옵션 접근 호출은 여전히 거부합니다. |
| 5.19.570 | 내부 | 타입을 붙인 패턴이 타깃 백엔드에서 검사기가 부여한 뜻 그대로 실행됩니다. 기본형과 리터럴, 유니온, 구조적 레코드, Option, Result, Array, Set, Map, 범위, 호출 인자 수, 제네릭 레코드와 열거형과 newtype 을 다룹니다. |
| 5.19.569 | 내부 | 프로젝트 자체 빌드 자동화를 공개 GitHub 액션의 현재 메이저 버전과 명시적인 Node 24 런타임으로 옮겼습니다. 제품 코드와 공개된 릴리스, 아티팩트는 하나도 바뀌지 않았습니다. |
| 5.19.568 | 내부 | 타깃 백엔드가 나머지 구간이 있는 리스트 패턴과 구조적 레코드 패턴, 이름 있는 레코드 패턴, newtype 생성자를 맞춰 보고 레코드와 열거형 타입이 정확히 같은지 확인합니다. 이름 있는 레코드 패턴이 묶은 이름도 초기화된 것으로 셉니다. |
| 5.19.567 | 내부 | 타깃 백엔드에서 반복 제어가 제대로 동작합니다. 문장으로 쓴 for 가 break 와 continue 를 받고, loop 는 break 가 실어 보낸 값을 돌려주며, 라벨을 붙인 제어가 값을 만드는 for 를 건너뜁니다. while 과 for 와 loop 는 반복마다 새 스코프를 씁니다. |
| 5.19.566 | 내부 | using File 이 타깃 백엔드에서 실행됩니다. 블록이 정상으로 끝나거나 반환, ? 전파, break, continue 로 빠져나갈 때 핸들이 자동으로 닫히고, 도달한 defer 가 그 닫힘 전에 역순으로 실행됩니다. |
| 5.19.565 | 내부 | concurrent 갈래가 타깃 백엔드에서 실제로 번갈아 실행됩니다. 하나를 끝까지 돌리지 않고 서로 양보하며, timeout 절이 만료되면 남은 갈래를 버리고 else 를 평가하고, 갈래 안의 오류는 앞선 무한 갈래를 지나서도 드러납니다. |
| 5.19.564 | 내부 | 타깃 백엔드가 null 과 정수 범위, 집합 리터럴, 배열과 집합과 맵 컴프리헨션을 평가합니다. 배열 스프레드을 소스 순서대로 풀고, 값을 만드는 for 는 본문 값을 반복 순서대로 돌려줍니다. |
| 5.19.563 | 내부 | 함수와 람다가 타깃 백엔드에서 붙잡은 스코프와 함께 값으로 오갑니다. 내장 메서드와 이름이 같은 레코드 필드가 그 메서드보다 먼저 불리고, Array 와 Option, Result, Map 의 고차 콜백이 실행되며, 값으로 넘긴 print 도 호스트까지 닿습니다. |
| 5.19.562 | 내부 | 타깃 백엔드에서 호출이 적힌 순서대로 평가됩니다. 호출 대상이나 수신자를 인자보다 먼저 한 번만 평가하고, 파이프라인은 앞선 값을 먼저 평가하며, None 이나 null 에 대한 옵션 호출은 인자를 하나도 평가하지 않고 돌아오고, 스프레드은 제자리에서 풀립니다. |
| 5.19.561 | 내부 | 타깃 백엔드의 사용자 함수 호출이 적힌 대로 인자를 묶습니다. 이름을 붙인 인자가 선언된 자리에 들어가고, 생략한 매개변수는 기본값을 받으며, 명시한 스프레드과 그 뒤 위치 인자가 가변 인자 배열이 됩니다. |
| 5.19.560 | 내부 | 직접 만든 레코드와 열거형과 newtype 에 impl 블록으로 쓴 메서드를 셀프호스트 컴파일러가 검사하고 타깃 백엔드가 호출합니다. 직접 쓴 프로토콜 구현이 파생된 Show 와 Eq 와 Order 보다 앞섭니다. |
| 5.19.559 | 내부 | 셀프호스트 컴파일러가 직접 쓴 impl Protocol<Type> 선언을 검사합니다. 완전하고 정확한 구현만 등록하고, 대상이 틀리거나 중복이거나 메서드가 빠지거나 시그니처가 어긋날 때 쓰던 진단을 그대로 냅니다. |
| 5.19.558 | 내부 | P.m(...) 같은 프로토콜 정적 호출을 셀프호스트 컴파일러가 검사합니다. 준수하는 수신자는 구체적인 매개변수와 결과 타입을 받고, 준수하지 않으면 TPZ5522 를 알리며, 이름을 붙인 인자나 스프레드 인자는 여전히 거부합니다. |
| 5.19.557 | 내부 | 사용자 프로토콜 선언을 셀프호스트 컴파일러가 검사합니다. 내장 이름 재선언과 이름 충돌, 중복, 제네릭 메서드, 수신자 누락이나 오류, 반환 타입 누락, 가변 인자, 기본값, 중첩 선언을 거부합니다. |
| 5.19.556 | 내부 | 올바른 프로토콜 선언이 셀프호스트 빌드를 지원하지 않는 문법이 있는 것으로 표시하지 않습니다. 프로토콜 시그니처는 컴파일 시점 정보라 실행 연산을 만들지 않고, 프로토콜 밖의 진짜 미지원 문법은 그대로 알립니다. |
| 5.19.555 | 내부 | 프로토콜 메서드 매개변수에 기본값을 쓰면 셀프호스트 컴파일러가 기본값 식 안의 엉뚱한 이름 오류 대신 프로토콜 규칙을 TPZ5022 로 알립니다. |
| 5.19.554 | 내부 | FS.list 가 이름이 올바른 Unicode 가 아닌 디렉터리 항목을 다른 항목과 겹칠 수 있는 대체 문자 문자열로 바꾸지 않습니다. 그런 디렉터리는 평소의 Result 통로로 오류를 돌려줍니다. |
| 5.19.553 | 내부 | 실제 디렉터리 이름이 올바른 Unicode 가 아닌 패키지 루트를 Unicode 심볼릭 링크로 가리켜도 FS.readText 와 FS.open 이 파일을 제대로 찾습니다. 권한과 경계 검사, 심볼릭 링크 탈출 거부는 그대로입니다. |
| 5.19.552 | 내부 | topaz build --target python 이 옛 버전이 남긴 캐시를 정리하면서 이름이 올바른 Unicode 가 아닌 사용자 파일을 지우지 않습니다. 생성된 캐시 이름과 정확히 일치하는 항목만 지웁니다. |
| 5.19.551 | 내부 | 개발 서버가 수정 시각이 1970년보다 이른 입력과 이름이 올바른 Unicode 가 아닌 디렉터리 아래 파일까지 지켜봅니다. 같은 시각을 유지한 채 원자적으로 교체해도 다시 빌드합니다. |
| 5.19.550 | 내부 | 실제 이름이 올바른 Unicode 가 아닌 디렉터리를 Unicode 심볼릭 링크로 가리켜 패키지를 열어도 개발 웹 서버가 404 를 돌려주지 않습니다. 빌드와 서버가 같은 출력 디렉터리를 씁니다. |
| 5.19.549 | 내부 | TOPAZ_STORAGE_DIR 로 지정한 빌드 저장 디렉터리 이름이 올바른 Unicode 가 아니면 조용히 대체 문자 경로로 갈라놓지 않고, 그 경로를 Unicode 로 나타낼 수 없다는 메시지로 미리 거부합니다. |
| 5.19.548 | 내부 | topaz compiler validate 가 읽는 번들은 모든 구성원 경로가 정확한 Unicode 여야 합니다. 서로 다른 두 파일이 한 이름으로 뭉개지지 않고, 나타낼 수 없는 경로는 오류로 알립니다. |
| 5.19.547 | 내부 | 이름이 올바른 Unicode 가 아닌 소스 파일이 든 패키지는 해시 계산과 벤더링 전에 거부합니다. topaz vendor 가 이미 벤더링한 패키지를 덮어쓴 뒤에 실패하는 일이 없어졌습니다. 보통 패키지 소스는 그대로입니다. |
| 5.19.546 | 내부 | web.styles 와 web.assets 에 선언한 자산과 스타일시트는 정확한 Unicode 경로여야 합니다. 선언한 자산이 조용히 빠지거나 원본을 되짚을 수 없는 경로로 나가는 일이 없어졌습니다. |
| 5.19.545 | 내부 | topaz test 가 이름이 올바른 Unicode 가 아닌 디렉터리를 가리키는 Unicode 심볼릭 링크 테스트 파일을 제대로 찾고, 실제로 지정한 경로 그대로 결과를 표시합니다. 패키지 밖 경로와 .tpz 가 아닌 경로는 여전히 거부합니다. |
| 5.19.544 | 내부 | 실제 이름이 올바른 Unicode 가 아닌 디렉터리를 심볼릭 링크로 가리키는 작업 공간에서도 저장하지 않은 편집기 버퍼가 제 모듈에 그대로 붙어 있습니다. 가져온 모듈이 디스크 파일이 아니라 열린 문서를 다시 읽습니다. |
| 5.19.543 | 내부 | Linux 에서 이름에 올바르지 않은 UTF-8 바이트가 들어간 서로 다른 디렉터리의 모듈을 심볼릭 링크로 불러와도 컴파일러가 둘을 구분합니다. 두 모듈을 같은 파일로 잘못 보고 충돌로 거부하는 일이 없어졌습니다. |
| 5.19.542 | 내부 | Linux 에서 같은 디렉터리에 이름이 올바른 UTF-8 이 아닌 파일이 함께 있어도 모듈 가져오기가 그대로 해석됩니다. 디렉터리 나열은 Unicode 문자로 나타낼 수 없는 항목만 건너뛰며, 디렉터리 전체를 읽지 못한 것으로 다루지 않습니다. |
| 5.19.541 | 내부 | 링크나 별칭을 거쳐 같은 파일을 두 번 가져오면 두 모듈로 올라오지 않고 TPZ3004 모듈 충돌로 보고합니다. 실제로 서로 다른 파일을 가져오는 경우와 루트 포함 검사, 나머지 진단은 영향을 받지 않습니다. |
| 5.19.540 | 내부 | 이름 검사가 참조를 기록하기 전에 타입 트리를 한 번 더 훑던 빈 순회를 없앴습니다. 진단과 스코프 정보, 컴파일러 출력은 모두 같으며 중복 작업만 줄었습니다. |
| 5.19.539 | 내부 | 컴파일러 파일 접근 계층에서 아무도 쓰지 않던 파일 존재 확인 의무와 그 열 개 구현을 걷어냈습니다. 파일 읽기와 디렉터리 나열, 패키지 조회, 편집기 오버레이, 진단은 이전과 똑같이 동작합니다. |
| 5.19.538 | 내부 | 22개 표준 모듈을 하나의 목록에서 관리합니다. 모듈 해석과 편집기 자동 완성이 어떤 모듈이 있는지를 두고 어긋날 수 없으며 완성 항목과 모듈 경로, 모듈 소스는 그대로입니다. |
| 5.19.537 | 내부 | a.tpz.tpz 처럼 소스 확장자가 겹친 진입 파일이 두 컴파일러에서 같은 모듈 이름을 갖습니다. 마지막 확장자 하나만 떼어 내므로 진단에 나오는 가져오기 사슬 이름도 실제 파일과 맞습니다. |
| 5.19.536 | 내부 | 초기화 검사가 이름을 소스 텍스트에서 곧바로 읽고, 이름을 보관해야 하거나 실제 위반을 보고할 때만 복사본을 만듭니다. TPZ3018 문구와 위치를 비롯한 나머지 결과는 그대로입니다. |
| 5.19.535 | 내부 | 최상위 let 과 const 선언이 조용히 건너뛰던 분기 대신, 다른 모든 선언과 같은 명시적 경로로 스코프 정보를 기록합니다. 가림과 스코프 번호, 진단은 그대로입니다. |
| 5.19.534 | 내부 | 모듈 해석에서 실패할 수 없는 조회에 조용히 대체값을 넣던 세 곳이 표를 직접 참조합니다. 내부 불일치가 잘못된 의존 순서나 누락된 내보내기로 바뀌지 않고 드러나며 평소 결과는 그대로입니다. |
| 5.19.533 | 내부 | 가져오기 그래프 탐색과 의존 순서, 순환 보고가 필요할 수 없는 대체값을 넣지 않고 배열을 직접 읽습니다. 셀프호스트 컴파일러의 그래프 모양과 순환 메시지, 순서는 그대로입니다. |
| 5.19.532 | 내부 | 가져오기 구문 분석에서 쓰이지 않던 두 필드를 걷어냈고, 선택 가져오기 진단이 도달할 수 없는 대체 위치를 두지 않고 정확한 위치를 직접 읽습니다. 별칭 연결과 제안, 메시지는 그대로입니다. |
| 5.19.531 | 내부 | 지역 스코프 처리가 일어날 수 없는 조회 실패를 조용히 넘기지 않고 활성 스코프를 직접 읽고 갱신합니다. 셀프호스트 컴파일러의 어휘 조회와 가림, 스코프 번호, 진단은 그대로입니다. |
| 5.19.530 | 내부 | 모듈 표 조회가 카탈로그를 직접 참조하며, 절대 일어날 수 없던 모듈 표 누락 오류를 없앴습니다. 셀프호스트 컴파일러의 가져오기 해석과 네임스페이스, 진단은 그대로입니다. |
| 5.19.529 | 내부 | 모듈 표의 열두 곳이 미해결 참조나 누락된 진단 같은 잘못된 답으로 물러서지 않고 바인딩을 직접 참조합니다. 셀프호스트 컴파일러의 가져오기 해석과 네임스페이스, 진단은 모두 그대로입니다. |
| 5.19.528 | 내부 | 정렬 루프 두 곳이 배열을 직접 읽습니다. 셀프호스트 컴파일러의 내부 경계 문제가 조용히 다른 순서의 결과로 나오지 않고 오류로 드러나며 질의 순서와 내보내기 순서, 제안은 그대로입니다. |
| 5.19.527 | 내부 | 프로파일 검사의 진단 정렬과 자식 선택, 멤버 해석이 배열을 직접 읽습니다. 내부 색인이 망가졌을 때 누락된 자식이나 미해결 이름으로 나타나지 않고 오류로 드러나며 프로파일 정책과 진단은 그대로입니다. |
| 5.19.526 | 내부 | Unicode 정규화와 대소문자 접기가 글자마다 문자열 전체를 다시 만들지 않고 결과를 한 번에 모읍니다. 셀프호스트 컴파일러에서 긴 이름 처리가 훨씬 빨라지며 결과 텍스트와 충돌 보고는 그대로입니다. |
| 5.19.525 | 내부 | 오타 제안이 지나치게 긴 이름을 글자로 쪼개기 전에 바이트 길이로 먼저 걸러냅니다. 셀프호스트 컴파일러가 아주 긴 이름을 끝까지 펼쳤다가 버리는 일이 없어졌고 제안 결과와 문구는 그대로입니다. |
| 5.19.524 | 내부 | 오타 제안의 순위를 매기는 편집 거리 계산이 범위 밖 읽기에 빈 글자나 지어낸 거리를 넣지 않고 배열을 직접 참조합니다. 셀프호스트 컴파일러의 제안과 동점 처리, 문구는 그대로입니다. |
| 5.19.523 | 내부 | 오타 제안이 이름에서 최대 65글자만 모으고, 비교 대상을 후보마다 다시 만들지 않고 질의마다 한 번만 만듭니다. Rust 컴파일러가 수 킬로바이트짜리 이름을 끝까지 훑는 일이 없어졌으며 제안 결과는 그대로입니다. |
| 5.19.522 | 내부 | 오타 제안이 거리 계산을 위해 글자 배열을 다시 만들지 않고 이미 만든 배열을 재사용합니다. 셀프호스트 컴파일러는 후보마다 한 번씩만 펼치며 제안 결과는 그대로입니다. |
| 5.19.521 | 내부 | 셀프호스트 컴파일러가 오타 제안 순위를 매길 때 더 나은 후보를 찾을 때마다 거리를 다시 계산하지 않고 후보마다 한 번만 계산합니다. 순위와 동점 처리, 제안 문구는 그대로입니다. |
| 5.19.520 | 내부 | 오타 순위 계산이 글자마다 새 행을 만들지 않고 행 버퍼 세 개를 재사용합니다. 셀프호스트 컴파일러의 메모리 사용량은 후보 이름 길이에 비례하며 모든 제안은 그대로입니다. |
| 5.19.519 | 내부 | 오타 후보마다 거리 행렬 전체를 만들지 않고 행 세 개만 유지합니다. Rust 컴파일러의 메모리 사용량이 두 이름 길이의 곱에서 후보 길이만큼으로 줄고 모든 제안은 그대로입니다. |
| 5.19.518 | 내부 | 오타와 편집 거리가 같은 이름이 둘일 때 두 컴파일러 모두 사전순으로 앞선 이름을 제안합니다. 내부 순서에 따라 달라지지 않고 같은 오타에는 실행할 때마다 같은 제안이 나옵니다. |
| 5.19.517 | 내부 | 직접 호출에서 이름을 틀리면 실제로 호출할 수 있는 이름만 제안합니다. 셀프호스트 컴파일러가 호출할 수 없는 지역 값이나 같은 이름의 지역 값에 가려진 내장 함수를 더는 제안하지 않습니다. |
| 5.19.516 | 내부 | 셀프호스트 컴파일러가 알 수 없는 이름을 제안할 때 프로그램의 모든 선언을 훑지 않고 그 이름을 쓴 모듈의 선언만 살핍니다. 후보 순서와 순위, TPZ5002 메시지는 그대로입니다. |
| 5.19.515 | 내부 | 셀프호스트 검사기가 표현식마다 기록된 호출 목록 전체를 여러 번 훑지 않고 정확한 위치로 호출을 찾습니다. 호출 순서와 Map 생성자 처리, 결과 타입, 진단은 그대로입니다. |
| 5.19.514 | 내부 | 직전 버전에 들어간 잘못된 루프 탈출 때문에 Rust 컴파일러가 셀프호스트 검사기 소스를 거부했습니다. 이를 제거해 빌드를 되살렸고 리스펙스 규칙 진단의 코드와 문구, 위치는 그대로입니다. |
| 5.19.513 | 내부 | 리스펙스 규칙 핸들의 간접 사용을 검사할 때 규칙 참조마다 프로그램의 모든 호출을 다시 훑지 않습니다. TPZ5500 코드와 문구, 위치는 그대로이며 규칙을 쓰는 큰 프로그램의 검사가 빨라집니다. |
| 5.19.512 | 내부 | 클로저 캡처 분석이 참조마다 스코프 사슬을 다시 걷지 않고 선언 스코프의 조상을 한 번만 구합니다. 셀프호스트 컴파일러에서 캡처된 이름과 순서를 비롯한 이후 결과는 그대로입니다. |
| 5.19.511 | 내부 | Rust 컴파일러가 클로저 캡처를 모을 때 참조마다 스코프 사슬을 다시 걷지 않고 선언 스코프의 조상을 한 번만 구합니다. 캡처된 이름과 위치, Stage 1 출력은 그대로입니다. |
| 5.19.510 | 내부 | 캡처 출력이 모듈마다 전체 캡처 목록을 다시 훑지 않고 한 번에 모듈별로 묶습니다. Rust 컴파일러의 캡처 순서와 위치, Stage 1 출력은 그대로입니다. |
| 5.19.509 | 내부 | Rust 컴파일러가 호출 대상 이름을 런타임 접두사 세 개와 대조하려고 복사하지 않고, 실제로 런타임 항목을 갖는 호출에서만 복사본을 남깁니다. 호출 계획과 Stage 1 출력은 그대로입니다. |
| 5.19.508 | 내부 | Rust 컴파일러에서 Stage 1 을 만드는 두 경로가 하나의 연산 정렬을 함께 씁니다. 비교할 때마다 양쪽에서 모듈 목록을 훑지 않고 모듈 순서 색인을 한 번만 만들며 연산 순서와 Stage 1 출력은 그대로입니다. |
| 5.19.507 | 내부 | 셀프호스트 컴파일러가 캡처를 비교할 때 양쪽에서 모듈 목록을 훑지 않고 이미 있는 직접 조회로 모듈 식별자를 읽습니다. 식별자 표기와 캡처 순서, Stage 1 출력은 그대로입니다. |
| 5.19.506 | 내부 | 캡처를 정렬할 때 모듈과 이름을 임시 정렬 키로 복사하지 않고 기존 값을 같은 순서로 비교합니다. Rust 컴파일러의 캡처 순서와 중복 제거, Stage 1 출력은 그대로입니다. |
| 5.19.505 | 내부 | 네임스페이스 멤버 캡처가 참조마다 해석된 선언을 전부 훑지 않고 한 번 만든 색인으로 별칭을 찾습니다. 셀프호스트 컴파일러의 캡처 타입과 순서, Stage 1 출력은 그대로입니다. |
| 5.19.504 | 내부 | Rust 컴파일러가 멤버 캡처의 네임스페이스 별칭을 해석된 선언 전체를 훑지 않고 선언 단계에서 만든 색인으로 찾습니다. 별칭 동작과 캡처 순서, Stage 1 출력은 그대로입니다. |
| 5.19.503 | 내부 | 캡처 대상 찾기가 참조마다 노드를 두 번씩 훑지 않고 이미 있는 위치 색인을 재사용합니다. 셀프호스트 컴파일러가 고른 대상과 캡처 순서, Stage 1 출력은 그대로입니다. |
| 5.19.502 | 내부 | Rust 컴파일러가 감싸는 클로저마다 모듈 목록을 훑고 이름을 복사하지 않고, 색인 하나로 캡처의 모듈을 찾아 최종 캡처에만 복사합니다. 캡처 내용과 Stage 1 출력은 그대로입니다. |
| 5.19.501 | 내부 | 캡처 대상 해석이 참조마다 타입 노드를 다시 훑지 않고 한 번의 순회로 만든 위치 색인을 씁니다. Rust 컴파일러의 조회 순서와 캡처 사슬, Stage 1 출력은 그대로입니다. |
| 5.19.500 | 내부 | Rust 컴파일러의 호출 보강이 호출마다 참조 목록 전체를 거르지 않고, 참조를 파일별로 한 번 묶은 뒤 호출 대상이 들어갈 수 있는 구간만 살핍니다. 대상 식별자와 Stage 1 출력은 그대로입니다. |
| 5.19.499 | 내부 | 이름 참조를 찾을 때 식별자와 멤버, 바인딩마다 전체 참조를 훑지 않고 정확한 위치로 조회합니다. Rust 컴파일러의 해석된 대상과 Stage 1 출력은 그대로입니다. |
| 5.19.498 | 내부 | Rust 컴파일러가 Stage 1 로 가는 길에 의미 타입을 두 번 복사하지 않고, 검사기가 가진 값을 그대로 쓰다가 마지막에 한 번만 복사합니다. 타입 표기와 연산, Stage 1 출력은 그대로입니다. |
| 5.19.497 | 내부 | Stage 1 을 만들 때 호출을 두 번째 표로 복사하지 않으며, 표현식마다 한 번의 조회가 호출 계획과 런타임 대체를 함께 처리합니다. Rust 컴파일러의 호출과 계획, Stage 1 출력은 그대로입니다. |
| 5.19.496 | 내부 | 함수와 람다 연산이 만들어질 때 자기 위치를 기록하고 클로저의 부모를 거기서 읽습니다. 복사한 식별자 표와 전체 연산을 훑던 폴백 검색을 걷어냈으며 부모 관계와 Stage 1 출력은 그대로입니다. |
| 5.19.495 | 내부 | 클로저 부모를 조회할 때마다 문자열을 만들지 않고 위치 숫자 두 개를 키로 씁니다. 셀프호스트 컴파일러의 부모 해석과 캡처 삽입, Stage 1 출력은 그대로입니다. |
| 5.19.494 | 내부 | 미뤄 둔 let 패턴 피연산자에 식별자와 라벨을 미리 복사하지 않고 위치만 담았다가 내보낼 때 라벨을 구합니다. 셀프호스트 컴파일러의 피연산자 순서와 Stage 1 출력은 그대로입니다. |
| 5.19.493 | 내부 | 셀프호스트 컴파일러가 연산을 받아들일 때 일반 피연산자를 바로 연결하고 let 패턴만 대기열에 담습니다. 모든 연산을 다시 훑던 두 번째 순회가 사라졌고 피연산자 순서와 라벨, Stage 1 출력은 그대로입니다. |
| 5.19.492 | 내부 | 피연산자 라벨을 연산마다 복사하지 않고 한 곳에 두고 작은 위치 색인으로 찾습니다. 셀프호스트 컴파일러에서 읽히지 않던 내부 라벨도 없앴으며 라벨과 Stage 1 출력은 그대로입니다. |
| 5.19.491 | 내부 | 셀프호스트 컴파일러가 피연산자 라벨을 가져오기 전에 부모가 컴프리헨션이나 for 인지 먼저 확인합니다. 그런 형태의 자식이 어차피 다시 만들어질 라벨을 복사하지 않으며 피연산자 순서와 Stage 1 출력은 그대로입니다. |
| 5.19.490 | 내부 | 노드의 의미 타입과 런타임 표현을 연산을 조립하며 다시 계산하지 않고 한 번에 함께 구합니다. 셀프호스트 컴파일러의 모든 타입 대응과 Stage 1 출력은 그대로입니다. |
| 5.19.489 | 내부 | 셀프호스트 컴파일러가 연산의 종류와 식별자를 정하는 같은 표에서 런타임 항목도 가져옵니다. 구문 종류를 다시 갈래짓던 큰 분기를 없앴고 모든 런타임 항목과 Stage 1 출력은 그대로입니다. |
| 5.19.488 | 내부 | 제어 흐름 분류가 제어 종류와 연산의 대상 소유 여부를 한 곳에서 정합니다. 셀프호스트 컴파일러의 분기와 match, 반복, break, continue, return, 정리, 전파, concurrent 동작은 그대로입니다. |
| 5.19.487 | 내부 | 연산 역할을 종류와 식별자를 정하는 같은 표에서 가져오고, 프로토콜 제외와 구현 메서드 요건만 별도 규칙으로 남겼습니다. 셀프호스트 컴파일러의 역할과 종류, Stage 1 출력은 그대로입니다. |
| 5.19.486 | 내부 | 구문 노드를 연산 종류와 식별자 꼬리표로 각각 옮기던 거의 같은 표 두 개를 하나로 합쳤습니다. 모든 연산 종류와 식별자, Stage 1 출력은 그대로이며 셀프호스트 컴파일러의 중복 코드가 크게 줄었습니다. |
| 5.19.485 | 내부 | for 와 컴프리헨션 피연산자를 채웠다가 지우고 다시 만들지 않고 전용 단계에서 한 번만 만듭니다. 셀프호스트 컴파일러의 피연산자 순서와 짝짓기, Stage 1 출력은 그대로입니다. |
| 5.19.484 | 내부 | 컴프리헨션 피연산자를 다시 만들 때 컴프리헨션마다 모듈 구문 트리 전체를 훑지 않고 첫 순회에서 기록한 자식 위치를 씁니다. 절 순서와 중복 제거, Stage 1 출력은 그대로입니다. |
| 5.19.483 | 내부 | 피연산자 라벨을 연산마다 조상 사슬을 다시 걷지 않고 부모의 저장된 앞부분에 자기 조각을 붙여 한 번에 만듭니다. 라벨 표기와 피연산자 순서, Stage 1 출력은 그대로입니다. |
| 5.19.482 | 내부 | 셀프호스트 컴파일러가 바인딩의 이름과 가변성, 저장 방식, 선언 식별자를 연산을 조립하며 다시 찾지 않고 한 번에 함께 만듭니다. 패턴과 매개변수, const 와 using 바인딩은 그대로입니다. |
| 5.19.481 | 내부 | 구문 노드가 protocol 안에 있는지를 받아들일 때 표시해 두어, 자식이 조상 사슬을 걷지 않고 부모의 표시만 읽습니다. 셀프호스트 컴파일러의 프로토콜 처리와 Stage 1 출력은 그대로입니다. |
| 5.19.480 | 내부 | 바인딩의 가변성을 이름이 붙은 바인딩마다 위로 거슬러 올라가지 않고 자기 let 부모에서 읽으며, 두 컴파일러를 그 값까지 맞대어 봅니다. 가변 let 과 매개변수, match 바인딩 동작은 이전과 같습니다. |
| 5.19.479 | 내부 | 모든 연산을 두 번 훑지 않고 한 번의 순회로 피연산자를 붙이며 let 패턴만 뒤로 미룹니다. 셀프호스트 컴파일러에서 let 의 값 다음 패턴 순서와 나머지 피연산자 순서는 그대로입니다. |
| 5.19.478 | 내부 | 노드를 받아들일 때 특별한 피연산자 재구성이 필요한 컴프리헨션과 for 노드를 기록해 둡니다. 이후 단계가 모듈 구문 트리 전체를 다시 훑지 않으며 피연산자 순서와 Stage 1 출력은 그대로입니다. |
| 5.19.477 | 내부 | 타입 노드의 종류와 타입을 위치로 찾는 목록 하나에 한 번에 담고, 원본 노드 배열과 따로 있던 조회 두 개를 걷어냈습니다. 셀프호스트 컴파일러의 타입 표기와 표현, Stage 1 출력은 그대로입니다. |
| 5.19.476 | 내부 | 참조의 최종 식별자를 조회할 때마다 같은 우선순위 규칙을 다시 적용하지 않고 한 번 정해 위치로 찾는 목록에 담습니다. 내장 이름 폴백과 Stage 1 출력은 그대로입니다. |
| 5.19.475 | 내부 | 셀프호스트 컴파일러가 디코딩 과정에서 타입 붙은 호출을 노드마다 다시 읽지 않고 한 번에 하나의 계획으로 준비합니다. 호출이 없을 때의 형태와 인자·평가 순서, Stage 1 출력은 달라지지 않았습니다. |
| 5.19.474 | 내부 | 모듈 캡처를 하나의 평평한 배열에서 모듈마다 훑어 고르지 않고 모듈별 목록으로 한 번에 나눠 담습니다. 모듈 순서와 캡처 순서, 범위를 벗어난 캡처의 생략, Stage 1 출력은 그대로입니다. |
| 5.19.473 | 내부 | 람다와 메서드 선언이 노드를 받아들이는 시점에 클로저를 바로 연결하므로 나중에 구문 트리를 다시 훑던 단계가 사라졌습니다. 클로저 키와 캡처 순서·정체성, 부모 없음 오류, Stage 1 출력은 그대로입니다. |
| 5.19.472 | 내부 | 빈 인덱스와 정리 목록을 사설 보조 함수 두 개 대신 그 값을 담는 자리에서 바로 만듭니다. 인덱스 키와 삽입 순서, 첫 직속 자식 선택, defer 정리 처리, Stage 1 출력은 그대로입니다. |
| 5.19.471 | 내부 | 컴프리헨션 절이 절마다 구문 트리를 다시 훑지 않고 이미 만들어 둔 자식 인덱스에서 이터레이터와 패턴, 조건을 읽습니다. 절의 소스 순서와 if 조건·본문 동작, Stage 1 출력은 그대로입니다. |
| 5.19.470 | 내부 | 최상위 함수의 바인딩 이름과 선언 정체성을 조회할 때마다 구문 트리를 전부 훑지 않고 이미 있는 자식 인덱스에서 가져옵니다. 바인딩 이름과 선언 구간, 참조 정체성 우선순위, Stage 1 출력은 그대로입니다. |
| 5.19.469 | 내부 | 식별자와 임포트, 멤버 철자를 찾을 때마다 모듈 소스 전체를 UTF-8 로 다시 인코딩하지 않고 모듈마다 한 번 만든 바이트 버퍼를 잘라 씁니다. 철자와 잘못된 구간의 빈 문자열 처리, 프로파일 규칙과 결과는 그대로입니다. |
| 5.19.468 | 내부 | 다른 모듈이 가져가지 않던 프로파일 레코드 두 개를 모듈 안쪽으로 감췄고, 빈 인덱스 Map 세 개는 더미 항목을 넣었다 빼던 보조 함수 대신 곧바로 만듭니다. 프로파일 규칙과 메시지, 결과는 그대로입니다. |
| 5.19.467 | 내부 | 프로파일 검출 항목을 출력에서 두 번 훑지 않고 삽입 위치를 찾아가며 중복까지 함께 판정하는 한 번의 순회로 받아들입니다. 중복 판정 기준과 표준 정렬 순서, 병합 순서, 프로파일 결과는 그대로입니다. |
| 5.19.466 | 내부 | 임포트마다 종류와 범위로 구문 트리를 다시 훑지 않고 프로파일이 이미 만들어 둔 자식 인덱스에서 모듈 경로를 얻습니다. 금지 모듈과 테스트 프레임워크 임포트 판정, 진단, 프로파일 결과는 그대로입니다. |
| 5.19.465 | 내부 | 모듈 의존 순서를 정할 때 손으로 짠 삽입 정렬 두 개와 배열 밀어내기 대신 모듈 정체성을 한 번 정렬하고 인덱스로 고릅니다. 준비된 모듈 선택과 의존 순서, 순환 진단, 이름 해석 결과는 그대로입니다. |
| 5.19.464 | 내부 | 지역 스코프마다 값과 타입 네임스페이스의 이름 Map 을 두어, 안쪽 스코프부터 바인딩을 전부 훑지 않고 식별자를 바로 찾습니다. 가림 규칙과 첫 바인딩 우선, 진단, 이름 해석 결과는 그대로입니다. |
| 5.19.463 | 내부 | 이름 해석 모듈에서 다른 모듈이 가져가지 않던 작업용 레코드 여섯 개를 모듈 안쪽으로 감췄고, 내보내는 이름은 진입점 하나만 남았습니다. 받아들임과 임포트 표면, 진단, 이름 사실, 모듈 초기화, 해석 결과는 그대로입니다. |
| 5.19.462 | 내부 | 내보낸 시그니처의 타입 검사와 가져온 초기화식 참조, 내보낸 이름 없음 검사가 바인딩을 다시 훑지 않고 이름 인덱스를 읽습니다. 충돌한 바인딩과 export let mut 은 여전히 내보낸 이름으로 세지 않으며 진단과 런타임 동작은 그대로입니다. |
| 5.19.461 | 내부 | 바인딩 충돌을 기존 배열 전체를 훑지 않고 이미 만들어 둔 이름 인덱스로 찾아내며, TPZ3008 의 첫 바인딩 구간도 거기서 가져옵니다. 받아들임 순서와 충돌 메시지·구간·순서, 런타임 동작은 그대로입니다. |
| 5.19.460 | 내부 | 받아들인 바인딩이 일반 이름 인덱스와, 내보낸 경우 내보낸 이름 인덱스에 함께 들어가서 모듈·지역·선택·네임스페이스 참조가 순서 배열을 훑지 않습니다. 선택 규칙과 제안, 진단, 런타임 동작은 그대로입니다. |
| 5.19.459 | 내부 | 모듈 테이블에 순서 배열과 함께 정체성 인덱스를 두어 네임스페이스 계산과 선택·네임스페이스 임포트, 임포트 표면 검증이 테이블을 바로 고릅니다. 테이블 순서와 모듈 인덱스, 바인딩 순서, 진단, 런타임 동작은 그대로입니다. |
| 5.19.458 | 내부 | 모듈 탐색이 불러온 모듈 정체성 집합의 소속 여부로 판정하고, 성공과 거부 결과가 공개 임포트 간선을 각각 다시 훑는 대신 한 번의 순회 결과를 함께 씁니다. 미해결 간선 제외와 중복 간선, 탐색 순서, 순환 진단은 그대로입니다. |
| 5.19.457 | 내부 | 순환에 속한 모듈을 표시할 때 후보마다 새로 탐색하지 않고 기준 모듈당 정방향·역방향 도달 집합 하나씩을 씁니다. 표준 순환 경로와 주 구간, 자기 임포트 처리, 진단 문구와 순서, 의존 순서는 그대로입니다. |
| 5.19.456 | 내부 | 순환 진단과 의존 순서 계산이 같은 그래프를 따로 만들고 분기마다 경로 배열을 복사하는 대신 정렬된 정체성과 의존 집합을 담은 모듈 그래프 하나를 함께 씁니다. 표준 순환 경로와 구간, 의존 순서, 순환일 때의 대체 순서는 그대로입니다. |
| 5.19.455 | 내부 | 의존 순서 계산이 라운드마다 간선 목록 전체를 훑지 않고 해결·완료 집합과 모듈에서 의존 모듈로 가는 Map 으로 후보를 판정합니다. 중복 간선은 여전히 영향이 없고 해결되지 않은 대상은 제외되며 순서와 진단은 그대로입니다. |
| 5.19.454 | 내부 | Stage 0 이름 해석이 모듈과 간선 정체성을 여러 구조에 복사하지 않고 순환 탐색과 정렬 내내 빌려 쓰며, 정렬 중에는 순위로 모듈을 찾습니다. 의존 순서와 순환 진단·구간, 런타임 동작은 그대로입니다. |
| 5.19.453 | 내부 | 모듈 초기화 오류에 나오는 임포트 사슬을 Stage 0 과 생성된 Rust 가 각자 만들지 않고 공용 부품 하나로 그립니다. Python 모듈 코퍼스에는 초기화 사례가 하나 늘었고, 인터프리터와 두 생성 백엔드의 오류 코드·메시지·구간·출력·파일이 일치합니다. |
| 5.19.452 | 내부 | 지역 스코프가 선언 이름을 하나하나 복사하지 않고 모듈 소스에서 바로 빌려 쓰며, 사본은 오래 남는 선언 사실만 갖습니다. 스코프 순서와 가림, 선언 사실, 진단, 참조 대상, 런타임 동작은 그대로입니다. |
| 5.19.451 | 내부 | 임시 모듈 테이블이 모듈 정체성을 저마다 복사하지 않고 이름 해석 결과에서 빌려 씁니다. 파일 정체성과 바인딩·내보내기, 진단, 참조 대상, 런타임 동작은 그대로입니다. |
| 5.19.450 | 내부 | 모듈 테이블이 바인딩·내보내기 옆에 대상 파일을 함께 들고 있어서, 네임스페이스와 한정 타입 참조의 파일을 찾으려고 두 번째 인덱스를 만들던 일이 없어졌습니다. 진단과 참조 대상, 검사 결과, 런타임 동작은 그대로입니다. |
| 5.19.449 | 내부 | 가져온 모듈이 즉시 평가되는 초기화식에서 뒤에 오는 바인딩을 읽으면 셀프호스트 컴파일러도 Stage 0 과 똑같이 TPZ3018 을 냅니다. 진입 모듈과 최상위 const 는 면제이고 함수·람다·defer·concurrent 본문처럼 나중에 평가되는 자리는 보고하지 않습니다. |
| 5.19.448 | 내부 | 모듈 안쪽 타입을 내보낸 공개 표면에 쓰면 셀프호스트 컴파일러도 TPZ3014 로 거부합니다. 내보낸 함수의 매개변수와 반환, 중첩 타입 별칭 본문, 열거형 페이로드, 레코드 필드, newtype 기반이 대상이며 내보낸 타입은 그대로 허용합니다. |
| 5.19.447 | 내부 | 셀프호스트 컴파일러의 임포트 진단이 Stage 0 과 문구까지 같아졌습니다. 아무것도 내보내지 않는 모듈의 메시지가 같아졌고, 없는 선택 임포트와 네임스페이스 값, 한정 타입에는 가장 가까운 내보낸 이름을 다시 제안합니다. |
| 5.19.446 | 내부 | 레코드 필드 기본값에서는 다른 모듈의 변경 불가 네임스페이스 전용 let 을 다시 읽을 수 있습니다. 셀프호스트 컴파일러가 이전에는 TPZ3009 로 막던 자리이며, 기본값 밖이거나 변경 가능한 바인딩이면 여전히 거부합니다. |
| 5.19.445 | 내부 | protocol 선언이 셀프호스트 컴파일러의 바인딩과 내보내기 표에 더 이상 들어가지 않아, 같은 이름의 let 이 뒤따라도 받아들입니다. export protocol 은 Stage 0 처럼 TPZ2001 과 임포트 자유 문장 TPZ3007 로 거부합니다. |
| 5.19.444 | 내부 | or 패턴의 한 대안 안에서 이름이 되풀이되면 셀프호스트 컴파일러도 충돌로 보고합니다. let [x, x] | [x, x] = [1, 2] 는 되풀이된 자리마다 TPZ3008 을 내고 첫 바인딩을 가리키며 Stage 0 과 코드·메시지·개수·구간이 같습니다. |
| 5.19.443 | 내부 | 모듈이 자기 자신을 가져오면서 더 긴 순환에도 끼어 있으면 셀프호스트 컴파일러가 자기 임포트 대신 여러 모듈 순환을 보고합니다. 자기 자신만 가져오는 모듈은 여전히 그 사실을 그대로 보고합니다. |
| 5.19.442 | 내부 | 임포트 순환 진단이 같은 무리의 아무 간선이 아니라 실제로 보고하는 순환의 첫 간선을 가리킵니다. 자기 자신을 가져오는 모듈은 여전히 그 임포트를 가리킵니다. |
| 5.19.441 | 내부 | 매니페스트가 extern 으로 선언하지 않은 형제 모듈을 가져오면 셀프호스트 컴파일러가 파일 없음 대신 TPZ5030 을 보고합니다. 잘못된 재생 열은 TPZ5032 로 거부하고, 예약된 topaz.* 메시지에 버전 경계 문구가 들어가며, 순환 무리 하나에는 진단도 하나만 냅니다. |
| 5.19.440 | 내부 | 모듈 파일 이름 충돌을 셀프호스트 컴파일러가 Unicode 전체 케이스 폴딩과 정준 분해로 비교합니다. straße.tpz 와 strasse.tpz, 조합형과 분해형이 나란히 있으면 후보 이름을 함께 담아 TPZ3004 로 보고합니다. |
| 5.19.439 | 내부 | 가져온 모듈의 최상위 비공개 protocol 을 두 컴파일러 모두 자유 문장이라 하지 않고 받아들입니다. 프로젝트 뿌리 밖 진입점은 즉시 멈추고, 임포트는 포함 여부를 먼저 본 뒤 경로 조각을 차례로 확인하며 모두 통과해야 소스를 읽습니다. |
| 5.19.438 | 내부 | 셀프호스트 컴파일러의 경로 검사가 경로 조각 전체를 비교하므로 main..tpz 같은 파일은 받아들이고 root/../main.tpz 는 파일을 읽기 전에 TPZ3002 로 거부합니다. |
| 5.19.437 | 내부 | 두 파서 모두 구문이 차지하는 중괄호를 바깥 표현식 자리에서만 예약해서 if ready {} 는 빈 본문을 지키고, 괄호 안 레코드 갱신이 다시 해석되며, match 갈래의 화살표가 람다 본문 앞에서 살아남습니다. make() {} 는 TPZ2001 로 거부합니다. |
| 5.19.436 | 내부 | agent-pack 프로파일이 자유 assert 를 철자가 아니라 해석된 정체성으로 판정해서 사용자가 정의한 assert 는 받아들이고 기본 제공 쪽은 여전히 거부합니다. --compiler self --profile agent-pack 실행이 소스 검사까지 다시 진행되고, 내장 리스펙스 실행 기록도 현재 판으로 검증합니다. |
| 5.19.435 | 내부 | 변경 메서드와 Array·Map 콜백, Option, Result, File 메서드가 생성된 Rust 에서도 일급 수신자 값이 되어 검사기와 인터프리터가 이미 받아들이던 범위를 따라잡았습니다. 예약 멤버 이름 목록도 하나로 합쳐 sortBy 와 update, set, named 같은 충돌을 막습니다. |
| 5.19.434 | 내부 | 이름 붙인 ByteBuffer.set 과 fill, copy 파이프, 일반·선택·파이프 필드 형태의 일급 okOr 값을 생성된 Rust 가 받아들입니다. 인터프리터가 이미 실행하던 것들이며, 콜백을 쓰는 okOrElse 는 호출 형태로만 남고 평가 순서와 오류는 그대로입니다. |
| 5.19.433 | 내부 | 기본 수신자 호출이 직접·선택·파이프 어느 형태에서든 생성된 Rust 에서 이름 붙인 인자를 받고 ByteBuffer.set 과 fill, copy 도 함께 인식합니다. 멤버 조회와 디스패치, 코드 생성이 공용 수신자 목록 하나를 읽으며 호출 형태와 오류는 그대로입니다. |
| 5.19.432 | 내부 | file.write 의 이름 인자 s 가 생성된 Rust 의 직접·파이프·선택·선택 파이프 형태에서 모두 동작해 검사기·런타임과 같아졌습니다. 세 로케일 공개 시그니처 페이지 모두 file.write(s: string) 을 보여 줍니다. |
| 5.19.431 | 내부 | 리소스 read 와 write, close 를 다루는 생성된 Rust 의 네 경로가 각자 만들던 기본 분기를 공용 조각 하나로 냅니다. 평가 순서와 호스트 효과·오류, 단락 처리, 소스 구간, 생성된 바이트는 그대로입니다. |
| 5.19.430 | 내부 | 직접 sortBy 와 retain 이 공용 단일 콜백 인자 처리를 쓰고, 생성된 Rust 의 네 콜백 경로가 레코드 필드 가림 처리를 하나로 함께 씁니다. 인자 받아들임과 변경 가능 뿌리 오류 순서, 콜백 효과, 구간, 생성된 바이트는 그대로입니다. |
| 5.19.429 | 내부 | 직접 map 과 filter, sortedBy, mapValues, flatMap 이 생성된 Rust 에서 선택 경로가 쓰던 콜백 인자 처리와 콜백 본문 생성을 함께 씁니다. 컬렉션 동작과 콜백 지연·오류, 구간, 생성된 바이트는 그대로입니다. |
| 5.19.428 | 내부 | 읽기 전용 수신자 호출이 자체 렌더링 반복을 버리고 생성된 Rust 의 다른 호출과 같은 공용 인자 준비를 씁니다. 스프레드 처리와 순서 위반 거부, 이름표, ByteBuffer.get 빠른 경로, 구간, 생성된 바이트는 그대로입니다. |
| 5.19.427 | 내부 | 직접·선택 okOrElse 가 생성된 Rust 에서 인자를 한 번만 만들어 레코드 필드 가림 호출과 기본 분기가 그 결과를 함께 씁니다. 단락 처리와 파이프 앞자리·인자 순서, 자리표시자 동작, 콜백 지연, 구간, 생성된 바이트는 그대로입니다. |
| 5.19.426 | 내부 | Codec.zstdCompress 가 기본값을 다룰 수 있게 된 생성된 Rust 의 공용 고정 매개변수 바인더를 거치면서, 건네받은 인자를 세 번까지 복사하지 않고 한 번만 준비합니다. 위치·이름·기본값 동작과 거부 메시지, 생성된 바이트는 그대로입니다. |
| 5.19.425 | 내부 | 값 호출과 사용자 수신자 메서드 호출, 레코드 필드 가림 호출, 기본 폴백의 인자를 생성된 Rust 가 세 번까지 훑지 않고 소스 순서로 한 번에 준비합니다. 순서 오류 시점과 스프레드 확장, 이름표, 우선순위, 구간, 생성된 바이트는 그대로입니다. |
| 5.19.424 | 내부 | 스프레드 인자를 쓰는 수신자 호출이 생성된 Rust 에서 같은 인자 목록을 두 번 훑지 않고 한 번 만들어 값 호출과 인자 수 오류 분기가 함께 씁니다. 평가 순서와 스프레드 확장, 오류, 구간, 생성된 바이트는 그대로입니다. |
| 5.19.423 | 내부 | 네임스페이스 호출과 수신자 호출의 스프레드 인자 오류 경로를 생성된 Rust 가 한 곳에서 만들고, 양쪽은 자기 임시 이름과 메시지만 건넵니다. 순서 처리와 평가 순서, 스프레드 구간, 인자 수 오류, 생성된 바이트는 그대로입니다. |
| 5.19.422 | 내부 | 파이프로 이어지는 스프레드 수신자 호출이 생성된 Rust 에서 인자 목록을 한 번만 준비하고 레코드 필드 가림 분기와 인자 수 오류 분기가 그것을 함께 씁니다. 자리표시자 처리와 평가 순서, 스프레드 구간, 메서드 관문, 생성된 바이트는 그대로입니다. |
| 5.19.421 | 내부 | 선택 Map.update 호출의 위치 인자 빠른 경로가 생성된 Rust 에서 자체 자리표시자 검사를 없애고 바인딩 경로와 같은 판정을 씁니다. 경로 선택과 호출 형태, 갱신과 콜백 되쓰기, 오류, 구간, 생성된 바이트는 그대로입니다. |
| 5.19.420 | 내부 | 파이프 호출의 자리표시자 판정과 경로 선택 조건을 생성된 Rust 가 한 번만 정의해 바인더와 선택 reduce·Map.update 경로가 함께 씁니다. 바인딩 순서와 빠른 경로, 이름표, 오류, 구간, 생성된 바이트는 그대로입니다. |
| 5.19.419 | 내부 | 정적 파이프 인자를 생성된 Rust 가 한 번만 담아 두고 매개변수 자리와 레코드 필드 가림 처리가 인덱스로 참조해서, 쓰거나 끼워 넣는 값마다 생기던 복사가 하나 줄었습니다. 생성된 표기와 바이트, 바인딩, 이름표, 오류는 그대로입니다. |
| 5.19.418 | 내부 | 선택 파이프 reduce 와 Map.update 가 생성된 Rust 에서 준비된 인자 텍스트를 복사하지 않고 그 자리에서 읽습니다. 평가 순서와 바인딩, 이름표, 접기 동작과 갱신 관문, 콜백 되쓰기, 구간, 생성된 바이트는 그대로입니다. |
| 5.19.417 | 내부 | reduce 와 Map.update 의 이름 인자 호출이 생성된 Rust 에서 인자 준비를 하나로 함께 쓰고, 메서드마다 있던 거부 메시지는 그대로 둡니다. 소스 순서 효과와 이름 인자 재정렬, 이름표, 오류 순서, 동작은 달라지지 않았습니다. |
| 5.19.416 | 내부 | Array 콜백 변경 메서드 sortBy 와 retain 을 생성된 Rust 가 직접·선택 수신자 모두 한 곳에서 만듭니다. 오류 순서와 필드 가림 처리, 되쓰기 전 콜백 오류, 안정 정렬, 남는 항목 순서, 구간, 동작은 그대로입니다. |
| 5.19.415 | 내부 | Map 의 filter 와 mapValues 를 생성된 Rust 의 공용 조각 하나가 만들고, 직접·선택 경로는 둘 중 무엇인지만 고릅니다. 실행 시 filter 는 다른 순회 가능 값도 다루고 mapValues 는 Map 전용으로 남으며 동작은 그대로입니다. |
| 5.19.414 | 내부 | or 패턴과 구조 패턴이 생성된 Rust 에서 넓어진 바인딩 스코프의 본문과 선택 가드를 만드는 공용 마무리 단계 하나를 씁니다. 바인딩이 보이는 범위와 첫 일치 우선, 흘림, 가드 오류, 동작은 그대로입니다. |
| 5.19.413 | 내부 | 단일 바인딩 갈래와 바인딩 없는 갈래가 생성된 Rust 에서 선택적인 정적 조건과 가드를 받는 공용 마무리 하나로 완성됩니다. 가드가 보는 범위와 첫 일치 우선, 가드가 거짓일 때의 흘림, 동작은 그대로입니다. |
| 5.19.412 | 내부 | match 의 와일드카드 갈래와 리터럴·범위 갈래가 생성된 Rust 에서 마무리 경로 하나를 함께 쓰며, 정적 조건이 없는 쪽이 반박 불가 와일드카드입니다. 비교 의미와 가드 순서, 첫 일치 우선, 흘림, 동작은 그대로입니다. |
| 5.19.411 | 내부 | 구조 패턴 여섯 갈래 모두를 최상위에서도 중첩에서도 생성된 Rust 의 같은 재귀 처리기가 맡아 별도 어댑터 네 개가 사라졌습니다. 생성된 코드의 임시 이름이 그만큼 밀리는데 이는 생성된 식별자가 바뀌는 것이지 언어 동작이 바뀌는 것은 아닙니다. |
| 5.19.410 | 내부 | 구조 패턴 여섯 갈래를 둘러싼 준비와 마무리를 생성된 Rust 가 한 곳에서 관리하고, 각 갈래는 자기 패턴 단계만 건넵니다. 생성자 받아들임과 명목 정체성, 중첩 패턴, 가드, 구간, 동작은 그대로입니다. |
| 5.19.409 | 내부 | 포괄 바인딩 갈래와 타입 붙은 단일 바인딩 갈래가 생성된 Rust 에서 따로 되풀이하던 스코프 확장과 가드보다 본문을 먼저 두는 순서, 마무리를 함께 씁니다. 맨 열거형 변형 경로는 같은 본문을 두 스코프에서 만들기 때문에 따로 남으며 동작은 그대로입니다. |
| 5.19.408 | 내부 | 리터럴 패턴 조건과 범위 패턴 조건에 생성된 Rust 안에서 주인이 하나씩 생겼고, 바인딩 없는 갈래는 마무리를 함께 씁니다. 보간 문자열 거부와 음수 끝값, 포함·미포함 범위, 비교 오류, 첫 일치 우선, 동작은 그대로입니다. |
| 5.19.407 | 내부 | Rust 백엔드가 | 로 이어 붙인 패턴을 최상위에서 쓰든 중첩해서 쓰든 하나의 공용 준비 경로로 처리합니다. 대안 허용 판정과 바인딩 이름 정렬, 첫 일치 연결이 같은 규칙을 따르며 바인딩 순서와 스코프, 가드, 진단, 생성된 동작은 그대로입니다. |
| 5.19.406 | 내부 | 최상위에서 | 로 이어 붙인 패턴에 case [x, x] | [x, x] 처럼 같은 이름을 두 번 묶으면 잘못된 Rust 를 내보내지 않고 다른 패턴과 같은 메시지로 거부합니다. Rust 백엔드의 다섯 갈래 바인딩 추출이 하나의 거부 규칙과 하나의 튜플 모양을 함께 씁니다. |
| 5.19.405 | 내부 | 문 for 와 식 for, 컴프리헨션 절이 Rust 백엔드에서 하나의 반복 패턴 경로를 함께 씁니다. 패턴 허용과 중복 바인딩 거부, 패턴 불일치 오류 TPZ5003 이 세 곳에서 똑같이 동작하며 반복 제어와 순서, 생성된 동작은 그대로입니다. |
| 5.19.404 | 내부 | 리스트 패턴이 Rust 슬라이스 매칭 하나로 컴파일됩니다. 앞부분과 나머지, 뒷부분 바인딩을 떠받치던 인덱스 계산과 생성된 프로그램이 거기서 낼 수 있던 패닉이 사라졌고 빈 리스트와 고정 길이, 나머지, 중첩 패턴과 나머지 중복 거부, 오류 동작은 그대로입니다. |
| 5.19.403 | 내부 | enum 패턴에서 Rust 백엔드가 값을 두 번이 아니라 한 번만 살피고 각 페이로드를 검사된 조회로 묶어, 생성된 코드가 페이로드 인덱스에서 낼 수 있던 패닉을 없앴습니다. 일치하는 변형 태그의 인자 개수 오류 TPZ5004 는 메시지와 위치, 순서를 그대로 지킵니다. |
| 5.19.402 | 내부 | 최상위 newtype 패턴과 중첩 newtype 패턴이 Rust 백엔드에서 같은 매칭을 씁니다. 생성된 코드가 검사 없이 값을 꺼내던 자리 두 곳이 사라졌고 선언 정체성과 인자 하나 모양 허용, 중첩 패턴, 가드, 오류 동작은 그대로입니다. |
| 5.19.401 | 내부 | 패턴에 적힌 레코드 필드를 Rust 백엔드가 두 번이 아니라 한 번만 찾고, 검사된 바인딩 하나로 필드가 없을 때 생성된 코드가 낼 수 있던 패닉을 없앴습니다. 열린 매칭은 여전히 남는 필드를 받아들이고 선언 정체성도 먼저 확인합니다. |
| 5.19.400 | 내부 | 이름 있는 레코드 스프레드가 스프레드를 평가한 직후 선언된 필드 목록을 검증합니다. 빠지거나 중복된 필드는 TPZ5004 를, 모르는 필드는 TPZ5006 을 내며 호스트 프로그램이 넘긴 값이 인터프리터를 멈추게 하거나 생성된 Rust 와 어긋나던 일이 없어졌습니다. |
| 5.19.399 | 내부 | Rust 백엔드의 concurrent 타임아웃 처리가 검사된 밀리초 값을 나중에 되찾지 않고 한곳에 지니므로 컴파일러에서 검사 없는 단계가 사라졌습니다. 문법과 타임아웃 및 else 동작, 진단, 생성된 동작은 그대로입니다. |
| 5.19.398 | 내부 | concurrent 타임아웃은 밀리초로 환산되어 부호 없는 64비트 값에 들어가야 합니다. 받아들이는 최대치는 18446744073709551615ms 와 18446744073709551s, 307445734561825m 이고 그보다 한 칸 큰 값은 검사기부터 두 코드 생성기까지 어디서나 TPZ5001 로 거부합니다. |
| 5.19.397 | 내부 | 인터프리터가 중단 가능한 실행 상태를 한곳에 모아 둡니다. concurrent 갈래와 defer 동작이 각자 필드 목록을 관리하지 않고 들어갈 때와 나올 때 문맥 전체를 한 번씩 교체하며 동작과 스케줄링, 진단은 그대로입니다. |
| 5.19.396 | 내부 | 오류가 난 defer 동작이 더 이상 뒷자리를 남기지 않습니다. 바깥 컴프리헨션이 결과를 온전히 지키고, 오류가 난 레코드 기본값 뒤로 비공개 모듈 상태를 읽을 수 없게 되며, 새어 나온 타입 파라미터가 다음 defer 에 닿지 않습니다. |
| 5.19.395 | 내부 | 나란한 concurrent 갈래가 서로를 어지럽히지 않습니다. 병렬 갈래에서 도는 컴프리헨션이 결과를 온전히 내고, 멈춰 있는 레코드 기본값을 통해 모듈이 내보내지 않은 값을 읽으려 하면 TPZ5001 로 막힙니다. |
| 5.19.394 | 내부 | 물음표가 가져온 모듈의 레코드 기본값 밖으로 오류를 전파할 때, 생성자가 풀리면서 그 기본값에 주어졌던 비공개 접근 권한도 함께 걷힙니다. 모듈이 내보내지 않은 값을 나중에 읽으면 값이 나오지 않고 TPZ5001 이 납니다. |
| 5.19.393 | 내부 | 인터프리터에서 함수를 떠나는 모든 길이 하나의 출구를 지납니다. 끝까지 흐르는 경우와 명시적 return, 물음표 전파, case 갈래 반환이 모두 같으며 defer 시점과 반환 타입 가드, 그 오류 메시지와 위치는 그대로입니다. |
| 5.19.392 | 내부 | 인터프리터의 클로저 호출이 인자 개수와 스프레드, 이름 붙은 자리를 살아 있는 상태를 건드리기 전에 모두 검사하고, 거부는 모두 하나의 출구를 거쳐 호출자 환경으로 돌아옵니다. 오류 우선순위와 메시지, 위치, 모듈 간 동작은 그대로입니다. |
| 5.19.391 | 내부 | 이름 붙은 인자를 파라미터에 맞추는 규칙을 두 엔진의 내장 함수 호출과 클로저 호출, extern 호출이 함께 씁니다. 중복되거나 모르는 인자 이름은 어디서나 같은 방식으로 거부되며 인자 개수와 기본값, 타입 가드는 호출 형태마다 그대로 남습니다. |
| 5.19.390 | 내부 | 생성된 Rust 에서 concurrent 마감이 지나면 else 블록이 돌기 전에 대기 중인 갈래와 그 부분 결과가 먼저 풀립니다. 인터프리터가 이미 하던 대로이며 갈래가 붙잡고 있던 것도 else 효과가 시작되기 전에 놓입니다. |
| 5.19.389 | 내부 | 클로저 값을 부르는 네 가지 방식이 생성된 Rust 에서 하나의 경로를 지납니다. 보통 호출과 스프레드, 이름 붙은 인자, 스프레드와 이름 붙은 인자를 함께 쓰는 호출이 재귀 한계와 인자 개수 규칙, 기본값 평가, 인자 이름 오류를 공유하며 동작은 그대로입니다. |
| 5.19.388 | 내부 | 생성된 Rust 에서 이름 붙은 인자로 클로저를 부르는 두 방식이 스프레드 유무와 상관없이 재귀 한계와 인자 개수, 자리 채우기, 기본값 평가, 인자 이름 오류를 하나로 씁니다. 스프레드는 여전히 가변 파라미터를 요구하고 건너뛴 고정 자리마다 기본값이 있는지 확인합니다. |
| 5.19.387 | 내부 | 내장 함수의 이름 붙은 인자를 두 엔진이 같은 파라미터 목록에서 묶고, 수신자에 붙은 map 과 filter, reduce 는 수신자가 이미 채운 파라미터를 빼고 셉니다. 스프레드와 이름 붙은 인자를 함께 쓸 때는 가변이 아닌 스프레드를 거부하기 전에 이름 오류를 먼저 알립니다. |
| 5.19.386 | 내부 | 합성 함수가 생성된 Rust 에서 하나의 경로로 마무리됩니다. 어떤 호출 형태를 쓰든 왼쪽 함수에는 그대로 전달되고 오른쪽 함수는 언제나 중간값 하나만 받으며 인자 묶기와 평가 순서, 오류 위치는 그대로입니다. |
| 5.19.385 | 내부 | Option.okOrElse 가 두 엔진에서 같은 정의로 동작합니다. Some 은 콜백을 부르지 않고 Ok 로 끝나고, None 은 인자 없이 한 번만 부른 뒤 결과를 Err 로 감싸며, 다른 수신자는 여느 때처럼 없는 멤버 오류를 냅니다. |
| 5.19.384 | 내부 | Option.flatMap 과 Result.flatMap 이 두 엔진에서 map 과 같은 정의를 씁니다. Some 과 Ok 은 콜백을 한 번 부르고 그 결과를 그대로 돌려주며, None 과 Err 은 손대지 않고 지나가고, 다른 수신자는 어느 엔진에서든 없는 멤버 오류를 냅니다. |
| 5.19.383 | 내부 | Option.map 과 Result.map 이 두 엔진에서 한 번만 정의됩니다. Some 과 Ok 은 콜백을 한 번 부르고 결과를 다시 감싸며, None 과 Err 은 콜백 없이 지나가고, 다른 수신자는 전과 같이 배열 매핑으로 넘어갑니다. |
| 5.19.382 | 내부 | Map.update 가 하나의 공용 정의로 돕니다. 없는 키는 함수를 부르지 않고 초깃값을 넣고, 있는 키는 함수를 한 번 부른 뒤 결과를 원래 자리에 다시 쓰며, 삽입 순서와 별칭에 보이는 변경, 해시할 수 없는 키 오류는 그대로입니다. |
| 5.19.381 | 내부 | Map.filter 와 Map.mapValues 가 두 엔진에서 하나의 정의를 씁니다. filter 는 키와 값을 함께 넘겨 참일 때 원래 쌍을 남기고 mapValues 는 값만 넘겨 결과를 같은 키에 놓으며 쌍의 순서는 그대로 지켜집니다. |
| 5.19.380 | 내부 | 배열 retain 이 두 엔진에서 하나의 공용 정의로 돕니다. 술어는 앞에서 뒤로 원소마다 한 번씩 불리고 남은 원소는 별칭에서도 보이도록 수신자에 다시 쓰이며, 술어가 오류를 내면 배열은 손대지 않은 채로 남습니다. |
| 5.19.379 | 내부 | sortedBy 와 sortBy 가 하나의 공용 정의로 키를 모읍니다. 키 콜백은 정렬 전에 앞에서 뒤로 모두 돌고 sortedBy 는 새 배열을 돌려주며 sortBy 는 수신자에 다시 쓰고, 같은 키는 순서를 지키며 오류가 나면 수신자는 그대로 남습니다. |
| 5.19.378 | 내부 | 인터프리터가 map 과 filter, reduce 를 자유 함수로 부르든 배열 수신자에 붙여 부르든 같은 기계로 돌립니다. 수신자와 멤버, 인자의 평가 순서와 이름 붙은 인자 및 스프레드 동작, 콜백 효과, 오류, 결과는 그대로입니다. |
| 5.19.377 | 내부 | 호출 자리마다 반복문을 펼치는 대신 생성된 Rust 가 map 과 filter, reduce 를 하나의 공용 경로로 부릅니다. 자유 호출과 배열 수신자, 이름 붙은 인자와 파이프, 옵셔널 배열 형태를 모두 아우르며 평가 순서와 콜백 효과, 오류, 위치, 결과는 그대로입니다. |
| 5.19.376 | 내부 | map 과 filter, reduce 를 그냥 함수로 부를 때의 인자 검사와 순회 순서, 결과 조립이 하나의 정의로 모였고 인터프리터와 생성된 Rust 가 그것을 함께 씁니다. 빈 입력과 콜백 순서 및 효과, 오류, 위치, 누산기 동작은 그대로입니다. |
| 5.19.375 | 내부 | print 과 input, open, FS 연산, Test 단언, 리스펙스 연산을 포함해 프로그램 밖에 닿는 내장 함수 30개가 두 엔진에서 하나의 공용 정의로 실행됩니다. 효과와 오류, 위치, 이름 붙은 인자 및 스프레드 묶기는 그대로입니다. |
| 5.19.374 | 내부 | 변환 내장 함수 toInt 와 toIntRadix, fromCodePoint, toFloat 가 두 엔진이 함께 쓰는 정의에 들어와 수신자 없는 순수 내장 함수 73개를 모두 덮습니다. 변환 결과와 인자 개수 및 타입 오류, 그 위치, 프렐류드 가림은 그대로입니다. |
| 5.19.373 | 내부 | Bytes 와 ByteBuffer, Encoding, Codec, Hash, Cli, Path, Regex, CSV, TOML, URL, Date, BigInt, Decimal 의 정적 내장 함수 50개가 두 엔진이 함께 쓰는 정의로 들어와 모두 69개가 됐습니다. 기본 인자와 결과, 오류, 위치는 그대로입니다. |
| 5.19.372 | 내부 | Array.of 와 Map.new, Map.ofEntries, Set.of, JSON.stringify, JSON.parse, Math 멤버를 포함한 정적 내장 함수 19개가 인터프리터와 생성된 Rust 가 함께 부르는 정의 하나로 실행됩니다. 결과와 오류, 위치, 네임스페이스 가림은 그대로입니다. |
| 5.19.371 | 내부 | 값으로 넘겨 쓸 수 있는 이름이 생성된 Rust 에서 늘었습니다. Array.of 와 Map.new, Set.of, JSON.stringify, JSON.parse, Math 멤버 열세 개가 여기에 들어오며 인터프리터에서는 이미 되던 것이고 직접 호출과 지역 바인딩에 의한 가림은 그대로입니다. |
| 5.19.370 | 내부 | 네임스페이스 호출에서 그려 낸 인자를 Rust 백엔드가 두 벌이 아니라 한 벌만 지닙니다. 이름 붙은 인자는 여전히 소스 순서로 평가되어 파라미터 순서로 전달되며 개수와 이름, 중복, 누락, 스프레드, 이름 뒤 위치 인자 오류는 그대로입니다. |
| 5.19.369 | 내부 | 동기 호출이든 비동기 호출이든 생성된 Rust 에서 export 를 부르는 길이 하나로 모였습니다. export 초기화와 필요한 멤버 해석, 호출 분배의 주인이 하나가 됐고 공개 인터페이스와 조회 오류 위치, 마감은 그대로입니다. |
| 5.19.368 | 내부 | 프로그램 인자와 표준 입력을 초기화에 넘기려고 미리 만들어 두는 일이 생성된 Rust 에서 사라졌습니다. 초기화가 쓰지 않던 값이며 export 호출은 공개 서명을 그대로 지키고 진입점 선택과 명시적 main 인자, 초기화 순서, 결과도 그대로입니다. |
| 5.19.367 | 내부 | 초기화 모양을 고르려고 생성된 텍스트에서 대기 표현을 찾던 일이 Rust 백엔드에서 사라졌습니다. 모든 생성 프로그램이 비동기 초기화 하나를 쓰며 초기화 순서와 값, 오류, export, 결과는 그대로입니다. |
| 5.19.366 | 내부 | 메서드와 프로토콜 등록이 생성된 프로그램에서 항목마다 사본을 만들지 않고 정체성과 메서드 이름을 정적 문자열로 담습니다. 등록 순서와 중복 메서드의 나중 값 우선, 조회와 폴백 동작, 결과는 그대로입니다. |
| 5.19.365 | 내부 | 생성된 프로그램의 프로토콜 호출 분배가 호출마다 조회용 이름을 새로 짓지 않습니다. 메서드를 모듈과 프로토콜, 타입, 메서드 이름으로 나눠 담고 그 조각을 빌려 찾으며 등록 순서와 내장 폴백, 결과는 그대로입니다. |
| 5.19.364 | 내부 | 같은 타입에 메서드를 여러 개 등록할 때 생성된 프로그램이 타입 정체성을 메서드마다가 아니라 한 번만 만듭니다. 등록 순서와 중복 시 나중 값 우선, 시작할 때 비우기, 조회, 결과는 그대로입니다. |
| 5.19.363 | 내부 | 타입과 이름 순서로 메서드를 찾으면서 생성된 프로그램이 두 문자열을 복사하지 않아 수신자 호출과 프로토콜 호출마다 할당 두 번이 사라집니다. 등록 순서와 중복 처리, 없는 메서드 동작, 결과는 그대로입니다. |
| 5.19.362 | 내부 | 쌓아 둔 클로저 생성 소스를 마지막 서식 전에 통째로 복사하지 않고 Rust 백엔드가 그 자리에서 그려 냅니다. 클로저 생성 순서와 내용, 생성된 소스, 캡처 동작은 그대로입니다. |
| 5.19.361 | 내부 | 이름마다 임시 문자열을 만들어 잇지 않고 생성된 Rust 의 export 이름 목록을 배열 리터럴로 한 번에 그립니다. export 선언 순서와 문자열 이스케이프, 돌려주는 목록, 런타임 동작은 그대로입니다. |
| 5.19.360 | 내부 | Rust 백엔드가 export 목록을 만들 때 모듈의 정본 런타임 export 집합을 다시 짓지 않고 빌려 씁니다. extern 모듈은 자기 목록을 바로 만들고, 내보내지 않은 이름 오류와 쓸 수 없는 export 오류, 타입만 가져오는 import, 생성된 코드는 그대로입니다. |
| 5.19.359 | 내부 | 앞 단계에서 이미 구한 export 순서를 모듈 본문을 낼 때 그대로 다시 씁니다. 이름을 한 번 더 뽑는 일이 사라졌고 타입만 있는 선언은 그대로 지워지며 export 순서와 생성된 코드, 런타임 동작도 그대로입니다. |
| 5.19.358 | 내부 | 모듈 자신의 런타임 export 를 가리키는 레코드 기본값을 목록을 훑지 않고 곧바로 찾습니다. 목록이 없으면 그냥 있다고 여기지 않고 위치가 붙은 컴파일러 오류로 알리며 필드 순서와 중복 제거, 런타임 동작은 그대로입니다. |
| 5.19.357 | 내부 | export 마다 모듈 바인딩을 훑지 않고 Rust 백엔드가 곧바로 찾습니다. 순서가 매겨진 export 목록이 여전히 레코드 필드 순서를 정하고 최상위 셀 export 는 이름표와 오류 동작을 그대로 지킵니다. |
| 5.19.356 | 내부 | 골라 가져오는 import 가 늘어나는 목록 셋을 훑지 않고 집합 조회로 풀리며 진입 모듈과 그 아래 모듈이 같은 판정을 씁니다. 생성된 레코드의 선언 순서와 import 오류, 타입만 가져오는 import, 나온 코드는 그대로입니다. |
| 5.19.355 | 내부 | import 바인딩과 상수 바인딩이 Rust 백엔드의 모듈 스코프로 복사되지 않고 그대로 옮겨집니다. import 가 상수보다 앞서는 순서와 재선언 및 조회 동작, 나온 코드, 런타임 동작은 그대로입니다. |
| 5.19.354 | 내부 | 내장된 리스펙스 실행기를 돌리는 모든 호스트에서, 인터프리터와 생성된 Rust, 생성된 Python 을 포함해 기록된 동작이 서로 맞아떨어집니다. 읽기 단계로 잘못 적혀 있던 define-syntax 진단 E120 은 제자리인 정규화 단계에서 보고합니다. |
| 5.19.353 | 내부 | 내장된 리스펙스 실행기가 1.12.4 에서 1.19.4 로 올라갑니다. begin 을 이어 붙일 수 있고 빈 프로그램도 받으며 진단은 안정된 공개 E 코드를 쓰고, 명시적 출력 효과가 표준 출력에 쓰이며, 게스트 의미 오류는 종료 코드 1 로 끝나고 물러난 자원 프로필 둘은 곧바로 거부합니다. |
| 5.19.352 | 내부 | 리스펙스 1.19.4 를 제품에 들이는 계획을 기록하고 고정했습니다. 어떤 파일을 옮기고 어떤 경계를 건드리지 않으며 어떤 순서로 진행할지를 담았고, 내장 실행기와 제품 동작은 다음 패치가 실행하기 전까지 그대로 둡니다. |
| 5.19.351 | 내부 | 상수 값이 Rust 백엔드에서 하나의 키 있는 저장소에 모여, 이름이나 네임스페이스로 상수를 찾을 때 목록을 훑지 않습니다. 진입 상수와 모듈 상수, 가져온 레코드 기본값, 스칼라 함수 기본값이 이를 함께 쓰고 병합 우선순위는 전과 같습니다. |
| 5.19.350 | 내부 | 어떤 이름이 상수인지 가리는 일이 Rust 백엔드에서 바인딩 목록을 뒤지는 대신 곧바로 찾는 일이 됐습니다. 진입 상수와 모듈 상수, 가져온 레코드 기본값이 같은 색인을 함께 쓰며 생성 순서와 상수 평가 순서는 그대로입니다. |
| 5.19.349 | 내부 | 레코드 기본값이 쓰는 모듈 자신의 런타임 참조를 모을 때, 아무것도 찾을 수 없던 중복 이름 검사가 빠졌습니다. 최상위 바인딩이 정확히 하나라는 규칙이 이미 이름의 유일함을 보장하며 소스 순서와 참조 정체성은 그대로입니다. |
| 5.19.348 | 내부 | 레코드 기본값 안에서 모듈 자신의 런타임 참조가 처음 나오는지를 늘어나는 목록을 훑지 않고 이미 본 이름 집합으로 가립니다. 같은 레코드 선언이 거듭돼도 그 집합을 다시 쓰며 첫 등장 순서와 생성된 숨은 필드 정체성은 그대로입니다. |
| 5.19.347 | 내부 | 레코드 기본값이 가리킬 수 있는 앞선 불변 바인딩 이름을 집합으로 담아, 수집기가 목록을 뒤지지 않고 들어 있는지만 봅니다. 이름이 뒤따르는 레코드 기본값에 보이는 시점은 전과 똑같고 이름 사본은 만들지 않습니다. |
| 5.19.346 | 내부 | 골라 가져오는 import 사실을 모을 때 받아들인 상수와 런타임 참조를 결과 목록을 훑지 않고 이름 색인 둘로 확인합니다. 소스 순서에서 먼저 받아들인 쪽이 이기는 동작과 별칭 처리, export 허용 판정은 그대로입니다. |
| 5.19.345 | 내부 | 네임스페이스 import 사실을 한 번의 순회로 모으고 대상 모듈도 네임스페이스마다 한 번만 찾으며 이름이 붙은 상수 값과 런타임 참조를 함께 냅니다. export 이름 정렬과 대상 모듈이 없을 때의 동작은 그대로입니다. |
| 5.19.344 | 내부 | 골라 가져오는 import 의 상수와 런타임 참조를 소스 순서로 한 번에 모으고, 레코드 기본값이 필요로 하는 비공개 런타임 참조는 이미 레코드를 훑던 그 순회에서 함께 거둡니다. 모듈을 따로 한 번 더 도는 일이 사라졌습니다. |
| 5.19.343 | 내부 | 모듈 기본값에 필요한 것들이 상수 값부터 레코드 기본값 본문까지 모듈 최상위를 한 번 앞으로 훑는 동안 모두 모입니다. 소스 전체를 따로 도는 순회 여섯 개가 사라졌고 생성 결과는 그대로입니다. |
| 5.19.342 | 내부 | 레코드 기본값이 어떤 이름을 가리켜도 되는지 가릴 때 앞뒤 문장을 다시 훑지 않습니다. 앞으로 한 번 걸으면서 남은 개수와 지금까지 본 변경 가능 이름을 들고 다니며 앞선 참조와 변경 가능 참조에 대한 판정은 그대로입니다. |
| 5.19.341 | 내부 | 모듈 최상위에서 어떤 이름이 몇 번 묶이는지를 뒤에 따로 훑지 않고 이미 도는 선언 순회 안에서 셉니다. 타입 투영과 레코드 기본값 수집이 완성된 개수를 받아 쓰며 동작은 그대로입니다. |
| 5.19.340 | 내부 | 별칭과 스키마, 이름 있는 타입, 메서드, 프로토콜의 날것 모음 대신 완성된 결과가 Rust 백엔드의 타입 단계로 넘어갑니다. 생성된 코드와 런타임 동작은 그대로입니다. |
| 5.19.339 | 내부 | 생성된 Rust 백엔드가 모듈마다 별칭 해석을 한 단계에서 끝냅니다. 블록 안의 중첩 별칭을 훑어 가려진 항목을 걷어내고 이름이 겹친 별칭을 표시한 뒤 완성된 별칭표만 모듈 타입 정보 구성에 넘깁니다. |
| 5.19.338 | 내부 | 모듈 경계를 넘는 숨은 런타임 참조 병합을 한 규칙이 맡아 병합 결과를 정렬하고 중복을 없앱니다. 프로그램 타입 정보 구성은 단계 순서만 맡습니다. |
| 5.19.337 | 내부 | 한 단계가 모듈의 타입 정보 전체를 조립합니다. 지역 선언에서 별칭 투영을 거쳐 런타임과 레코드 기본값 사실까지 이어지며, 5.20 이름 신원 방식은 모듈마다가 아니라 프로그램 전체에서 한 번만 정합니다. |
| 5.19.336 | 내부 | 런타임 값과 레코드 기본값 사실 수집을 한 단계로 묶었습니다. 가져온 상수, 자기 모듈과 외부 모듈의 런타임 참조, 숨은 참조, 미뤄 둔 기본값 식을 함께 모아 모듈 타입 정보를 완성하기 전에 넘깁니다. |
| 5.19.335 | 내부 | 소스 순서 한 번의 통과로 모듈의 유효 별칭, 내보내기 타입 표면, 타입 가져오기 바인딩을 함께 만들고 이 셋을 한 결과로 넘깁니다. |
| 5.19.334 | 내부 | 소스와 런타임 신원, 생성된 표준 모듈 출신 여부를 흩어진 세 자리 대신 모듈마다 하나의 사실로 묶었습니다. 타입 붙은 JSON 스키마 해석, 모듈 한정 타입 검사, 런타임 메서드 선택, 리스펙스 내장 기능 허용이 모두 같은 사실을 읽습니다. |
| 5.19.333 | 내부 | 내보낸 상수 값, 런타임 내보내기 이름 집합, 불변 최상위 바인딩 이름 집합을 하나의 런타임 값 표면으로 모았습니다. 가져오기 상수 수집과 참조 수집, 레코드 기본값 분석이 같은 표면을 읽습니다. |
| 5.19.332 | 내부 | 상수 값, 가져온 참조와 자기 모듈 참조, 숨은 참조, 미뤄 둔 기본값 식, 모듈 사이로 퍼지는 참조까지 흩어져 있던 여섯 묶음을 레코드 기본값 사실 하나로 합쳤습니다. 레코드 생성과 기본값 초기화, 모듈 간 전파가 같은 묶음을 씁니다. |
| 5.19.331 | 내부 | 모듈의 메서드 정의와 프로토콜 이름을 지역 메서드 선언 하나로 함께 담습니다. 별칭 수집이 두 가지를 그 하나에서 읽고, 유효 수신자 메서드 후보 이름은 별칭 투영에 그대로 남습니다. |
| 5.19.330 | 내부 | 네임스페이스 타입 가져오기와 선택 타입 가져오기를 바인딩 표 하나에 담습니다. 타입 붙은 JSON 선언 찾기, 네임스페이스 변형 탐색, 모듈 한정 타입 조회, 레코드 기본값 분석이 모두 같은 표를 봅니다. |
| 5.19.329 | 내부 | 일반 별칭표, 제네릭 별칭표, 이름 충돌로 무효가 된 별칭 집합을 지역 해석 결과 하나로 묶었습니다. 모듈 별칭 조회, 모듈 한정 별칭 허용, 전이 한정 타입 판별이 모두 이것을 읽습니다. |
| 5.19.328 | 내부 | 내보낸 타입 이름, 내보낸 enum 과 record 와 newtype 정의, 내보낸 수신자 메서드가 하나의 내보내기 타입 표면을 이룹니다. 가져오기 투영, 모듈 한정 타입 검사, 별칭 허용, 변형 탐색이 여기서 읽습니다. |
| 5.19.327 | 내부 | 지역 enum 과 record 와 newtype 정의, 그리고 타입 별칭과 이 세 형태의 스키마 선언표 네 개를 지역 선언 하나로 묶었습니다. 흩어진 일곱 자리를 없앴고 별칭 해석과 스키마 조회, 타입 검사, 내보내기 추출이 한 곳을 읽습니다. |
| 5.19.326 | 내부 | 유효 타입과 스키마, 수신자 메서드, 스키마 출처를 담던 열 개 묶음을 별칭 투영 하나로 접었습니다. 가져오기를 적용하는 단계가 여기에 바로 쓰고 별칭 수집이 같은 결과를 읽어 중간 어댑터가 사라졌습니다. |
| 5.19.325 | 내부 | 유효 가져오기 투영과 스키마 출처 지도를 이미 도는 가져오기 통과에서 함께 확정합니다. 별칭 수집은 완성된 결과를 그대로 받아 쓰므로 모듈마다 두 번째 훑기와 출처 지도 재구성이 없어졌습니다. |
| 5.19.324 | 내부 | 모듈 타입 정보와 별칭 수집이 이름 정의표 세 개, 스키마 선언표 네 개, 수신자 메서드 후보 집합을 복사하지 않고 함께 씁니다. 가져오기는 내보낸 항목을 받는 그 한 묶음만 복사합니다. |
| 5.19.323 | 내부 | 별칭표와 충돌 집합을 깊이 복사하지 않고 함께 씁니다. 함수와 람다와 defer 본문 조회가 같은 표를 다시 쓰며, 다른 모듈에서 정의된 별칭을 볼 때만 필요한 합집합을 새로 만듭니다. |
| 5.19.322 | 내부 | 별칭 수집이 이미 만들어 둔 모듈 정보를 다시 쓰고 가져오기 투영만 얹습니다. 두 번째 선언 수집과 가려진 별칭을 다시 훑는 작업, 쓰이지 않던 언어 버전 자리를 없앴습니다. |
| 5.19.321 | 내부 | 최상위 메서드, 프로토콜, 타입 별칭, record, enum, newtype 선언을 소스 순서 한 번의 통과로 모읍니다. 고유 메서드 대상이 모두 모인 뒤 메서드 신원을 완성하므로 선언이 적힌 순서에 더는 좌우되지 않습니다. |
| 5.19.320 | 내부 | 최상위 타입 별칭 수집이 스키마 참조, 일반 해석표와 제네릭 별칭표, 중복 이름 표시를 한 번의 통과로 만듭니다. 이어지는 구조 순회가 블록을 담을 수 있는 모든 자리에 블록 지역 별칭 가림 규칙을 똑같이 적용합니다. |
| 5.19.319 | 내부 | 프로토콜 탐색을 메서드 수집 통과 안으로 옮겼습니다. 내장 Show 와 Eq 와 Order 프로토콜을 먼저 심고 선언된 프로토콜 이름을 구현 대상, 디스패치 항목과 나란히 모으며, 정적 디스패치와 수신자 디스패치가 이 목록 하나를 함께 씁니다. |
| 5.19.318 | 내부 | 스키마 선언과 enum 과 record 와 newtype 의 런타임 정의를 별칭 수집과 모듈 간 타입 정보가 함께 쓰는 한 번의 통과에서 만듭니다. 이 통과에서 변형 개수와 순서, 레코드 필드, 기본값 소스 소유가 확정됩니다. |
| 5.19.317 | 내부 | 컴파일 단위에 고유 메서드나 프로토콜 메서드 선언이 있는지를 선언 수집 중에 기록하고 항목을 내보낼 때 바로 읽습니다. 나중에 단위 전체를 다시 훑어 판단하던 별도 통과가 사라졌습니다. |
| 5.19.316 | 내부 | 고유 메서드 대상과 내보낸 수신자 메서드 후보를 모듈 간 타입 정보가 한 번의 통과로 모읍니다. 그다음 후보를 완성된 내보내기 enum 과 record 와 newtype 집합과 교차해 내보낸 수신자 메서드를 확정합니다. |
| 5.19.315 | 내부 | 별칭 수집이 고유 메서드 대상, 프로토콜 한정 디스패치 항목과 고유 디스패치 항목, 수신자 호출 후보를 소스 순서 한 번의 통과로 만듭니다. 메서드 등록부가 필요한지는 기록된 사실을 바로 읽어 판단합니다. |
| 5.19.314 | 내부 | enum 과 record 와 newtype 수집기가 별칭 경계와 모듈 간 경계 양쪽에서 고유 메서드 대상 수집 한 번의 결과를 함께 씁니다. 선언 신원과 메서드 신원이 그 한 벌의 입력에서 만들어집니다. |
| 5.19.313 | 내부 | 가져오기로 들어오는 수신자 메서드를 가져온 타입 정의와 스키마를 투영하는 같은 통과에서 모읍니다. 덕분에 가져오기 대상과 선택한 이름을 각각 한 번만 해석합니다. |
| 5.19.312 | 내부 | 선택 가져오기가 타입 정의와 record 와 enum 과 newtype 스키마를 위해 네 번 돌던 통과를 한 번으로 줄였습니다. 소스 순서 한 통과에서 가져오기 대상을 한 번 해석하고 찾아낸 내보내기 정의를 스키마 등록에 다시 씁니다. |
| 5.19.311 | 내부 | 점으로 이어진 모듈 경로를 아홉 곳이 함께 쓰는 조립기 하나가 만듭니다. 가져온 상수, 진입 가져오기 계획, 수신자 메서드 가져오기, 타입 정의와 스키마가 모두 여기에 해당하며 가져오기와 별칭, 기본값, 진단, 생성 결과는 그대로입니다. |
| 5.19.310 | 내부 | 모듈 최상위 이름이 몇 번 묶였는지를 모듈마다 한 번만 셉니다. 같은 목록을 다섯 번 다시 만들고 여섯 군데 유일성 검사에서 훑던 방식을 대신하며 충돌 처리와 레코드 기본값, 가져오기, 진단, 생성 결과는 그대로입니다. |
| 5.19.309 | 내부 | 타입이 붙었든 아니든 단순 바인딩의 이름이 필요한 여섯 곳이 임시 목록을 만들지 않고 공용 투영 하나로 읽습니다. 여러 이름을 분해해야 하는 자리에는 기존 패턴 수집이 그대로 남고 내보내기 동작과 생성 결과도 그대로입니다. |
| 5.19.308 | 내부 | export let value: int = 41 처럼 타입을 붙인 내보내기가 생성된 Rust 백엔드에서도 컴파일됩니다. 해석과 검사, 인터프리터, 생성된 Python 을 모두 통과하고도 TPZ6001 로 막히던 문제가 사라졌으며 분해 패턴 내보내기 거부는 그대로입니다. |
| 5.19.307 | 내부 | 제네릭 타입을 타입 인자 없이 이름만으로 쓰는 경우를 지역 타입과 선택 가져오기로 들어온 타입에서 똑같이 거부합니다. 인터프리터와 생성된 Rust 백엔드가 신원만 보고 통과시키지 않고 선언 대조로 넘어가 TPZ5099 개수 오류를 알립니다. |
| 5.19.306 | 내부 | 모듈 한정 타입을 대조할 때 내보내기 여부와 타입 인자 개수를 인터프리터와 생성된 Rust 백엔드, 생성된 Python 에서 같은 규칙으로 확인합니다. 비공개 타입은 TPZ5001 오류로 내보낸 타입이 아님을 알리고, 인자 없이 이름만 쓴 제네릭도 더는 비제네릭으로 보지 않습니다. |
| 5.19.305 | 내부 | 여섯 개의 모듈 한정 타입 대조 경로가 자리마다 신원 문자열을 다시 만들지 않고 정의에 저장된 신원을 그대로 비교합니다. 내보내기 허용과 제네릭 치환, 진단, 결과는 그대로입니다. |
| 5.19.304 | 내부 | enum 변형이나 record 나 newtype 을 만들 때 이미 해석한 정의에서 메서드 신원을 바로 받아 선언 신원을 얻고 다시 찾지 않습니다. 신원과 디스패치, 필드와 변형 순서, 결과는 그대로입니다. |
| 5.19.303 | 내부 | 패턴과 타입 대조를 하는 여덟 자리가 전역 표에서 타입을 다시 찾지 않고 enum 이나 record 나 newtype 정의가 들고 있는 신원을 비교합니다. 패턴 폴백과 별칭, 제네릭 치환, 진단은 그대로입니다. |
| 5.19.302 | 내부 | 생성 경로가 선언 신원과 메서드 신원을 한 번의 조회에서 함께 얻습니다. 예전에는 enum 변형과 record 와 newtype 을 만들 때 두 신원을 위해 표를 두 번 훑었으며 생성 동작과 기본값 순서, 결과는 그대로입니다. |
| 5.19.301 | 내부 | 5.20 방식에서 enum 값의 변형을 찾을 때 후보마다 전역 표를 다시 묻지 않고 후보 정의가 이미 들고 있는 신원을 비교합니다. 변형 순서와 개수, 별칭, 패턴, 결과는 그대로입니다. |
| 5.19.300 | 내부 | 선택 가져오기가 대상 모듈을 한 번만 해석하고 런타임 바인딩과 enum 과 record 와 newtype 정의를 그 한 번의 해석에서 가져옵니다. 별칭을 붙인 이름과 그렇지 않은 이름, 타입 전용 내보내기, 모듈 초기화는 이전과 같습니다. |
| 5.19.299 | 내부 | 네임스페이스로 멤버를 읽을 때 모듈을 한 번만 해석하고 그 결과로 비공개 레코드 기본값 집합 조회와 환경 조회, 내보내기 허용을 함께 처리합니다. 동작과 진단 코드, 문구, 위치는 그대로입니다. |
| 5.19.298 | 내부 | 모듈 조회와 내보내기 허용, 런타임 바인딩 유무, 내보내지 않았다는 진단을 선택 가져오기와 네임스페이스 접근이 함께 쓰는 조회 하나가 맡습니다. 타입 전용 내보내기와 런타임 네임스페이스 접근의 진단은 각자 그대로입니다. |
| 5.19.297 | 내부 | 받아들인 내보내기 선언은 이름을 많아야 하나 남기므로 등록이 비었거나 하나뿐인 목록을 거치지 않고 그 이름을 바로 기록합니다. 어떤 선언이 이름을 내보내는지는 달라지지 않았습니다. |
| 5.19.296 | 내부 | 인터프리터가 점으로 이어진 가져오기 경로를 모듈 정보 수집과 가져오기 실행 두 곳에서 각각 만들던 것을 조립기 하나로 합쳤습니다. 경로 문구와 별칭 바인딩, 없는 모듈 오류, 초기화 순서는 그대로입니다. |
| 5.19.295 | 내부 | 타입 붙은 JSON 가져오기 범위의 대상 모듈 신원을 가져오기 항목마다 복사하지 않고 함께 씁니다. 이미 초기화된 모듈은 기존 키를 다시 쓰며 가져오기 경로와 모듈 간 스키마 출처, 결과는 그대로입니다. |
| 5.19.294 | 내부 | 런타임 범위 키를 모듈마다 한 번 만들어 모듈 등록과 현재 모듈 신원, 모듈 지도, 소스 색인이 함께 씁니다. 모듈 신원과 순서, 경로 배정, 가져오기와 내보내기 동작은 그대로입니다. |
| 5.19.293 | 내부 | 실행 중인 모듈의 선언 신원을 한 번 만들어 함께 씁니다. 진입 모듈은 별도의 없음 상태 대신 빈 신원을 지니며 내보내기 수집과 외부 함수 디스패치, 반복 실행은 이전과 같습니다. |
| 5.19.292 | 내부 | 같은 선언 신원을 모듈 등록과 모듈 타입 범위가 두 벌 두지 않고 하나로 나눠 씁니다. 타입 붙은 JSON 선언 해석도 문자열을 복사하지 않고 그 신원을 돌려주며 프로토콜 디스패치와 네임스페이스 적합성 검사는 그대로 읽습니다. |
| 5.19.291 | 내부 | 전역 enum 과 record 와 newtype 표를 모듈 준비 도중에 곧바로 고치던 부수 효과를 없앴습니다. 완성된 모듈이 자기 정의를 지니고 있다가 모듈을 설치하는 한 지점에서 전역 표에 공개합니다. |
| 5.19.290 | 내부 | 선언 신원과 런타임 범위 키를 준비된 모듈이 지니는 모듈 신원 하나로 묶었습니다. 준비 단계와 설치 단계가 두 값을 나란히 주고받지 않으며 경로 배정과 가져오기, 내보내기, 반복 실행은 그대로입니다. |
| 5.19.289 | 내부 | 자리만 잡아 미리 넣어 두던 모듈 범위 예약을 없앴습니다. 완성된 모듈을 먼저 만들어 새 항목은 한 번에 완전한 상태로 넣고, 이미 있는 항목은 최상위 환경과 런타임 내보내기를 지킨 채 프로그램 상태만 갈아 끼웁니다. |
| 5.19.288 | 내부 | 모듈을 준비하면 타입 범위와 레코드 기본값이 읽을 수 있는 비공개 값, 호출 가능 항목 등록 계획을 담은 완성된 결과 하나가 나옵니다. 설치는 그 결과를 한 경계에서 풀어 씁니다. |
| 5.19.287 | 내부 | 메서드와 프로토콜 구현, 프로토콜 선언을 등록할 계획을 준비 단계에서 만들며 선언을 복사하지 않고 소스에서의 위치만 기록합니다. 등록 시점에 항목 전체를 다시 훑던 통과가 사라졌고 등록 순서는 그대로입니다. |
| 5.19.286 | 내부 | 준비 단계가 모듈 최상위를 여섯 번이 아니라 한 번만 읽습니다. 타입 붙은 JSON 가져오기 경로, 비공개 불변 값, 타입 별칭, enum 과 record 와 newtype 정의를 함께 모으며, 메서드 대상 훑기는 신원이 완전한 집합을 필요로 해 따로 남겨 두었습니다. |
| 5.19.285 | 내부 | 프로그램 준비가 모듈 타입 범위를 지역에서 조립해 메서드 등록과 문장 실행 전에 한 번만 제자리로 옮깁니다. 가져오기와 최상위 별칭, 타입 붙은 JSON 경로, 타입 정의가 그 범위 하나에 바로 기록됩니다. |
| 5.19.284 | 내부 | 단독 프로그램과 해석된 단위 모듈, 생성된 표준 모듈 모두 모듈 범위를 한 곳에서만 만듭니다. 단위 초기화는 소스와 환경, 신원을 갖춘 뒤 넘겨주며 초기화 순서와 결과는 그대로입니다. |
| 5.19.283 | 내부 | 타입 정보를 소스별이 아니라 모듈별로 담고 소스에서 모듈로 가는 가벼운 색인만 남겼습니다. 별칭 조회와 프로토콜 디스패치, 타입 붙은 JSON 경로 배정이 소스 키 포장을 거치지 않고 모듈을 바로 읽습니다. |
| 5.19.282 | 내부 | 모듈 신원으로 찾는 항목 하나가 런타임 범위와 타입 범위를 함께 지니며 나란히 있던 두 지도를 대신합니다. 가져오기 허용과 내보내기, 모듈 한정 타입 조회, 타입 붙은 JSON 경로 배정이 그 한 항목에서 읽습니다. |
| 5.19.281 | 내부 | 실행 중인 모듈의 신원과 외부 모듈 여부를 현재 모듈 문맥 하나로 함께 담고 모듈마다 한 번에 갖춥니다. 외부 모듈 재실행과 내보내기 경계, 초기화 순서는 그대로입니다. |
| 5.19.280 | 내부 | 현재 모듈의 선언 한정자와 런타임 범위 키를 모듈마다 한 번 만드는 신원 하나에 담습니다. 진입 모듈은 선언 한정자를 두지 않으면서도 자기 신원을 런타임 범위 키로 그대로 씁니다. |
| 5.19.279 | 내부 | 최상위 환경과 내보낸 이름, 비공개 불변 값을 모듈 신원으로 찾는 런타임 항목 하나에 담아 나란히 있던 세 지도를 대신합니다. 가져오기 조회와 내보낸 값 확인, 레코드 기본값 접근이 그 항목을 읽습니다. |
| 5.19.278 | 내부 | 정의 소스와 타입 붙은 JSON 가져오기 경로, 타입 정의를 모듈 신원으로 찾는 타입 항목 하나로 모아 나란히 있던 세 지도를 대신합니다. 선택 가져오기와 모듈 한정 타입 조회, 스키마 경로 배정이 같은 항목을 읽습니다. |
| 5.19.277 | 내부 | 소스에 딸린 타입 상태, 곧 소속 모듈 신원과 최상위 타입 별칭, 타입 붙은 JSON 선언을 나란한 세 지도 대신 항목 하나에 담습니다. 별칭 스프레드과 스키마 생성이 같은 항목을 읽고 클로저 소스 교체 뒤에도 모듈 신원이 이전처럼 복구됩니다. |
| 5.19.276 | 내부 | enum 과 record 와 newtype 정의가 저마다 신원과 선언에 더해 정의된 소스까지 함께 지니므로 선택 가져오기용 경로 지도 세 개가 사라졌습니다. 지역 조회와 모듈 한정 조회가 선언 위치를 정의에서 바로 읽습니다. |
| 5.19.275 | 내부 | 메서드 신원을 타입마다 한 번 계산해 정의와 함께 담으므로 나란히 있던 신원표 두 개가 사라졌습니다. 메서드 등록과 신원 조회가 타입 표에서 바로 풀리며 5.20 과 5.19 의 신원 동작은 그대로입니다. |
| 5.19.274 | 내부 | enum 과 record 와 newtype 의 선언 전체가 런타임 신원, 실행 자료와 함께 서술자 하나에 들어가고 나란히 있던 선언표 네 개를 없앴습니다. 모듈 적재와 선택 가져오기, 모듈 한정 조회가 같은 서술자를 씁니다. |
| 5.19.273 | 내부 | 런타임 신원과 실행 자료를 enum 과 record 마다 서술자 표 하나로 합쳐 나란히 있던 신원 지도 네 개를 없앴습니다. 모듈 적재와 활성 정의, 선택 가져오기가 서술자를 그대로 함께 씁니다. |
| 5.19.272 | 내부 | 변형 표와 레코드 필드, 기본값 차례를 모듈 초기화 때 한 번 만들어 이후로는 함께 씁니다. 선택 가져오기가 실행 자료를 통째로 복사하지 않고 나눠 쓰며 복사하던 다섯 경로가 참조만 주고받고 순서와 개수, 기본값은 그대로입니다. |
| 5.19.271 | 내부 | 제네릭 타입 인자를 파서가 한 번만 만들어 검사기와 스키마 투영, Python 백엔드가 함께 씁니다. 제네릭 적합성 검사와 별칭 확장이 노드를 복사하지 않으며 중첩 제네릭, 타입 패턴, JSON 스키마 출력, 진단은 그대로입니다. |
| 5.19.270 | 내부 | 파이프라인 단계가 파서가 만든 구문 노드 하나를 재사용하고 실행 중에 파이프 오른쪽을 복사하지 않습니다. 평가 순서와 자리표시자 치환, 첫 인자 삽입, 필드 축약, 진단은 이전과 똑같습니다. |
| 5.19.269 | 내부 | 배열과 집합, Map 컴프리헨션이 파서가 만든 본문 노드 하나를 공유해 인터프리터가 복사 없이 각 절로 넘깁니다. 절 순서와 스코프, 키와 값 평가, 중복 처리, 진단, 결과는 동일합니다. |
| 5.19.268 | 내부 | newtype 선언을 한 번만 저장해 이름 기반 스키마와 스키마 선언, JSON 스키마 출력이 함께 쓰며 실행 중 세 번 복사하던 일이 없어졌습니다. 생성과 값 꺼내기, 패턴 매칭, 제네릭 매개변수, 진단은 그대로입니다. |
| 5.19.267 | 내부 | 레코드 선언과 필드 기본값 식을 파서가 한 번만 만들어 스키마 선언과 JSON 스키마 출력, 레코드 생성이 함께 쓰므로 실행 중 복사가 사라졌습니다. 필드 순서와 기본값, 갱신, 파생, 진단은 달라지지 않았습니다. |
| 5.19.266 | 내부 | enum 선언을 한 번만 두고 이름 기반 스키마와 스키마 선언, JSON 스키마 출력이 함께 쓰도록 바꿔 실행 중 세 번 복사하지 않습니다. 변형 순서와 인자 수, 생성, 패턴 매칭, 파생, 결과는 그대로입니다. |
| 5.19.265 | 내부 | 타입 별칭 선언과 그 뒤의 타입을 별칭 표와 스키마 출력, 블록 스코프, Python 백엔드가 복사 없이 함께 씁니다. 별칭과 제네릭 매개변수 해석, 타입 확장, 적합성, 진단, 결과는 그대로입니다. |
| 5.19.264 | 내부 | defer 동작을 식의 복사 없이 참조로 등록하도록 바꿔 실행 중 부담이 줄었습니다. 등록 위치와 어휘 스코프, 나중에 등록한 것부터 실행하는 순서, 조기 종료 되감기, 오류 처리는 그대로입니다. |
| 5.19.263 | 내부 | 구조 분해 let 바인딩이 인터프리터가 바인딩 단계를 만들 때 패턴을 복사하지 않고 그대로 재사용합니다. 바인딩 규칙과 가변성, 패턴 매칭, 진단, 결과는 달라지지 않았습니다. |
| 5.19.262 | 내부 | 문자열 리터럴을 보간과 태그 템플릿이 도는 동안 복사하지 않고 공유해 문자열마다 하는 일이 줄었습니다. 이스케이프 해석과 태그 조회, 조각 순서, 렌더링, 템플릿 조각과 값, 결과는 그대로입니다. |
| 5.19.261 | 내부 | 대입이 중첩된 멤버와 인덱스 경로, ??= 까지 포함해 분석된 대상과 값을 단계마다 복사하지 않고 재사용합니다. 대상 검사와 가변성 확인, 평가 순서, ??= 의 지연 평가, 옵셔널 경로 거부, 중첩 갱신은 그대로입니다. |
| 5.19.260 | 내부 | for 반복문 패턴을 한 번만 만들어 최상위 문장이든 블록 안이든 값 식이든 같은 것을 재사용합니다. 바인딩과 순회 순서, 반복 스코프, break 와 continue, 모은 값, 진단은 그대로입니다. |
| 5.19.259 | 내부 | while 조건을 바인딩 패턴을 쓴 형태까지 포함해 한 번만 만들고 반복마다 복사하지 않고 재사용합니다. 조건과 본문의 평가 순서, 스코프, break 와 continue, 반복 결과는 그대로입니다. |
| 5.19.258 | 내부 | 레코드 리터럴과 갱신의 각 명시 필드 식을 한 번만 만들어 검사기와 백엔드, 레코드 평가가 함께 쓰며 이름 기반 레코드에서 복사하지 않습니다. 소스와 평가 순서, 스프레드, 기본값, 만들어지는 레코드는 그대로입니다. |
| 5.19.257 | 내부 | 스프레드이 있는 이름 기반 레코드를 만들 때 분석된 스프레드 식을 복사하지 않고 재사용합니다. 명시 필드 검사와 중복·알 수 없는 필드 진단, 바탕부터 평가하는 순서, 기본값, 필드 순서는 그대로입니다. |
| 5.19.256 | 내부 | 멤버 접근이 수신자를 공유 자리 하나에 두어 컬렉션과 문자열, Option, Result, JSON, 바이트, 경로, 날짜의 기본 메서드가 수신자 전체를 복사하지 않습니다. 멤버 해석과 가변성 확인, 없는 멤버 진단, 메서드 선택은 그대로입니다. |
| 5.19.255 | 내부 | JSON.parseAs 와 JSON.decode 가 파이프와 자리표시자를 거치는 경우까지 인자 식을 복사하지 않고 호출 자리에서 바로 평가합니다. 인자 검사와 진단, 스코프, 평가 순서, 디코딩 동작은 이전과 같습니다. |
| 5.19.254 | 내부 | concurrent 식의 각 갈래를 파서가 한 번만 만들어 검사기와 백엔드가 함께 쓰므로 갈래를 시작할 때 본문을 복사하지 않습니다. 갈래 순서와 격리된 환경, 번갈아 실행하는 방식, 제한 시간, 오류 동작은 그대로입니다. |
| 5.19.253 | 내부 | concurrent 의 제한 시간 else 블록을 복사하지 않고 실행 중인 식에 바로 넘깁니다. 제한 시간 처리와 갈래 배치, 만료, 중단, else 실행은 그대로입니다. |
| 5.19.252 | 내부 | 보통 호출과 함수 값 호출, 기본 함수 호출, 파이프를 지나는 호출이 피호출자를 새 단계로 복사하지 않고 제자리에서 평가합니다. 특수 호출 경로와 피호출자를 인자보다 먼저 평가하는 순서, 단축 평가는 그대로입니다. |
| 5.19.251 | 내부 | 보간 문자열과 태그 템플릿이 리터럴을 들어올 때 한 번만 만들고 조각마다 전체와 조각을 복사하는 대신 제자리에서 평가합니다. 해석과 순서, 렌더링, 템플릿 조각과 값은 그대로입니다. |
| 5.19.250 | 내부 | match 가 가드와 갈래 본문, return 값을 평가하기 전에 스코프를 먼저 세우고, 공유하는 케이스 목록에서 복사 없이 바로 가져옵니다. 케이스 순서와 바인딩 스코프, 반환 동작은 그대로입니다. |
| 5.19.249 | 내부 | Some 과 Ok, Err, newtype 생성자가 인자를 제자리에서 평가하고, enum 과 프로토콜 호출은 복사한 노드를 뒤집어 쌓는 대신 공유 목록 하나를 왼쪽에서 오른쪽으로 훑습니다. 파이프를 지나는 호출을 포함해 인자 순서는 그대로입니다. |
| 5.19.248 | 내부 | 보통 호출과 메서드 호출, 옵셔널 호출이 각 인자를 공유 인자 목록에서 바로 가져오고 끝난 값을 복사하지 않고 스택으로 옮깁니다. 평가 순서와 인자 순서는 그대로입니다. |
| 5.19.247 | 내부 | 배열 원소와 스프레드, 집합 원소, Map 의 키와 값, 레코드 필드 값을 바깥 리터럴이 들고 있는 공유 목록에서 바로 평가하며 자식마다 복사하지 않습니다. 평가 순서와 결과는 그대로입니다. |
| 5.19.246 | 내부 | 검사기가 인자를 보기 전에 바깥 호출의 기대 결과 타입을 알게 되어 Result.flatMap 콜백 안의 Ok 가 구체 타입으로 풀립니다. Result<string, string> 을 기대한 자리에 Result<string, E> 라고 잘못 알리던 TPZ5001 이 사라졌습니다. |
| 5.19.245 | 내부 | if 와 concurrent 의 제한 시간 else, 블록 식에서 블록을 실행할 때 분석된 블록을 복사하지 않고 재사용합니다. 평가 동작은 달라지지 않았습니다. |
| 5.19.244 | 내부 | 문장 실행이 조건과 return·break 값, 식 문장, 바인딩 초기식까지 자식 식을 복사한 노드로 감싸지 않고 제자리에서 평가합니다. 평가 순서와 동작은 그대로입니다. |
| 5.19.243 | 내부 | 실행 중인 블록이 남은 문장을 복사하는 대신 블록과 도달한 위치를 참조로 들고 있으며, 최상위 문장과 식도 제자리에서 평가합니다. 동작은 그대로입니다. |
| 5.19.242 | 내부 | 어휘 스코프가 바인딩을 정렬된 트리 대신 이름으로 바로 찾는 표에 담습니다. 선언과 평가 순서는 프로그램 자체가 정하므로 안전하며, 자체 검사기가 자기 작업을 더 빨리 끝내고 동작은 그대로입니다. |
| 5.19.241 | 내부 | 검사기가 함수에 선언된 결과 타입을 실제 return 검사에만 쓰고, 중첩된 None 과 Ok·Err 생성자, 표준 감싸기 호출, 생성된 리스펙스 호출은 검사 대상 식에서 기대 타입을 가져옵니다. 중첩 값이 함수 결과와 다를 때 나오던 거짓 진단이 사라졌습니다. |
| 5.19.240 | 내부 | 기대 타입을 그것이 속한 식에 정확히 붙이고, 바깥 결과를 만드는 if 와 match 갈래, 블록 끝에만 전달합니다. 중첩된 제어 흐름과 중간 문장에서 나오던 거짓 타입 오류가 없어졌습니다. |
| 5.19.239 | 내부 | 컴파일러를 품은 명령이 Rust Stage 0 빌드를 기본으로 쓰므로 낡은 내장 검사기가 일상적인 실행에서 거짓 진단을 내지 않습니다. 자체 컴파일러의 제네릭 Option 모호성을 고쳤고, 여러 값을 가진 enum 패턴의 각 값이 자기 타입을 지킵니다. |
| 5.19.238 | 내부 | 리스펙스 동작이 인터프리터와 생성된 Rust, 생성된 Python 에서 일치합니다. 리더와 정규화기 진단, 묶이지 않은 이름의 조회 순서와 소스 범위, 단축 평가, 프로그램이 오류로 멈출 때 이미 쓴 출력이 모두 같아졌고 기능 매니페스트도 온전히 실었습니다. |
| 5.19.237 | 내부 | Python 백엔드가 sort 와 sortBy 를 지나도 배열의 알려진 길이와 모든 원소가 공유하는 정보를 유지하고, retain 은 결과가 짧아질 수 있으므로 길이 정보를 놓습니다. |
| 5.19.236 | 내부 | push 와 pop, reverse, insert, removeAt, clear 같은 정적 배열 연산이 Python 백엔드가 각 슬롯과 배열 길이에 대해 아는 정보를 모두 갱신하고, 같은 저장소를 가리키는 별칭들을 함께 맞춥니다. |
| 5.19.235 | 내부 | Python 백엔드가 네임스페이스 컬렉션과 지역 컬렉션을 구분하고 가변 바인딩마다 고유한 신원을 주어, 한 별칭으로 바꾼 내용이 그 컬렉션을 공유하는 바인딩에만 반영되고 재대입은 깨끗하게 시작합니다. |
| 5.19.234 | 내부 | Python 백엔드가 있다고 아는 키와 값까지 다 아는 키를 구분해, 정해진 키에 대한 Map.update 가 콜백이 돌려준 값과 처음 값을 합쳐 정확히 풀립니다. |
| 5.19.233 | 내부 | Python 백엔드가 컬렉션 변경을 갱신과 제거, 무효화로 나누어 다루므로 정해진 키에 대한 Map.remove 가 그 키만 지우고 나머지 Map 에 대해 아는 정보는 남깁니다. |
| 5.19.232 | 내부 | 정해진 키로 하는 Map.insert 가 무엇을 넣었는지 기록해, Python 백엔드가 값의 형태와 호출 형태, 감싸인 내용을 그 키의 이후 조회까지 가져갑니다. |
| 5.19.231 | 내부 | 배열과 Map 의 변경이 Python 백엔드에서 하나의 경로를 지나므로, 어떤 바인딩으로 바꾸든 같은 컬렉션을 공유하는 다른 바인딩이 똑같은 방식으로 무효화됩니다. |
| 5.19.230 | 내부 | Python 백엔드가 Map 이 가진 키를 모두 알고 그 값들이 같은 종류일 때, 실행 중에 정해지는 키로 하는 조회도 그 공통 정보를 씁니다. |
| 5.19.229 | 내부 | 실행 중에야 정해지는 키로 하는 Map.get 도 알려진 항목이 모두 같은 종류의 값을 가지면 Python 백엔드가 불변 Map 에 대해 알아낸 정보를 활용합니다. |
| 5.19.228 | 내부 | 정해진 키로 만든 Map 이 Python 백엔드에서 각 값의 형태와 호출 방법, 감싼 내용까지 온전히 지니므로 Map.get 결과를 패턴으로 다룰 때 실제 정보를 씁니다. |
| 5.19.227 | 내부 | Python 백엔드가 Option 과 Result 의 내용을 고정된 두 칸 대신 경로로 나타내어, 얼마나 깊이 중첩되든 같은 방식으로 따라갑니다. |
| 5.19.226 | 내부 | if 나 match 의 모든 갈래가 같은 형태를 낼 때 Python 백엔드가 값의 형태와 호출 형태, 중첩된 Option 내용, 레코드 필드까지 알아낸 정보를 유지하며 선언보다 실제로 관찰한 쪽을 앞세웁니다. |
| 5.19.225 | 내부 | Option 이나 Result 안에 호출 가능한 값을 돌려주는 함수가 Python 백엔드에서 그 호출 형태를 유지하며, 선언된 폴백보다 본문이 실제로 돌려주는 쪽을 앞세웁니다. |
| 5.19.224 | 내부 | 모듈 수준 값이 Python 백엔드 전체에서 자기 형태와 Option·Result 내용, 호출 형태를 지니므로 골라 쓰는 임포트나 네임스페이스 멤버 접근도 정의와 같은 정보를 봅니다. |
| 5.19.223 | 내부 | Some 이나 Ok 에서 값을 꺼내 묶을 때 그 값이 생성자에서 왔든 바인딩이나 반환, 패턴으로 다루는 배열에서 왔든 Python 백엔드가 같은 정보를 줍니다. |
| 5.19.222 | 내부 | Python 백엔드가 배열 슬롯마다 값의 형태와 Option 이 담은 내용을 기록하고, 모든 슬롯이 같으면 실행 중에 정해지는 인덱스나 패턴 조회에도 그 형태를 씁니다. |
| 5.19.221 | 내부 | Map 을 담은 배열이 Python 백엔드에서 리터럴과 스프레드, 별칭을 지나면서도 슬롯별 정보를 쌓으므로 정해진 인덱스를 읽을 때 Map 의 내용과 그 안의 레코드를 함께 봅니다. |
| 5.19.220 | 내부 | 배열에 담긴 레코드가 Python 백엔드에서 필드 트리 전체를 지니므로, 레코드가 바로 놓였든 Option 이나 Result, Map 값 안에 있든 정해진 인덱스를 읽으면 중첩 필드까지 닿습니다. |
| 5.19.219 | 내부 | 레코드 필드를 바꿀 때 Python 백엔드가 그 필드 아래에 대해 아는 내용을 한 번의 작업으로 지우고 다시 세우며, 레코드 갱신과 경로 대입이 같은 작업을 씁니다. |
| 5.19.218 | 내부 | 배열 슬롯의 선언된 레코드 내용과 관찰된 내용이 Python 백엔드에서 한곳에 모여, 배열 원소의 필드를 읽을 때 한 번의 조회로 끝납니다. |
| 5.19.217 | 내부 | 중첩 레코드 경로로 대입할 때 Python 백엔드가 쓰이는 필드 아래만 바꾸고 형제 필드와 다른 뿌리에 대해 아는 정보는 그대로 둡니다. |
| 5.19.216 | 내부 | 레코드 전체를 필드에 대입하면 Python 백엔드가 값의 형태와 호출 형태, 콜백 대상까지 중첩된 내용을 통째로 함께 옮깁니다. |
| 5.19.215 | 내부 | 레코드 생성과 갱신, 필드 대입이 Python 백엔드에서 필드 값이 무엇인지 하나의 공통 경로로 기록하므로 셋의 판단이 어긋나지 않습니다. |
| 5.19.214 | 내부 | 레코드 리터럴과 레코드 갱신이 Python 백엔드에서 하나의 공통 단계로 필드 정보를 모으고 같은 경로 아래에 넣습니다. |
| 5.19.213 | 내부 | 호출 가능한 값을 담은 이름 기반 레코드의 기본값을 Python 백엔드가 한곳에서 정리하므로 모듈 전체 분석과 레코드 갱신이 같은 기본값을 읽습니다. |
| 5.19.212 | 내부 | 이름 기반 레코드를 갱신할 때 호출 가능한 기본값을 한 번만 확인하고 값을 두 번이 아니라 한 번만 훑으며, Python 백엔드가 기본값 표 전체를 복사하지 않습니다. |
| 5.19.211 | 내부 | Python 백엔드에서 레코드 필드를 읽을 때 값의 형태와 호출 형태, 콜백 대상을 세 갈래로 나누지 않고 하나의 공통 규칙으로 정합니다. |
| 5.19.210 | 내부 | Option 안에 든 레코드 필드도 Python 백엔드에서 같은 규칙을 따르며, 중첩 접근은 필드까지 이어지는 정본 경로 하나를 쌓습니다. |
| 5.19.209 | 내부 | Map 값이나 Option, Ok 를 거쳐 닿는 레코드를 그 값이 나온 바인딩과 네임스페이스, 반환, 생성자에서 바로 뽑으며 Python 백엔드가 표 전체를 복사하지 않습니다. |
| 5.19.208 | 내부 | Map.get 결과를 패턴으로 다룰 때 Map 과 키, 값의 형태, 호출 형태, 중첩 레코드를 Python 백엔드가 한곳에서 정합니다. |
| 5.19.207 | 내부 | Python 백엔드의 배열 인덱싱이 바인딩을 찾고 인덱스가 미리 정해진 값인지 판단하는 일을 하나의 공통 단계로 처리해 모든 슬롯 조회가 같은 길을 따릅니다. |
| 5.19.206 | 내부 | Python 백엔드가 배열 리터럴과 스프레드 값을 한 번만 훑어 콜백 대상과 알려진 길이, 호출 형태를 모으고 갈래 합치기도 같은 방식으로 처리합니다. |
| 5.19.205 | 내부 | Python 백엔드가 배열 원소에 대해 아는 것을 슬롯 형태와 Option 내용부터 콜백 대상, 호출 형태, 길이까지 하나의 구조에 모았습니다. |
| 5.19.204 | 내부 | Map 값이 Python 백엔드에서 지역 바인딩과 모듈 수준 값 모두 형태와 Option 내용, 호출 형태를 하나의 구조에 담으며 한 번의 해석으로 만들어집니다. |
| 5.19.203 | 내부 | 협조적 콜백을 담은 중첩 레코드 필드가 필드 갱신과 분기 병합, 패턴 분해를 거쳐도 스케줄링 대상을 유지합니다. 세 경로가 모두 같은 조회를 씁니다. |
| 5.19.202 | 내부 | 레코드 멤버의 수신자 모양과 호출 정보를 파서 쪽 트리와 검사기 쪽 트리에서 한 번에 모읍니다. 중복되던 걸러내기 단계를 없앴습니다. |
| 5.19.201 | 내부 | 직접 필드 접근과 래퍼 경로가 중첩 레코드의 수신자 모양과 호출 서명을 같은 출처에서 읽습니다. 두 경로가 어떤 멤버 호출이 유효한지 같은 답을 냅니다. |
| 5.19.200 | 내부 | Result 로 감싼 레코드를 돌려주는 함수가 Python 백엔드에서 반환값의 중첩 멤버 정보를 유지합니다. unwrap() 뒤에 이어지는 호출이 올바른 메서드로 연결됩니다. |
| 5.19.199 | 내부 | Result 안에 레코드를 담은 Map 값이 중첩 멤버 정보를 함께 지닙니다. Map.get 뒤의 unwrap() 연쇄가 Python 백엔드에서 레코드 메서드에 닿습니다. |
| 5.19.198 | 내부 | Map 에서 꺼낸 값이 Option 안에 레코드를 담고 있어도 중첩 멤버 정보를 잃지 않습니다. Map.get 뒤의 옵셔널 체이닝이 Python 백엔드에서 레코드 메서드를 정확히 찾습니다. |
| 5.19.197 | 내부 | Map.get 에서 나온 패턴 바인딩이 담고 있는 레코드의 수신자 모양과 호출 서명을 알게 됩니다. 그 바인딩에 이어지는 중첩 멤버 호출이 Python 으로 올바르게 컴파일됩니다. |
| 5.19.196 | 내부 | 지역 별칭을 거쳐 고정 키로 Map 을 조회할 때 올바른 수신자 모양을 돌려줍니다. Option 과 Result 안쪽 모양까지 Python 생성에 반영됩니다. |
| 5.19.195 | 내부 | Map 에 담긴 호출 가능 값의 선언된 호출 서명이 지역 별칭을 거쳐 Python 백엔드까지 이어집니다. Map.get 패턴으로 묶은 값을 호출할 때 선언대로 인자를 넘깁니다. |
| 5.19.194 | 내부 | 배열에 담긴 호출 가능 값이 배열을 변경 가능으로 등록한 뒤에도, 이후 갱신을 거친 뒤에도 선언된 서명을 지킵니다. 동적 호출과 파이프 호출이 계속 올바르게 연결됩니다. |
| 5.19.193 | 내부 | Option 별칭을 거쳐 닿는 레코드가 호출 가능 필드의 서명과 기본값을 드러냅니다. 옵셔널 접근으로 그 필드를 호출할 때 선언된 기본값을 씁니다. |
| 5.19.192 | 내부 | Option 안 레코드로 선언한 바인딩이 변수를 다시 대입해도 선언된 수신자 모양을 지킵니다. 선언 정보가 추적 중인 값과 수명을 함께하지 않도록 분리했습니다. |
| 5.19.191 | 내부 | Option 으로 감싼 레코드를 담은 바인딩과 내보낸 모듈 값이 중첩 필드의 수신자 모양과 호출 서명을 함께 지닙니다. 옵셔널 체이닝이 그 정보를 따라 해석합니다. |
| 5.19.190 | 내부 | Option 으로 감싼 레코드를 돌려주는 함수가 반환값의 중첩 멤버 정보를 유지합니다. 호출 결과에 이어지는 옵셔널 체이닝이 Python 백엔드에서 해석됩니다. |
| 5.19.189 | 내부 | Python 생성에서 레코드 반환 정보와 레코드 필드 기본값을 계산하기 전에 가져온 모듈을 먼저 정돈합니다. 두 정보 모두 가져오기와 변경 사실이 등록된 뒤에 계산됩니다. |
| 5.19.188 | 내부 | 레코드 필드 기본값을 레코드를 선언한 모듈에서 그대로 담아 둡니다. 비어 있는 기본값도 비어 있는 채로 남아, 레코드를 가져다 쓰는 모듈이 자기 네임스페이스에서 다시 해석하지 않습니다. |
| 5.19.187 | 내부 | 이름 있는 레코드를 만들 때 호출 가능 필드의 서명을 선언된 필드 타입에서 먼저 채웁니다. 기본값 식이 있으면 매개변수 이름과 기본값, 협조적 대상을 그 위에 덮어씁니다. |
| 5.19.186 | 내부 | 수신자 모양과 호출 서명이 중첩 레코드의 모든 단계까지 내려갑니다. 타입을 그 자리에 적었든 검사기가 풀어낸 타입 별칭에서 왔든 결과가 같습니다. |
| 5.19.185 | 내부 | 구조적 레코드 반환 타입을 선언한 함수가 그 레코드 직속 필드의 수신자 모양과 호출 서명을 제공합니다. 값이 본문 마지막 식에서 나온 경우에도 같습니다. |
| 5.19.184 | 내부 | 네임스페이스 가져오기를 거친 호출이 하나의 규칙으로 해석됩니다. 가져오기와 이를 가리는 지역 이름을 함께 따지므로, 서로 다른 답을 내던 여러 조회가 사라졌습니다. |
| 5.19.183 | 내부 | 모듈의 모든 함수를 먼저 등록한 뒤 레코드 반환 정보를 계산합니다. 파일 아래쪽에 선언된 함수를 부르는 래퍼도 위쪽을 부르는 래퍼와 같은 정보를 받습니다. |
| 5.19.182 | 내부 | 다른 함수의 결과를 그대로 넘기는 래퍼가 그 함수의 협조적 콜백 대상을 물려받습니다. 몇 겹을 거쳐 넘기더라도 대상이 남습니다. |
| 5.19.181 | 내부 | 함수 반환 정보가 레코드 필드의 협조적 콜백 대상을 수신자 모양, 호출 서명과 나란히 기록합니다. 반환된 레코드에 이어지는 멤버 호출이 그 대상을 찾습니다. |
| 5.19.180 | 내부 | 레코드를 갱신할 때 원본의 선언된 정보에서 출발합니다. 갱신에 적은 필드에 대해서만 서명과 협조적 대상, 중첩 정보를 바꿉니다. |
| 5.19.179 | 내부 | 구조적 레코드 갱신이 원본의 수신자 모양을 복사한 뒤, 갱신이 지목한 필드와 그 하위 필드만 새 모양으로 바꿉니다. |
| 5.19.178 | 내부 | 코드 생성과 동적 기본값 조회, 바인딩 정보가 이름 있는 레코드 생성의 기준을 같은 방식으로 풉니다. 선언에서 읽든 필드 값에서 읽든 수신자 모양이 일관됩니다. |
| 5.19.177 | 내부 | 배열 원소의 선언된 모양과 중첩 Option 안쪽 모양을 흐름에서 모은 콜백 정보와 분리했습니다. 배열을 다시 대입해도 선언된 모양이 사라지지 않습니다. |
| 5.19.176 | 내부 | 배열을 인덱싱해도 검사기가 확정한 원소 모양이 남습니다. 이름과 괄호 식, 인덱스 접근, 멤버 접근이 지역 별칭과 변경 호출, 즉시 호출 람다를 거쳐도 같은 뿌리로 풀립니다. |
| 5.19.175 | 내부 | defer 본문을 해당 블록이 끝난 뒤 등록의 역순으로 분석합니다. Python 백엔드가 미뤄진 변경과 재바인딩을 실제 실행 순서대로 봅니다. |
| 5.19.174 | 내부 | 변경 추적이 && 와 || 와 ?? 같은 단축 평가 연산자, 그리고 옵셔널 수신자 호출에서 실행되는 쪽과 건너뛰는 쪽을 따로 분석합니다. 한쪽에서만 건드린 바깥 별칭도 빠짐없이 반영됩니다. |
| 5.19.173 | 내부 | for 와 while 과 loop 의 본문, 컴프리헨션, 타임아웃 else 를 포함한 concurrent 갈래가 변경된 뿌리 집합을 같은 규칙으로 넓혀 갑니다. |
| 5.19.172 | 내부 | 지역 별칭이 닿을 수 있는 매개변수 뿌리 집합을 함께 지닙니다. if 와 match 의 갈래는 끝에서 집합을 합치고, 케이스 안에서 선언한 별칭은 바깥 별칭을 가립니다. |
| 5.19.171 | 내부 | 변경 가능한 지역 배열을 선언 시점부터 재대입까지 뿌리로 추적합니다. 배열에 붙은 정보를 알맞은 시점에 버리고 다시 세웁니다. |
| 5.19.170 | 내부 | 변경 가능한 지역 별칭을 쓰는 프로그램을 컴파일러가 실제로 도는 방식 그대로 Python 백엔드에 태웁니다. 진입 모듈과 그것이 가져오는 모듈을 함께 풀고 함께 검사합니다. |
| 5.19.169 | 내부 | 검사기가 변경 가능한 지역 별칭을 그것이 유래한 불변 배열 매개변수까지 되짚고, 그 매개변수를 효과의 뿌리로 다룹니다. 소스에 적힌 타입을 함께 씁니다. |
| 5.19.168 | 내부 | 변수에 담은 타입 있는 람다의 배열 매개변수를 람다 안에서 추적합니다. 직접 일으킨 변경도 래퍼를 거친 변경도 그 값을 호출할 때의 효과로 드러납니다. |
| 5.19.167 | 내부 | if 나 남김없는 match 가 서명이 맞는 호출 가능 값을 내놓을 때, 닿을 수 있는 어느 갈래에서든 변경하는 배열 매개변수를 모두 남깁니다. 모든 갈래에 공통된 것만 남기지 않습니다. |
| 5.19.166 | 내부 | 내보낸 호출 가능 값이 어떤 배열 매개변수를 변경하는지 기록을 지킵니다. 선택 가져오기나 네임스페이스 호출로 그 값에 닿을 때 기록이 그대로 살아납니다. |
| 5.19.165 | 내부 | 호출 가능 값을 담은 바인딩이 어떤 배열 매개변수를 변경하는지 함께 지닙니다. 불변 별칭을 등록하거나 갱신하거나 지울 때도 그 집합이 어긋나지 않습니다. |
| 5.19.164 | 내부 | 지역 호출과 선택 가져오기, 네임스페이스 호출의 매개변수 변경 효과를 직접 요약에서 시작해 더 늘지 않을 때까지 넓혀 계산합니다. 래퍼가 몇 겹이든 같은 답에 이릅니다. |
| 5.19.163 | 내부 | 함수마다 어떤 배열 매개변수를 변경하는지 직접 기록합니다. 변경하는 함수를 호출하면 넘긴 배열에 대한 낡은 정보를 호출 자리에서 바로 버립니다. |
| 5.19.162 | 내부 | 타입 있는 람다의 매개변수를 바인딩으로 등록합니다. 별칭 사슬을 거쳐 즉시 호출 람다로 넘어간 변경 가능 배열은 호출이 끝나는 즉시 바깥 정보를 버립니다. |
| 5.19.161 | 내부 | 즉시 호출 람다 안의 변경은 매개변수를 거친 것까지 둘러싼 식의 효과로 셉니다. 붙잡아 둔 바깥 값의 정보를 람다가 실행되는 즉시 버립니다. |
| 5.19.160 | 내부 | 식 중간에서 일어나는 변경을 식을 문장으로 낮추는 단계에서 함께 셉니다. 같은 식의 뒷부분이 호출 뒤의 배열 상태를 그대로 읽습니다. |
| 5.19.159 | 내부 | concurrent 갈래와 타임아웃 else 가 바꾸는 바깥 값을 본문을 만들기 전에 모아 둡니다. 어느 갈래도 낡은 정보를 읽지 않고, 모두 같은 경계에서 함께 버립니다. |
| 5.19.158 | 내부 | 값을 모으는 for 반복문과 컴프리헨션의 패턴과 절, 필터, 본문을 각자의 범위 안에서 만듭니다. 한 번도 돌지 않은 반복문이나 통과하지 못한 필터가 콜백 정보를 흘리지 않습니다. |
| 5.19.157 | 내부 | 옵셔널 수신자에 대한 호출을 각자의 범위 안에서 만듭니다. 수신자가 비어 있으면 인자를 평가하지 않고 콜백 정보도 밖으로 새지 않습니다. |
| 5.19.156 | 내부 | if 와 단축 평가 연산자, 그리고 ?? 와 직접 매치의 갈래를 각자의 범위 안에서 만듭니다. 실행되지 않은 갈래가 콜백 대입을 남겨 뒤따르는 코드의 특수화를 흐리는 일이 없습니다. |
| 5.19.155 | 내부 | 직접 매치의 빠른 가드가 패턴 바인딩과 Map.get 에서 가져온 값의 호출 정보를 해당 갈래의 범위에 등록합니다. 주변 문맥을 복사하지 않고 가볍게 들고 납니다. |
| 5.19.154 | 내부 | 케이스 가드를 낮춰야 하는지를 주변 문맥까지 보고 판단합니다. 협조적 컴프리헨션이나 고차 함수가 든 가드가 문장 매치와 값 매치 모두에서 가드 경로를 타게 됩니다. |
| 5.19.153 | 내부 | 협조적 반복문의 매 회차가 패턴 가드와 바인딩 직후, 본문 실행 전에 스케줄러 검사점에 닿습니다. 동시 작업 사이의 끼어들기 순서가 결정론적으로 유지됩니다. |
| 5.19.152 | 내부 | 문장 for 반복문과 값을 모으는 for 반복문, 컴프리헨션이 항목 패턴을 하나의 공통 처리로 다룹니다. 같은 패턴 논리와 정보 갱신이 세 벌로 나뉘어 있지 않게 됐습니다. |
| 5.19.151 | 내부 | 문장 for 반복문이 값을 모으는 반복문과 같은 순서를 따릅니다. 항목을 받고 패턴 가드를 거쳐 범위에 바인딩하므로, 두 형태의 구조 분해와 오류 처리가 같아집니다. |
| 5.19.150 | 내부 | 문장 자리의 if 가 조건을 공통 식 경계를 거쳐 낮춥니다. 반복문이나 고차 함수가 든 조건도 Stage 0 과 똑같은 순서로 평가되고 같은 갈래로 갈립니다. |
| 5.19.149 | 내부 | 배열 변경 분석이 변경을 품을 수 있는 문장 종류를 빠짐없이 열거합니다. 대입과 while 반복문, using 블록, 그리고 break 와 return 을 포함하며, 빠진 경우는 조용히 넘어가지 않고 빌드에서 걸립니다. |
| 5.19.148 | 내부 | 문자열 보간과 파이프 왼쪽 식, 컴프리헨션의 절과 본문 안에서 일어나는 배열 변경까지 추적합니다. 그 뒤로 지역 바인딩과 모듈 수준 바인딩을 모두 정확하게 읽습니다. |
| 5.19.147 | 내부 | 호출이 배열을 변경하는지 판정할 때 수신자를 감싼 괄호를 그대로 통과해 봅니다. 식을 다시 만들어 내지 않으므로 컴파일 작업이 줄어듭니다. |
| 5.19.146 | 내부 | 이름 대입과 인덱스 대입, 레코드 필드 대입을 각각의 경로로 생성합니다. 경로마다 변경 가능 여부 검사와 피연산자 평가, 쓰기, 정보 갱신을 따로 다룹니다. |
| 5.19.145 | 내부 | 모든 대입이 대상에 붙은 정보를 새로 고치는 하나의 마무리 단계를 거칩니다. 변경 가능한 배열과 레코드에 낡은 정보가 남지 않습니다. |
| 5.19.144 | 내부 | 대입의 오른쪽 식을 쓰기 직전에, 그리고 대상을 다시 읽기 전에 끝까지 평가합니다. 자기 대상을 참조하는 대입도 올바른 값을 냅니다. |
| 5.19.143 | 내부 | 단순 이름과 직접 인덱스, 레코드 경로에 대한 대입이 구성 요소를 같은 순서로 평가합니다. 대입 안에서 일어나는 효과의 순서를 예측할 수 있습니다. |
| 5.19.142 | 내부 | 대입 왼쪽의 멤버 연쇄를 한 번만 훑어 뿌리 바인딩과 필드 경로를 함께 뽑아냅니다. 같은 곳을 여러 번 훑던 처리를 대신합니다. |
| 5.19.141 | 내부 | 구조 분해 바인딩이 패턴 가드의 모든 결과를 하나의 마무리 단계로 모읍니다. 가드를 통과한 뒤 이름이 범위에 들어가는 방식이 한 가지로 통일됩니다. |
| 5.19.140 | 내부 | 지역과 진입 모듈, 가져온 모듈의 최상위 바인딩을 하나의 공통 경로로 생성합니다. 세 갈래가 서로 다르게 만들어지며 어긋날 일이 없어집니다. |
| 5.19.139 | 내부 | 복합 대입이 쓰기 전에, 그리고 대상을 다시 읽기 전에 오른쪽 식의 낮추기를 끝냅니다. 복합 갱신의 단계가 의도한 순서대로 적용됩니다. |
| 5.19.138 | 내부 | ??= 는 대상에 이미 값이 있으면 오른쪽 식을 평가하지 않습니다. 대입이 일어나지 않을 때 그쪽의 어떤 동작도 실행되지 않습니다. |
| 5.19.137 | 내부 | 레코드 필드에 대입할 때 기준 값과 필드 경로를 정해진 순서로 평가합니다. 깊이 중첩된 레코드를 고칠 때 동작이 일관됩니다. |
| 5.19.136 | 내부 | 배열 인덱스 대입이 피연산자를 정해진 순서로 평가합니다. 인덱스나 값이 부수 효과를 지녀도 Stage 0 과 똑같이 동작합니다. |
| 5.19.135 | 내부 | Python 백엔드가 이름과 인덱스 위치, 레코드 필드 경로를 각각의 경로로 나누어 대입 대상을 분류합니다. 피연산자 계산과 대입 실행을 서로 떼어 놓았습니다. |
| 5.19.134 | 내부 | Python 백엔드의 구조 분해 바인딩이 이름이 유효해지는 시점과 패턴 조건 검사, 중복 선언 거부를 한 경로에서 처리합니다. |
| 5.19.133 | 내부 | 단순 let 과 구조 분해 let 이 Python 백엔드에서 같은 보조 경로를 씁니다. 지역 스코프 등록과 전역 스코프 등록이 서로 어긋나지 않습니다. |
| 5.19.132 | 내부 | += 같은 복합 산술 대입이 Python 백엔드에서 일반 연산자와 같은 산술 경로로 내려갑니다. 정수와 부동소수점, 문자열 피연산자의 정밀도와 평가 순서가 올바르게 유지됩니다. |
| 5.19.131 | 내부 | 인덱스에서 시작해 필드나 인덱스로 이어지는 대입을 Python 백엔드가 가장 안쪽 단계부터 바깥으로 다시 구성합니다. 일반 대입과 복합 대입, 병합 대입이 Stage 0 의 평가 순서와 단축 평가를 그대로 따릅니다. |
| 5.19.130 | 내부 | 중첩된 레코드 필드 대입을 Python 백엔드가 일반 필드 읽기와 레코드 갱신 단계를 써서 안쪽부터 바깥으로 다시 구성합니다. 일반 대입과 복합 대입, 병합 대입이 Stage 0 의 평가 순서를 따릅니다. |
| 5.19.129 | 내부 | 인덱스에 대한 복합 대입이 Python 백엔드에서 변수나 레코드 필드와 똑같은 산술 단계를 씁니다. 정수와 부동소수점, 문자열 덧셈이 Stage 0 과 같게 동작합니다. |
| 5.19.128 | 내부 | 인덱스에 대한 복합 대입이 Python 백엔드에서 오른쪽 식을 계산하기 전에 그 자리의 현재 값을 먼저 읽습니다. 오른쪽 식이 같은 자리를 바꾸는 프로그램도 Stage 0 과 같은 결과를 냅니다. |
| 5.19.127 | 내부 | 구조 분해 let 이 지역 스코프와 진입 모듈, 가져온 모듈에서 하나의 규칙을 따릅니다. 값 계산과 패턴 조건, TPZ5001 타입 검사, 중복 바인딩 거부가 모두 같아졌습니다. |
| 5.19.126 | 내부 | 중첩된 지역 불변 타입 let 이 값을 먼저 계산하고 이름을 묶기 전에 타입을 검사합니다. 타입이 맞지 않으면 Stage 0 과 같은 TPZ5001 오류가 납니다. |
| 5.19.125 | 내부 | 진입 모듈과 가져온 모듈에서 최상위 const 와 단순 let 이 같은 방식으로 생성됩니다. 불변 타입 바인딩은 실행 중에 타입을 검사하고 Stage 0 과 똑같이 TPZ5001 오류를 냅니다. |
| 5.19.124 | 내부 | 외부 모듈과 일반 가져오기 모듈이 Python 백엔드에서 내보내기와 초기화 함수 이름을 같은 형태로 돌려줍니다. 두 종류를 한 경로에서 모읍니다. |
| 5.19.123 | 내부 | 일반 가져오기 모듈의 코드 생성을 한 곳에서 이끕니다. 입력 준비와 본문 생성, 네임스페이스 구성, 초기화 함수 작성이 같은 자리에서 이어집니다. |
| 5.19.122 | 내부 | 일반 가져오기 모듈의 본문을 전담 단계 하나가 소스 순서대로 생성합니다. 내보내기와 진단, 기본값 보조 코드도 같은 단계에서 배치합니다. |
| 5.19.121 | 내부 | 일반 가져오기 모듈의 준비 과정을 명시적인 단계로 분리했습니다. 컨텍스트와 기본값, 프로토콜과 수신자와 함수 등록, 초기화 시작 항목, 가져오기 바인딩을 코드 생성 전에 확정합니다. |
| 5.19.120 | 내부 | 외부 가져오기 모듈의 코드 생성을 경계 하나가 전담합니다. 함수 자리와 네임스페이스, 초기화 함수, 내보낸 결과를 한곳에서 관리합니다. |
| 5.19.119 | 내부 | 모듈을 분석하는 동안 내보낸 문장을 소스 순서대로 보관합니다. 외부 모듈의 내보내기를 준비할 때 비공개 문장을 훑지 않습니다. |
| 5.19.118 | 내부 | 분석 과정이 최상위 가져오기 선언을 소스 순서대로 보관합니다. 가져온 모듈의 바인딩 준비가 소스를 다시 뒤지지 않고 그 목록을 바로 읽습니다. |
| 5.19.117 | 내부 | 최상위 함수 선언을 모듈 분석 중에 소스 순서대로 보관합니다. 함수 등록과 반환 타입 정보가 그 공유 기록만 읽습니다. |
| 5.19.116 | 내부 | 프로토콜 이름과 수신자 구현을 모듈 분석 중에 소스 순서대로 보관합니다. 등록과 준비 과정에서 소스를 세 번 다시 훑던 작업이 사라졌습니다. |
| 5.19.115 | 내부 | 최상위 const 와 let 이름을 한 번에 순서대로 모읍니다. 수신자 메서드 표를 소스를 다시 훑지 않고 그 목록에서 만듭니다. |
| 5.19.114 | 내부 | 모듈 수준 이름 개수와 문장별 바인딩을 레코드 기본값 스코프용으로 한 번에 모읍니다. 같은 패턴을 두 번 분해하지 않습니다. |
| 5.19.113 | 내부 | 가져온 모듈에서 내보낸 불변 let 의 기본값을 이미 모아 둔 사실에서 바로 구합니다. 구문 트리를 다시 훑거나 항목을 하나씩 찾지 않습니다. |
| 5.19.112 | 내부 | 문장별 런타임 이름과 가변 let 이름을 소스 순서대로 저장합니다. 스코프를 오갈 때 구문 트리의 패턴을 다시 살피지 않습니다. |
| 5.19.111 | 내부 | 모듈을 이미 읽는 과정에서 최상위 함수와 const, let 의 개수를 함께 셉니다. 보조 스코프를 위해 따로 돌던 예비 과정이 사라졌습니다. |
| 5.19.110 | 내부 | 문장에 들어가고 나올 때 어떤 이름이 살아 있는지를 레코드 기본값 스코프가 직접 판단합니다. 레코드와 뉴타입, 열거형, 별칭 구성은 각각 독립된 단계로 나눴습니다. |
| 5.19.109 | 내부 | 레코드와 뉴타입, 열거형, JSON 스키마 별칭, 가져오기 스코프, 수신자 구현을 모듈을 한 번 훑는 동안 소스 순서대로 모읍니다. |
| 5.19.108 | 내부 | 레코드 기본값 보조 스코프가 런타임 바인딩 개수를 한 번만 세고 앞서 나온 가변 이름을 진행하면서 모읍니다. 전체가 두 번의 선형 과정으로 정리됐습니다. |
| 5.19.107 | 내부 | JSON 스키마 타입 별칭과 가져오기 스코프를 이름 있는 타입 정의와 함께 한 번에 모읍니다. 목록이 완성된 뒤 구문 트리를 다시 읽지 않습니다. |
| 5.19.106 | 내부 | 목록에 담긴 레코드와 뉴타입, 열거형을 복사 없이 공유하고 가져온 기본값을 넣을 때만 사본을 만듭니다. |
| 5.19.105 | 내부 | 선언과 수신자 메서드 정보를 목록을 만들 때 레코드와 뉴타입, 열거형에 한 번 붙입니다. 목록을 쓰는 쪽마다 같은 작업을 되풀이하지 않습니다. |
| 5.19.104 | 내부 | 모듈마다 레코드와 뉴타입, 열거형의 기본 표를 한 번만 만듭니다. 진입 모듈과 스키마 생성이 같은 표에서 갈라져 나옵니다. |
| 5.19.103 | 내부 | 필요한 곳이 모두 함께 쓰도록 레코드 필드와 기본값, 보조 항목을 모듈마다 한 번만 구성합니다. |
| 5.19.102 | 내부 | 레코드 기본값이 쓸 네임스페이스 구성원 후보를 레코드별로 한 번에 모으고 목록이 완성된 뒤에 대조합니다. 구문 트리를 다시 읽지 않습니다. |
| 5.19.101 | 내부 | 앞서 나온 불변 let 바인딩과 레코드별 런타임 기본값 참조를 한 번의 입력 과정에서 계산합니다. 진입 모듈과 스키마, 클래스 생성이 이 결과를 함께 씁니다. |
| 5.19.100 | 내부 | 자체 const 와 내보낸 const 값을 한 번의 과정에서 소스 순서대로 계산합니다. 다른 모듈을 조회할 때는 그 모듈의 공유 목록을 바로 읽습니다. |
| 5.19.99 | 내부 | 기본 가져오기 바인딩과 런타임 기본값 이름을 모듈을 한 번 훑는 동안 함께 모읍니다. 목록을 따로 두 번 만들고 소스를 다시 읽던 과정이 없어졌습니다. |
| 5.19.98 | 내부 | 최상위 불변 let 이름과 내보낸 const 및 let 이름을 한 번의 순회로 계산합니다. 런타임 기본값 분석과 숨은 참조 분석이 같은 결과를 읽습니다. |
| 5.19.97 | 내부 | 가져오기 항목과 지역 이름, 조회 색인을 컴파일 단위마다 한 번 구합니다. 소스 순서를 유지한 이 목록을 여러 분석이 함께 씁니다. |
| 5.19.96 | 내부 | 선택해 가져온 const 의 기본값을 모을 때 공유된 유일 바인딩 검사를 씁니다. 최상위 이름이 몇 번 묶일 수 있는지를 하나의 규칙이 정합니다. |
| 5.19.95 | 내부 | 최상위 이름이 몇 번 묶이는지를 모듈마다 한 번 셉니다. 가져오기 처리와 숨은 참조 분석이 같은 집계를 읽습니다. |
| 5.19.94 | 내부 | 내보낸 const 이름과 단일 바인딩 let 이름의 집합을 모듈마다 한 번 계산합니다. 이 때문에 소스를 다시 훑는 일이 없어졌습니다. |
| 5.19.93 | 내부 | 런타임까지 남는 최상위 불변 let 이름을 모듈마다 한 번 계산합니다. 숨은 참조 분석과 런타임 기본값 분석이 이 공유 집합 하나를 조회합니다. |
| 5.19.92 | 내부 | 가져온 모듈의 숨은 런타임 참조를 기존 이름 표 위에 겹친 뷰로 따라갑니다. 표를 임시로 복사하지 않습니다. |
| 5.19.91 | 내부 | 레코드마다 기본값이 참조하는 런타임 항목을 모듈당 한 번 계산하고 정의와 스키마, 클래스 생성이 그 결과를 함께 씁니다. |
| 5.19.90 | 내부 | 레코드 기본값에 필요한 최상위 const 와 내보낸 const 값을 모듈마다 한 번 계산하고 이후의 모든 단계가 복사 없이 함께 씁니다. |
| 5.19.89 | 내부 | 가져온 const 와 자체 const 를 레코드 기본값용 단일 순서 목록으로 합칩니다. 지역 정의와 내보내기 생성이 이 목록을 바로 읽습니다. |
| 5.19.88 | 내부 | concurrent 블록 안의 차단 이름 집합과 파이프 자리표시자를 복사하지 않고 공유합니다. 분기에 들어갈 때 그 모음을 통째로 베끼지 않습니다. |
| 5.19.87 | 내부 | Python 백엔드가 어휘 스코프마다 표를 하나씩 두고 그 스코프가 실제로 바뀔 때만 사본을 만듭니다. 미리 전체를 통째로 복사하지 않습니다. |
| 5.19.86 | 내부 | 해석된 모듈 이름을 Python 백엔드가 소스와 스키마 식별에 그대로 씁니다. 컨텍스트를 복사할 때마다 이름을 다시 만들지 않습니다. |
| 5.19.85 | 내부 | 함수와 메서드, 프로토콜, 네임스페이스 디스패치 표를 Python 백엔드가 공유하고 바뀔 때만 사본을 만듭니다. 분기에 들어가는 비용이 줄었습니다. |
| 5.19.84 | 내부 | Python 백엔드의 수신자와 프로토콜 임시 컨텍스트가 호출한 쪽의 모듈 식별과 공유 타입 표를 그대로 씁니다. 분기 복사가 가벼운 참조 복사로 끝납니다. |
| 5.19.83 | 내부 | 가져온 모듈의 수신자 메서드 값 이름 표를 복사하지 않고 공유합니다. 모듈을 준비하고 메서드를 생성하는 동안 표 전체를 베끼지 않습니다. |
| 5.19.82 | 내부 | Python 백엔드의 진입 모듈과 외부 모듈, 가져오기 모듈 컨텍스트가 검사기가 가진 모듈 별칭 표를 바로 읽습니다. 컨텍스트를 만들 때 표를 통째로 복사하지 않습니다. |
| 5.19.81 | 내부 | 레코드 정의 표를 Python 코드 생성 컨텍스트로 한 번만 옮깁니다. 기본값 보조 작업 목록은 기존 이름과 소스 식을 그대로 참조해 트리 전체를 복사하지 않습니다. |
| 5.19.80 | 내부 | 제네릭 특수화 조회를 네이티브 경로에서 색인 하나로 통일했습니다. 특수화마다 만들어지는 Rust 이름을 기억해 두고 다시 만들지 않습니다. |
| 5.19.79 | 내부 | 제네릭 특수화의 Rust 이름을 만들 때 타입 인자를 복사하거나 이어 붙이기용 임시 목록을 만들지 않습니다. |
| 5.19.78 | 내부 | 네이티브 함수의 매개변수 이름을 소스에서 바로 가져와 공유합니다. 제네릭 특수화마다 이름 목록을 복사하지 않습니다. |
| 5.19.77 | 내부 | 제네릭 타입 매개변수와 이름 붙인 호출 인자를 소스와 선언에서 바로 해석합니다. 임시 이름 목록을 다시 만들지 않습니다. |
| 5.19.76 | 내부 | 제네릭 특수화 조회가 중첩 색인을 통해 이름과 타입 인자를 있는 자리에서 읽습니다. 조회마다 키 문자열이나 목록을 만들지 않습니다. |
| 5.19.75 | 내부 | 일반 함수와 제네릭 함수의 시그니처를 한 번만 보관하고 공유합니다. 함수 본문이나 호출 지점을 생성할 때 시그니처 전체를 복사하지 않습니다. |
| 5.19.74 | 내부 | 완전 네이티브 빌드는 활성 함수 표를 직접 갖고 하이브리드 빌드는 하나를 공유합니다. 함수마다 표를 복사하던 과정이 사라졌습니다. |
| 5.19.73 | 내부 | 하이브리드 함수가 모듈별로 미리 계산해 둔 정보를 그대로 읽습니다. 함수마다 모듈 기록을 다시 걸러내고 복사하지 않습니다. |
| 5.19.72 | 내부 | 타입이 붙은 지역 변수 색인 하나를 모든 컨텍스트가 공유합니다. 하이브리드 함수마다 색인 전체를 복사하지 않습니다. |
| 5.19.71 | 내부 | 네이티브 경로에서 타입이 붙은 지역 변수를 조회할 때 소스를 가리키는 색인 하나에서 이름을 있는 자리에서 읽습니다. 조회마다 문자열을 만들지 않습니다. |
| 5.19.70 | 내부 | 하이브리드 컴파일 대상이 확정되는 마지막 과정의 결과가 빌드 계획으로 바로 넘어갑니다. 살아남은 후보를 두 번 생성하지 않습니다. |
| 5.19.69 | 내부 | 하이브리드 후보를 한 번의 과정에서 소스 위치 순으로 모듈별 표에 모읍니다. 전체 후보 목록을 모듈마다 다시 걸러내고 복사하지 않습니다. |
| 5.19.68 | 내부 | 함수별 하이브리드 빌드 판정을 모듈과 소스 위치로 찾는 색인 하나에 기록합니다. 판정을 보고할 때 구문 트리를 다시 훑거나 모듈 키를 새로 만들지 않습니다. |
| 5.19.67 | 내부 | Rust 백엔드가 코드 생성에 쓰는 계획 그대로에서 선택 보고를 만들고, 그 계획을 코드 생성기에 한 번만 넘겨 전체 복사를 없앴습니다. |
| 5.19.66 | 내부 | Rust 백엔드의 클로저 계획을 모듈과 함수, 구간 단계로 나누어 보관합니다. 선택과 코드 생성이 조회마다 문자열 키를 만들지 않고 계획을 바로 찾습니다. |
| 5.19.65 | 내부 | JSON IR 판독기가 이미 파싱된 문서의 문자열 위에 연산 색인을 만듭니다. 필요한 연산 식별자는 완성된 프로그램에 그대로 남고 조회마다 문자열을 복사하지 않습니다. |
| 5.19.64 | 내부 | JSON 과 컴팩트 IR 연산의 최소 피연산자 구조를 디코딩하는 즉시 검사하고 색인 참조도 그 자리에서 대조합니다. 잘못된 프로그램은 조립 후 재검사가 아니라 읽는 도중에 거부됩니다. |
| 5.19.63 | 내부 | 프로그램이 호스트 기능을 필요로 하는지를 IR 을 디코딩하는 동안 한 번에 정합니다. 내장 호출의 확정된 식별자를 쓰므로 연산을 다시 훑지 않고, 내장과 이름이 같은 사용자 메서드를 내장으로 오인하지 않습니다. |
| 5.19.62 | 내부 | 호스트 기능을 쓰는 타깃 실행이 IR 페이로드를 한 번만 파싱하고, 디코딩된 그 프로그램 하나를 호스트 효과 처리와 실행이 함께 씁니다. |
| 5.19.61 | 내부 | 호스트 없이 도는 타깃 제품과 표준 내보내기가 범위가 정해진 작업 스레드를 씁니다. IR 페이로드와 인자, 표준 입력, 어댑터 정보를 복사본이 아니라 호출자에게서 그대로 읽습니다. |
| 5.19.60 | 내부 | Stage 1 과 Stage 2 컴파일러 런타임이 범위가 정해진 스레드에서 돌며 요청 바이트를 제자리에서 읽습니다. 사실 교환 회차마다 요청 전체를 복사하지 않습니다. |
| 5.19.59 | 내부 | Stage 2 컴파일러의 사실 교환 회차가 캐시된 준비 프로그램을 제자리에서 읽고 프로그램 핸들만 복사합니다. 감싸는 식별자를 매번 다시 만들지 않습니다. |
| 5.19.58 | 내부 | 자체 컴파일 산출물이 만들어진 뒤로는 바뀌지 않고 읽기 전용 통로로만 열립니다. 읽는 쪽마다 같은 필드를 다시 해싱하지 않고 원본 응답 바이트도 붙들지 않습니다. |
| 5.19.57 | 내부 | 자체 컴파일 산출물이 언어 모드를 자체 문자열로 들고 있지 않습니다. 호출 식별자와 제품 매니페스트는 로워링 요청에서 언어 버전을 공용 경로 하나로 가져옵니다. |
| 5.19.56 | 내부 | 자체 컴파일 산출물마다 들고 있던 스키마 필드를 없앴습니다. 인코더가 표준 스키마 상수를 직접 적고, 들어오는 값 검사는 그대로 유지합니다. |
| 5.19.55 | 내부 | 셀프호스트 컴파일러는 타깃 컴파일러로 폴백하지 않으므로 자체 컴파일 산출물에서 쓰이지 않던 폴백 필드를 없앴습니다. 매니페스트와 출처 기록에는 폴백 정책을 명시 상수로 그대로 적습니다. |
| 5.19.54 | 내부 | 상태와 사실 교환 회차 수를 자체 컴파일 산출물 안 한 곳에만 저장하고, 매니페스트와 다른 읽는 쪽은 같은 통로로 그 값을 가져옵니다. |
| 5.19.53 | 내부 | 생성된 Rust 를 자체 컴파일 산출물 안 한 곳에만 두고 참조로 넘깁니다. 사본끼리 서로 같은지 확인하던 중복 검사도 사라졌습니다. |
| 5.19.52 | 내부 | 자체 컴파일 산출물 맨 위에 중복으로 있던 프런트엔드 JSON 사본을 없앴습니다. 저장 위치는 한 곳으로 정해 그곳만 정본으로 삼습니다. |
| 5.19.51 | 내부 | 타입이 붙은 결과가 이미 파싱해 둔 프런트엔드 문서를 그대로 씁니다. 명령줄 컴파일러 미리보기와 셀프호스트 제품 조립이 프런트엔드 JSON 을 두 번 파싱하지 않습니다. |
| 5.19.50 | 내부 | 검증된 Stage 1 응답과 프런트엔드 문서를 완성된 결과에 그대로 남깁니다. 로워링과 제품 조립이 직렬화된 JSON 을 다시 파싱하지 않고 그것을 재사용합니다. |
| 5.19.49 | 내부 | 토큰과 이름 해석, 타입 산출물, Stage 1 제어 경로가 프런트엔드 응답을 같은 필드 목록과 같은 JSON 및 스키마 판독기로 읽습니다. 바이트 입력의 UTF-8 검사도 어디서나 동일합니다. |
| 5.19.48 | 내부 | 타입 산출물이 Stage 1 응답을 로워링 경로와 생성 경로가 쓰는 판독기로 똑같이 읽습니다. UTF-8 과 JSON, 최상위 필드, 교환 스키마 검사가 한 벌로 묶였습니다. |
| 5.19.47 | 내부 | 컴파일러를 구동하는 모든 경로가 사실 교환 회차를 같은 방식으로 진행합니다. 질의 순서와 빈 회차, 마운트, 이미 답한 질의, 사실 공급이 한 규칙을 따릅니다. |
| 5.19.46 | 내부 | Stage 2 는 고정점 기록을 다시 인코딩하는 방식을 관측 기록의 정본으로 유지합니다. 공개 Stage 1 사실 공급은 공용 응답 문서와 공통 회차 진행을 써서 페이로드를 복사하지 않습니다. |
| 5.19.45 | 내부 | 생성된 컴파일러 이미지를 받아들일 때 스키마와 고정점 상태, 폴백 정책, 생산 계보를 함께 확인합니다. 부트스트랩 컴파일러가 만든 것인지 Stage 1 이 만든 것인지가 기록에 남습니다. |
| 5.19.44 | 내부 | 생성된 두 컴파일러의 매니페스트 바이트와 라벨, 프로그램 이미지를 목록 하나로 모아 단계마다 같은 방식으로 자산을 다룹니다. |
| 5.19.43 | 내부 | 생성된 두 컴파일러 매니페스트의 스키마와 수치, 다이제스트 해석을 타입이 붙은 컴파일러 이미지 기술자 하나로 합쳤습니다. |
| 5.19.42 | 내부 | Stage 1 과 Stage 2 제품 인코더가 생산자를 같은 규칙으로 받아들이고, 컴파일러 파일 목록과 런타임 템플릿, 타깃 소스 필드를 만드는 방식을 함께 씁니다. |
| 5.19.41 | 내부 | 셀프호스트 프런트엔드에서 런타임 템플릿 이름과 다이제스트를 한 곳에서 정합니다. 인코더는 호출자가 건네주는 다이제스트를 더 받지 않습니다. |
| 5.19.40 | 내부 | Stage 2 제품 매니페스트와 관측을 검증된 산출물에서 곧바로 만듭니다. 언어 버전과 생성된 Rust 를 제자리에서 읽으므로 중간 결과를 다시 조립하지 않고 프런트엔드 JSON 과 응답, 소스를 복사하지 않습니다. |
| 5.19.39 | 내부 | 호스트가 있든 없든 셀프호스트 타깃 런타임이 승인된 산출물과 IR 페이로드, 어댑터 정보를 런타임 입력 하나로 받습니다. 아무도 쓰지 않던 별도 IR 진입점은 없앴습니다. |
| 5.19.38 | 내부 | 셀프호스트 Rust 파사드가 명시적 main 과 호스트에서 부를 수 있는 내보내기 목록을 이미 가진 진입 모듈 정보에서 바로 받습니다. 같은 목록을 다시 만들려고 로워링된 프로그램을 훑지 않습니다. |
| 5.19.37 | 내부 | 셀프호스트 Web 과 서비스 경로에서 어댑터 정보를 한 번만 만들어 진입 내보내기와 Rust 파사드가 함께 씁니다. Python 타깃은 그 정보와 IR JSON 을 런타임 입력 하나로 받습니다. |
| 5.19.36 | 내부 | 승인된 자체 컴파일 산출물의 구조와 출처, 완료 상태를 한 곳에서 검사합니다. 타깃 어댑터와 런타임 페이로드가 그 검사를 함께 씁니다. |
| 5.19.35 | 내부 | 자체 컴파일 산출물의 구조와 출처 검증을 매니페스트 인코딩에서 떼어냈습니다. 실행과 관측이 곧 버릴 매니페스트를 만들지 않고, 인코더가 자기 출력을 다시 파싱하지도 않습니다. |
| 5.19.34 | 내부 | 타입과 로워링, 생성 단계의 상태와 진단, 출력 일치를 검사 하나로 확인합니다. 언어 모드와 타깃 소스 집합, 호출과 결과 식별자는 명시적인 기록 하나에서 끌어옵니다. |
| 5.19.33 | 내부 | 타깃 소스 집합의 식별자를 필드를 표준 순서로 읽어 바로 계산하며 중간 문자열 배열을 만들지 않습니다. 모듈 순서와 소스 내용, 중복 식별자, 진입점 하나 규칙은 소스를 만드는 자리에서 검사합니다. |
| 5.19.32 | 내부 | 최종 생성 응답을 읽는 일을 전용 입력 기록과 전용 절차로 분리했습니다. 완료 상태와 미지원 목록, 생성된 Rust 예산, 출처, 결과 조립이 여기에 모입니다. |
| 5.19.31 | 내부 | 생성 응답이 로워링 결과로 한 번에 바로 디코딩됩니다. 결과를 만드는 일이 사실 교환 회차 진행과 얽혀 있지 않아 요청을 다시 인코딩하거나 가짜 호출을 만들거나 응답을 복사하지 않습니다. |
| 5.19.30 | 내부 | Stage 1 의 로워링 경로와 생성 경로가 같은 응답 필드와 같은 UTF-8, JSON, 객체, 스키마 해석, 같은 상태와 질의 봉투를 씁니다. JSON 객체는 참조로 넘겨 큰 배열을 복사하지 않습니다. |
| 5.19.29 | 내부 | Stage 0 로워링 경로와 생성된 Stage 1 경로가 사실 요청을 같은 상태 전이로 처리합니다. 빈 질의와 순서가 어긋난 질의, 중복 질의, 이미 답한 질의를 같은 규칙으로 다루고 출처도 같은 곳에서 기록합니다. |
| 5.19.28 | 내부 | Stage 0 안의 Stage 1 교환 판독기를 모듈과 연산 및 문자열 배열, 미지원 목록과 상태 일치, 출처와 소스 집합 식별자를 각각 맡는 부분으로 나눴습니다. |
| 5.19.27 | 내부 | 셀프호스트 Stage 1 교환에서 쓰이지 않던 공개 레코드를 없앴습니다. 중첩된 출처 필드에 필요한 타입 가져오기는 그대로 남겼습니다. |
| 5.19.26 | 내부 | 셀프호스트 코드 생성기의 닫힌 정수 미리보기가 배열과 색인 맵을 따로 두지 않고 식별자에서 연산으로 가는 맵 하나만 씁니다. 선택 규칙과 미리보기 결과는 그대로입니다. |
| 5.19.25 | 내부 | 생성된 런타임에서 스프레드 호출과 이름 인자 호출이 펼친 값을 배열로 한 번만 풀고 클로저 호출과 합성 호출, 호출할 수 없는 분기에 같은 값을 넘깁니다. 기본값 매개변수를 채우지 못하면 표준 인자 개수 오류를 돌려주고, 인터프리터의 수신자 검사도 하나의 분류를 따릅니다. |
| 5.19.24 | 내부 | 생성된 Rust 에서 값으로 쓰이는 내장 함수가 공용 인자 형태를 그대로 받습니다. 중복된 인자 개수 사전 검사와 감싸는 층이 사라졌고, ByteBuffer 와 Zstd 의 선택 인자는 형태별로 변환되며 어긋나면 구조화된 런타임 오류를 돌려줍니다. |
| 5.19.23 | 내부 | 인터프리터와 생성된 런타임이 인자 변환을 한 벌로 함께 씁니다. 고차 내장 함수와 네임스페이스 내장 함수가 인자 0개에서 3개를 바로 받고, ByteBuffer 와 Zstd 의 선택 인자는 형태별로 변환되며 기본값이 없으면 구조화된 런타임 오류를 돌려줍니다. |
| 5.19.22 | 내부 | 내장 멤버 호출과 호스트 자원 메서드 호출이 인자 0개에서 4개를 호출 순서대로 받아 개수 검사와 소유권 이전을 한 번에 처리합니다. Decimal 의 round 와 div 는 선택 인자를 지원되는 형태마다 변환하므로 디스패치에 프로그램이 멎는 지점이 남지 않습니다. |
| 5.19.21 | 내부 | Test 와 리스펙스 호출이 인자 개수 검사와 소유권 이전을 한 번에 처리하고, Stage 1 콜백과 ISO 날짜 파싱의 인자 개수 오류 보고가 더 정확해졌습니다. Rust 백엔드와 Python 백엔드는 진입 모듈 값과 수신자·프로토콜 메서드, 조회에서 일치합니다. |
| 5.19.20 | 내부 | Unicode 식별자 표를 타입이 붙은 범위 레코드로 생성해, 어떤 문자가 식별자에 쓰일 수 있는지 찾는 검색이 타입 검사를 받습니다. 입력 끝 표시는 더 이상 1바이트 문자 후보로 세지 않습니다. |
| 5.19.19 | 내부 | 셀프호스트 렉서가 오류 복구 중에 끼워 넣는 닫는 토큰에 합성 표시를 붙이고 그 출처를 레이아웃 흐름 끝까지 유지합니다. 레이아웃 상태는 길이가 보장된 자리에서 폴백으로 실수를 가리지 않고 곧바로 색인합니다. |
| 5.19.18 | 내부 | 한 줄 문자열 보간 안에 중첩된 삼중 따옴표 문자열이 줄바꿈 규칙을 피해 가던 문제를 고쳤습니다. 두 렉서 모두 첫 줄바꿈에서 중첩된 문자열과 보간을 닫고 바깥 문자열이 시작한 자리에 TPZ0003 을 보고합니다. |
| 5.19.17 | 내부 | 5.20 모듈 표면에서 내보낸 값과 레코드, 열거형, 뉴타입이 이름 형태 전체를 표준 식별자로 함께 지닙니다. 선택 가져오기와 네임스페이스 가져오기는 그 정보로 멤버를 검사하므로 선택하지 않은 이름이 스코프에 새어 들어오지 않습니다. |
| 5.19.16 | 내부 | 내장 함수를 값으로 호출할 때 인자 개수를 표 하나로 검사하므로 정확한 개수 호출과 선택 인자 호출, 가변 인자 호출이 같은 오류를 보고합니다. 생성된 Rust 에서 아직 설정되지 않은 최상위 내보내기를 읽으면 대체 값이 아니라 표준 미바인딩 오류가 나옵니다. |
| 5.19.15 | 내부 | 두 컴파일러가 이름 해석으로 확정한 식별자를 우선하므로 Test 나 FS 의 멤버와 이름이 같은 사용자 레코드와 함수가 내장 네임스페이스 규칙에 걸리지 않습니다. ast 와 resolved, typed 가 아닌 미리보기 대상과 허용되지 않은 언어 모드는 소스를 읽기 전에 거부합니다. |
| 5.19.14 | 내부 | 5.20 프로파일의 이름 있는 레코드와 열거형, 뉴타입이 공개 이름과 선언 식별자, 수신자 메서드 식별자를 서로 구분해 유지하며 생성과 동등 비교, 순서 비교, 패턴, 타입 가드에서 같게 동작합니다. 타입 JSON 스키마는 별칭을 선언한 모듈 안에서 풀어 가져온 타입이 어느 백엔드에서나 같게 평가됩니다. |
| 5.19.13 | 내부 | 언어 버전과 키워드가 각각 선언 하나에서 나오며 순서와 표기, 정확한 파싱까지 그 선언이 만들어 냅니다. 코퍼스 선택기는 그 파서와 5.7 상한을 명시해 씁니다. topaz run 은 동결된 5.1 단일 파일 경로와 5.2 이상 모듈 경로의 의미 경계를 그대로 지킵니다. |
| 5.19.12 | 내부 | 공개 소스 스냅샷이 커밋 하나의 트리를 제외 없이 그대로 재현하고, 커밋과 트리, 블롭 식별자, 실행 권한, 바이트 길이, SHA-256 다이제스트를 페이로드 밖 매니페스트에 기록합니다. 최상위 LICENSE 와 NOTICE, THIRD-PARTY-NOTICES.md 도 함께 확인합니다. |
| 5.19.11 | 내부 | 토파즈를 Apache-2.0 으로 공개하며 저장소 최상위에 LICENSE 와 NOTICE 를 두었습니다. 토파즈가 소유한 Cargo 패키지 40개와 Node 패키지 4개가 이 라이선스를 선언하고, 함께 넣은 Rust 패키지 165개의 라이선스는 별도 목록에 담았으며, 작업 트리의 모든 경로를 분류했습니다. |
| 5.19.10 | 내부 | 편집기 멤버 자동완성이 JSON 네임스페이스의 stringify 와 parseAs, decode, parse 를 보여 줍니다. 예전 목록에는 빠져 있던 항목입니다. 두 검사기가 같은 내장 네임스페이스 목록을 읽어 호출 가능한 정적 멤버와 RoundingMode 값을 같은 진단으로 받아들입니다. |
| 5.19.9 | 내부 | 호출 가능한 이름의 별칭이 제네릭 인자 개수와 매개변수 이름, 기본값을 그대로 따릅니다. 두 컴파일러가 정수 나눗셈과 나머지, 부호 반전, 산술 넘침, 최상위 초기화 순서를 같은 진단으로 보고하며, 즉시 실행되는 문장은 나중에 생기는 바인딩을 거부합니다. |
| 5.19.8 | 내부 | 두 컴파일러가 반환 타입을 생략한 함수와 람다의 타입 추론에서 일치합니다. Result 와 Option, 빈 배열 결합, 재귀가 여기에 들어가며 제네릭 호출 결합과 using File 초기화, 일반 대입과 ??= 대입, 산술 대입, if 와 match 안의 기대 타입도 같습니다. |
| 5.19.7 | 내부 | 두 컴파일러가 함수와 람다, 컴프리헨션 경계를 넘는 라벨 반복 제어와 값을 내는 반복 제어에서 일치합니다. 와일드카드와 바인딩, 리터럴, 타입, 생성자, 리스트, 레코드, or 패턴의 포괄 검사와 불가능한 패턴 진단, 닫힌 영역 match 완전성 검사도 같습니다. |
| 5.19.6 | 내부 | 리스펙스 인터프리터가 205개 능력 행 전부를 소스 직접 실행과 생성된 Rust, 생성된 Python, Web, 설치된 토파즈 제품에서 지원합니다. 같은 프로그램이 다섯 경로 모두에서 상태와 표준 출력 바이트, 진단, 경고, 종료 상태, 값, 자원 결과까지 일치합니다. |
| 5.19.5 | 내부 | 리스펙스의 고차 절차 all? 과 any?, filter, fold-left, fold-right, for-each, map, reduce, string-for-each, string-map, vector-for-each, vector-map 을 완성해 인터프리터가 205개 능력 행을 모두 지원하고 미지원 행이 없습니다. |
| 5.19.4 | 내부 | 리스펙스의 문자와 문자열, 출력 능력 36개를 완성해 지원이 205개 행 가운데 157개에서 193개로 늘었습니다. 문자열 전체 대소문자 변환이 그리스어 끝소문자 시그마와 길이가 바뀌는 대응을 처리하고 display 와 write, newline, println 출력이 올바른 순서로 섞입니다. |
| 5.19.3 | 내부 | 리스펙스의 리스트와 검색 능력 39개를 완성했습니다. 합성 c...r 접근자 28개와 assoc, assq, assv, list-copy, list-first, list-ref, list-rest, list-tail, make-list, memv, nth 를 더해 지원이 205개 행 가운데 118개에서 157개로 늘었습니다. |
| 5.19.2 | 내부 | 리스펙스의 수치 능력 34개를 완성했습니다. 정수 나눗셈 계열과 정확수·부정확수 변환, 반올림, gcd 와 lcm, 거듭제곱, 정확한 정수 제곱근, 수치 술어가 들어가며 지원이 205개 행 가운데 84개에서 118개로 늘었습니다. |
| 5.19.1 | 내부 | 셀프호스트 프런트엔드의 이름 해석과 Unicode 식별자, 문맥 타입 결정, 캡처, 진단 정확성을 고쳤습니다. Stage 2 와 플레이그라운드 WASM 은 검사기를 돌리기 전에 한 번만 생성하며, 제품 설명과 공용 용어를 영어와 한국어, 러시아어에서 맞췄습니다. |