chore(syntax): Test 仓 R1 + R12 迁移
R1:T | t.CPtr -> T*(40 文件 / 1121 处;含多级 **、强转位 (T*)(x)、下标内 list[AST*]);引号前向引用 'Rect' | t.CPtr 26 处按例外保留,T | t.CPtr | t.State 25 处因 T* 后不能接 | 保持原联合写法。 R12:i = 0 + while i < N: + 尾 i += 1 -> or i in range(N):(10 文件 / 42 处;含 <= -> range(EXPR + 1)、带注解初始化 i: int = 0、尾 i = i + 1)。余 20 处经守卫判定不可安全改写(复合条件 1、尾部非自增 8、体内重绑定/continue 5、while-else 2、循环后仍被读取 2、找不到初始化 2)。
This commit is contained in:
1 parent
f5da836fbb
commit
aa5a7e7250
43 files changed
+851
-935
No files matched your search
@@ -45,7 +45,7 @@ def _basic_worker(arg: t.CPtr) -> t.CPtr:
|
||||
|
||||
# 传参: 通过 arg 指针自增 100 次(c.Deref/c.DerefAs 读写)
|
||||
def _increment_worker(arg: t.CPtr) -> t.CPtr:
|
||||
ip: int | t.CPtr = (int | t.CPtr)(arg)
|
||||
ip: int* = (int*)(arg)
|
||||
i: int
|
||||
for i in range(100):
|
||||
c.DerefAs(ip, *ip + 1)
|
||||
@@ -54,7 +54,7 @@ def _increment_worker(arg: t.CPtr) -> t.CPtr:
|
||||
|
||||
# Lock: 持锁自增全局计数器
|
||||
def _lock_worker(arg: t.CPtr) -> t.CPtr:
|
||||
lk: vthreading.Lock | t.CPtr = (vthreading.Lock | t.CPtr)(arg)
|
||||
lk: vthreading.Lock* = (vthreading.Lock*)(arg)
|
||||
global _shared_count
|
||||
for i in range(LOCK_ITER):
|
||||
lk.acquire()
|
||||
@@ -65,7 +65,7 @@ def _lock_worker(arg: t.CPtr) -> t.CPtr:
|
||||
|
||||
# Event: 等待事件被唤醒后置位完成标志
|
||||
def _event_worker(arg: t.CPtr) -> t.CPtr:
|
||||
ev: vthreading.Event | t.CPtr = (vthreading.Event | t.CPtr)(arg)
|
||||
ev: vthreading.Event* = (vthreading.Event*)(arg)
|
||||
global _evt_done
|
||||
r: int = ev.wait(5000)
|
||||
if r == 1:
|
||||
@@ -75,7 +75,7 @@ def _event_worker(arg: t.CPtr) -> t.CPtr:
|
||||
|
||||
# Condition 消费者: 循环等待 _cond_ready 就绪(限次防挂起)
|
||||
def _cond_consumer(arg: t.CPtr) -> t.CPtr:
|
||||
cond: vthreading.Condition | t.CPtr = (vthreading.Condition | t.CPtr)(arg)
|
||||
cond: vthreading.Condition* = (vthreading.Condition*)(arg)
|
||||
global _cond_ready
|
||||
tries: int = 0
|
||||
cond.acquire()
|
||||
@@ -88,7 +88,7 @@ def _cond_consumer(arg: t.CPtr) -> t.CPtr:
|
||||
|
||||
# Condition 生产者: 延迟后置位 _cond_ready 并 notify
|
||||
def _cond_producer(arg: t.CPtr) -> t.CPtr:
|
||||
cond: vthreading.Condition | t.CPtr = (vthreading.Condition | t.CPtr)(arg)
|
||||
cond: vthreading.Condition* = (vthreading.Condition*)(arg)
|
||||
global _cond_ready
|
||||
vthreading.sleep_ms(50)
|
||||
cond.acquire()
|
||||
@@ -100,7 +100,7 @@ def _cond_producer(arg: t.CPtr) -> t.CPtr:
|
||||
|
||||
# RWLock 读者: 持读锁反复读共享值
|
||||
def _rw_reader(arg: t.CPtr) -> t.CPtr:
|
||||
rwl: vthreading.RWLock | t.CPtr = (vthreading.RWLock | t.CPtr)(arg)
|
||||
rwl: vthreading.RWLock* = (vthreading.RWLock*)(arg)
|
||||
global _rw_value
|
||||
i: int
|
||||
for i in range(RW_ITER * 10):
|
||||
@@ -112,7 +112,7 @@ def _rw_reader(arg: t.CPtr) -> t.CPtr:
|
||||
|
||||
# RWLock 写者: 持写锁自增共享值
|
||||
def _rw_writer(arg: t.CPtr) -> t.CPtr:
|
||||
rwl: vthreading.RWLock | t.CPtr = (vthreading.RWLock | t.CPtr)(arg)
|
||||
rwl: vthreading.RWLock* = (vthreading.RWLock*)(arg)
|
||||
global _rw_value
|
||||
i: int
|
||||
for i in range(RW_ITER):
|
||||
|
||||
Reference in new issue
Block a user