ef7939f6095529c5232c5084ab5fc76747511482
파이프라인은 .fe → i386 asm → wasm → wlink → .exe 인데 명세는 아직 C 를 방출하는 컴파일러를 서술하고 있었다. 외부 감사가 그 문서를 충실히 읽고 존재하지 않는 문제(C 의 부호 있는 오버플로 UB)를 보고했다 -- 명세가 거짓말을 하면 그것을 읽는 사람이 틀린 답을 낸다. 걷어낸 것: .fei 심볼 파일과 그 위에 얹힌 증분 빌드 서술, fe_errors.h, --emit-c 와 --error-table, '호스트 C 방출', 'C 방출 시 static inline', '별도 C 표현'. 오류 코드 절은 실제대로 다시 썼다: 빌드 하나가 모든 유닛의 소스를 함께 읽고, 드라이버가 emit 전에 쓰인 이름을 모아 철자순으로 1부터 매긴다. 유닛 하나만 따로 코드 생성까지 밀고 갈 수 없다는 것도 그 결과로 적었다. R7 이 컴파일러 소스 파일 이름(own.c)을 대고 있던 것도 언어의 말로 바꿨고, 이동은 변수 단위이고 대여는 place 단위라는 구분을 붙였다. --target= 과 --model= 은 드라이버에서 없앴다. 타깃이 하나인데 받아들여서 무시하는 플래그는 안 받는 것보다 나쁘다. SPEC 이 약속만 하고 구현이 없는 것 셋을 TODO 에 적었다: --strip-error-names, fmt.fmt_error, 0b/0o 리터럴 값 계산. 240/240, 35/35.
Description
doslang mirror
914 KiB
Languages
C
94.2%
Python
3%
Assembly
2%
JavaScript
0.6%