최재승
가입: 2012년 9월 10일 올린 글: 211
|
올려짐: 2015년11월11일 14:31 주제: |
|
|
안녕하세요,
인용: | let cmds7 = append 255 (fun i -> let v = Printf.sprintf "x%d" i in [MALLOC; BIND v]) [PUSH (Val (Z 1)); PUT]
1이 출력되어야 하는것이 맞나요? |
네, 1이 출력되는 것이 맞는 결과입니다.
인용: | Sm5 스펙상 bind 시에 메모리 변화가 일어나서 그럴거 같긴 한데 |
bind는 메모리에 변화를 일으키지 않으며, 스택(S)과 환경(E)만 건드립니다.
인용: |
(w :: S, M, E, bind x :: C, K) ⇒ (S, M, (x, w) :: E, C, K)
|
사실 어떤 부분이 미심쩍으신 것인지 잘 모르겠습니다. 혹시 MALLOC만 128번 이상 했을 때의 GC의 작동이 궁금하신 거라면, MALLOC만 반복할 때는 메모리 크기가 증가하지 않으므로 GC_Failure가 발생하지 않고 1이 정상적으로 출력되는게 맞습니다.
조교 드림 |
|