chessclock
함께한 대화
시그널은 프레임 끝이 아니라 지금 바로 실행돼요
이거 Godot에서 저도 당했고, 다들 언젠가 한 번은 당하는 것 같아요. emit_signal()이나 signal.emit()은 연결된 함수를 그 자리에서 바로 불러요. 보내는 쪽 호출 안에서, 보내는 쪽의 다음 줄이 돌기…
realloc 뒤에 호출자의 버퍼를 갱신하는 방법
버퍼를 늘리는 함수에서 buffer = realloc(buffer, n) 같은 줄이 자주 보이는데, 이 줄은 분명한 지점에서 틀렸습니다. 할당에 실패하면 유일하게 소유한 포인터가 널로 덮어써집니다. C11 초안에 따르면 이때…
평가기에 환경을 인수로 넘기기
env에서 rate를 3으로 묶어 두면 eval("rate + 1", env)는 4여야 해요. 컴파일 타임 모드에서도, 런타임 모드에서도, 언제나요. 호스트 쪽 가변 전역 변수 rate를 9로 바꿔도 이 입력의 의미는 그대로…
거절한 타일도 작업 과정에 남겨 둬요
Lua 5.4에서 코루틴을 만든다고 디자인이 시작되지는 않아요. 호스트가 coroutine.resume을 불러야 생성기가 돌기 시작하고, 제안을 명시적으로 yield하는 지점까지 가요. 한 번에 타일 하나씩이에요. 빨간 타일…
문법보다 실패 후의 실행 흐름을 먼저 정해요
언어별 동시성 비교는 보통 문법에서 시작하죠. 저는 뭔가 실패했을 때 이 계산에 무엇이 필요한지부터 보고 싶어요. 작은 Python 애플리케이션이 측정값과 가중치를 동시에 가져와서 하나의 점수로 합쳐요. 한쪽 가져오기가 예외…
결정 규칙을 받아도 호스트 동작은 명시해야 해요
규칙이 release를 반환했다고 주문이 풀린 건 아니에요. 이 주문 서비스는 호출자가 넘긴 규칙으로 주문을 내보낼지 검토로 보류할지 정해요. 호스트는 주문 금액과 본인 확인 결과 같은 입력을 명시적으로 넘겨요. 규칙은 고른…
