Use specializer hints when inlining words
parent
09c6d97fea
commit
b80e82b170
|
@ -4,7 +4,7 @@ USING: fry arrays generic io io.streams.string kernel math
|
||||||
namespaces parser prettyprint sequences strings vectors words
|
namespaces parser prettyprint sequences strings vectors words
|
||||||
quotations effects classes continuations debugger assocs
|
quotations effects classes continuations debugger assocs
|
||||||
combinators compiler.errors accessors math.order definitions
|
combinators compiler.errors accessors math.order definitions
|
||||||
sets generic.standard.engines.tuple stack-checker.state
|
sets generic.standard.engines.tuple hints stack-checker.state
|
||||||
stack-checker.visitor stack-checker.errors
|
stack-checker.visitor stack-checker.errors
|
||||||
stack-checker.values stack-checker.recursive-state ;
|
stack-checker.values stack-checker.recursive-state ;
|
||||||
IN: stack-checker.backend
|
IN: stack-checker.backend
|
||||||
|
@ -125,7 +125,7 @@ M: object apply-object push-literal ;
|
||||||
] 2bi ; inline
|
] 2bi ; inline
|
||||||
|
|
||||||
: infer-word-def ( word -- )
|
: infer-word-def ( word -- )
|
||||||
[ def>> ] [ add-recursive-state ] bi infer-quot ;
|
[ specialized-def ] [ add-recursive-state ] bi infer-quot ;
|
||||||
|
|
||||||
: check->r ( -- )
|
: check->r ( -- )
|
||||||
meta-r get empty? terminated? get or
|
meta-r get empty? terminated? get or
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: fry namespaces assocs kernel sequences words accessors
|
USING: fry namespaces assocs kernel sequences words accessors
|
||||||
definitions math math.order effects classes arrays combinators
|
definitions math math.order effects classes arrays combinators
|
||||||
vectors arrays
|
vectors arrays hints
|
||||||
stack-checker.state
|
stack-checker.state
|
||||||
stack-checker.errors
|
stack-checker.errors
|
||||||
stack-checker.values
|
stack-checker.values
|
||||||
|
@ -17,7 +17,7 @@ IN: stack-checker.inlining
|
||||||
! having to handle recursive inline words.
|
! having to handle recursive inline words.
|
||||||
|
|
||||||
: infer-inline-word-def ( word label -- )
|
: infer-inline-word-def ( word label -- )
|
||||||
[ drop def>> ] [ add-inline-word ] 2bi infer-quot ;
|
[ drop specialized-def ] [ add-inline-word ] 2bi infer-quot ;
|
||||||
|
|
||||||
TUPLE: inline-recursive < identity-tuple
|
TUPLE: inline-recursive < identity-tuple
|
||||||
id
|
id
|
||||||
|
|
Loading…
Reference in New Issue