aboutsummaryrefslogtreecommitdiffstats
path: root/docs/research/108-one-value-every-path.md
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-30 13:19:30 +0100
committereunhhu <[email protected]>2026-09-30 13:19:30 +0100
commit8757aede13d79edd272f518d6aad03567389ad9e (patch)
tree64e76f7fa23528d4eeb1f2e66cd997c0f7ca7ed8 /docs/research/108-one-value-every-path.md
parent49978a22102d748468d3203a1ce0becf27404511 (diff)
downloadpure-8757aede13d79edd272f518d6aad03567389ad9e.tar.gz
pure-8757aede13d79edd272f518d6aad03567389ad9e.zip
Say what the screen showed of a value, and what Vega now keeps from acting (015, 108)
Diffstat (limited to 'docs/research/108-one-value-every-path.md')
-rw-r--r--docs/research/108-one-value-every-path.md23
1 files changed, 21 insertions, 2 deletions
diff --git a/docs/research/108-one-value-every-path.md b/docs/research/108-one-value-every-path.md
index 387ef24..7a241fe 100644
--- a/docs/research/108-one-value-every-path.md
+++ b/docs/research/108-one-value-every-path.md
@@ -75,8 +75,27 @@
- 착수 기준은 −0을 내다보지 못했다(수를 비트까지 비교한다고만 적었다). 0의 부호는 aup에서 뜻이 없으므로(가르는 연산이
없고, 글자와 `distinct`가 이미 같게 본다) 바꾸지 않고 계약으로 적었다(015). 검사는 0끼리를 같게 본다.
+## 화면
+
+범위 밖으로 남겼던 화면(Vega가 보기를 그리는 경계)도 같은 방식으로 이어서 봤다. 무엇이든 받는 목록 하나에 위험한
+text를 넣고 표면마다 출력을 떴다.
+
+- **CLI와 TUI는 이미 막고 있었다.** ESC, C0, DEL, C1이 그림으로 나왔다. 그러나 두 가지가 그대로 나갔다.
+ - 줄 구분자(U+2028)가 그대로 나갔다. CLI의 코드는 "값이 줄을 끊지 않게"라고 적었는데, 파이썬의 `splitlines()` 같은
+ 읽는 쪽에는 U+2028이 줄바꿈이다.
+ - 방향 오버라이드(U+202E)가 그대로 나갔다. 양방향을 처리하는 터미널은 같은 줄의 나머지를 뒤집는다. 표의 옆 칸, 곧 다른
+ 값까지 뒤집힌다.
+- **문장(NUI)은 0x20 미만만 공백으로 바꿨다.** C1 제어(일부 터미널에 U+009B는 CSI다), DEL, 줄 구분자, 방향 제어를
+ 그대로 냈다.
+- **웹 페이지는 제어 문자를 그대로 보였고,** 레이블의 오버라이드가 같은 항목의 배지까지 뒤집을 수 있었다.
+- 메신저처럼 다른 노드가 보낸 글을 보이는 앱이라면, 보낸 쪽이 받는 쪽의 화면을 이렇게 속일 수 있다.
+
+고쳤다(Vega `611b54f`). 모든 표면이 같은 그림을 쓰고(`vega_visible`), 터미널의 칸은 방향 제어도 �로 보인다
+(`vega_cell`). 문장은 공백으로 말하거나 말하지 않는다. 웹 페이지는 그림으로 보이고 값마다 격리한다. `/screen`의 JSON은
+값을 그대로 싣는다. Vega의 `screen_meaning`이 CLI, TUI, 문장, JSON을 값 16개로 보고, `browser`가 페이지를 본다.
+
## 다음
-- **화면.** Vega가 보기를 그리는 경계다. 터미널과 CLI와 문장이 같은 값을 어떻게 보이는지(제어 문자, U+2028, 넓은 글자를
- 그대로 보일지, 이스케이프할지)를 정하고 같은 방식으로 고정한다.
- bytes 필드는 목록의 레코드에 담기지 않으므로 여기서 보지 않았다. 문서 모델의 검사(`server_parity`)가 본다.
+- 넓은 글자와 ZWJ 이모지 묶음의 칸 너비는 근사다(Vega 001: grapheme 단위 자르기가 아직 없다). 뜻이 아니라 모양의 일이라
+ 여기서 다루지 않았다.