factor/basis/stack-checker/stack-checker.factor

28 lines
847 B
Factor
Raw Normal View History

2008-07-20 05:24:37 -04:00
! Copyright (C) 2004, 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: kernel io effects namespaces sequences quotations vocabs
generic words stack-checker.backend stack-checker.state
stack-checker.known-words stack-checker.transforms
stack-checker.errors stack-checker.inlining
stack-checker.visitor.dummy ;
IN: stack-checker
GENERIC: infer ( quot -- effect )
M: callable infer ( quot -- effect )
[ recursive-state get infer-quot ] with-infer drop ;
: infer. ( quot -- )
#! Safe to call from inference transforms.
infer effect>string print ;
: forget-errors ( -- )
all-words [
2008-08-22 23:07:59 -04:00
dup subwords [ f "cannot-infer" set-word-prop ] each
f "cannot-infer" set-word-prop
2008-07-20 05:24:37 -04:00
] each ;
2008-08-18 21:08:45 -04:00
: forget-effects ( -- )
forget-errors
2008-08-22 23:07:59 -04:00
all-words [ f "inferred-effect" set-word-prop ] each ;