PaddlePaddle/PaddleSOT

为所有入栈出栈操作添加检查,确保栈内所有内容均是Variable

zrr1999 opened this issue · 3 comments

在 OpcodeExecutor 的栈内,应该所有内容均是Variable,但是现在我们有很多时候混入了一些其他类型变量,所以我们考虑在所有入栈出栈操作上都加上 isinstance(val, VariableBase) 的检查,这可以通过如下方式实现:

简化栈操作,栈操作只允许访问栈顶,只包含 push、pop 等简单操作,不允许直接访问和替换栈
在有限的栈操作上加上检查项,确保入栈出栈都是 Variable(其实只需要保证入栈是就好了)

相关讨论见 #138 (comment)

已PR。#155

@NotHaozi 以后可以在 PR 的描述里加上 fixes #pr_id,这样就可以在 merge 时自动 close 掉对应 issue 了

参考 https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword

@NotHaozi 以后可以在 PR 的描述里加上 fixes #pr_id,这样就可以在 merge 时自动 close 掉对应 issue 了

参考 https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword

谢谢,收到!