diff --git a/stdlib.vp b/stdlib.vp index 2a90d73..88ebf5b 100644 --- a/stdlib.vp +++ b/stdlib.vp @@ -1,10 +1,10 @@ -from stdint import * -import t - - -extern def malloc(size: sizet) -> t.CPtr -extern def calloc(nmemb: sizet, size: sizet) -> t.CPtr -extern def realloc(p: t.CPtr, size: sizet) -> t.CPtr -extern def free(p: t.CPtr) +extern def malloc(size: sizet) -> rawptr +extern def calloc(nmemb: sizet, size: sizet) -> rawptr +extern def realloc(p: rawptr, size: sizet) -> rawptr +# P2 生命期标注:被标注的形参所指对象在**本调用返回后失效**(由被调用者释放/接管)。 +# 调用点据此把对应实参变量槽标为"已失效",其后读/取址/再传 → LifetimeError(fail-fast)。 +# 写法二选一:形参名 willFree(p) 或形参位置序号 willFree(0)(0 起,self/cls 计入)。 +@life(willFree(p)) +extern def free(p: rawptr) extern def system(cmd: const str) -> int extern def exit(status: int)