GENERIC: uses-vregs* ( insn -- seq )
-M: gc-map-insn uses-vregs* ( insn -- )
+M: gc-map-insn uses-vregs*
[ uses-vregs ] [ gc-map>> derived-roots>> values ] bi append ;
M: vreg-insn uses-vregs* uses-vregs ;
M: uninitialized-analysis transfer-set ( pair bb analysis -- pair' )
drop [ prepare ] dip visit-block finish ;
-M: uninitialized-analysis join-sets ( sets analysis -- pair )
+M: uninitialized-analysis join-sets ( sets bb dfa -- set )
2drop sift [ f ] [ [ ] [ [ (join-sets) ] 2map ] map-reduce ] if-empty ;
: with-db-pool ( db quot -- )
[ <db-pool> ] dip with-pool ; inline
-M: db-pool make-connection ( pool -- )
+M: db-pool make-connection ( pool -- conn )
db>> db-open ;
: with-pooled-db ( pool quot -- )
ERROR: empty-dlist ;
-M: empty-dlist summary ( dlist -- )
+M: empty-dlist summary ( dlist -- string )
drop "Empty dlist" ;
M: dlist peek-front ( dlist -- obj )
: end-aside ( default -- response )
aside-id get aside-id off get-aside [ move-on ] [ <redirect> ] ?if ;
-M: asides link-attr ( tag -- )
+M: asides link-attr ( tag responder -- )
drop
"aside" optional-attr {
{ "none" [ aside-id off ] }
aside-id-key associate assoc-union
] when* ;
-M: asides modify-form ( asides -- )
+M: asides modify-form ( asides -- xml/f )
drop
aside-id get
aside-id-key
M: login-realm logged-in-username\r
drop permit-id get dup [ get-permit-uid ] when ;\r
\r
-M: login-realm modify-form ( responder -- )\r
+M: login-realm modify-form ( responder -- xml/f )\r
drop permit-id get realm get name>> permit-id-key hidden-form-field ;\r
\r
: <permit-cookie> ( -- cookie )\r
URL" $realm/login" <continue-conversation>\r
] if ;\r
\r
-M: login-realm user-registered ( user realm -- )\r
+M: login-realm user-registered ( user realm -- response )\r
drop successful-login ;\r
\r
: <login-realm> ( responder name -- realm )\r
bi
] [ 2drop ] if ;
-M: conversations modify-form ( conversations -- )
+M: conversations modify-form ( conversations -- xml/f )
drop
conversation-id get
conversation-id-key
: put-session-cookie ( response -- response' )
<session-cookie> put-cookie ;
-M: sessions modify-form ( responder -- )
+M: sessions modify-form ( responder -- xml/f )
drop session get id>> session-id-key hidden-form-field ;
M: sessions call-responder* ( path responder -- response )
TUPLE: html-block-stream < html-sub-stream ;
-M: html-block-stream dispose ( quot style stream -- )
+M: html-block-stream dispose
end-sub-stream format-html-div ;
: border-spacing-css, ( pair -- )
HOOK: new-file-system-info os ( -- file-system-info )
-M: unix new-file-system-info ( -- ) unix-file-system-info new ;
+M: unix new-file-system-info unix-file-system-info new ;
HOOK: file-system-statfs os ( path -- statfs )
] if\r
] if ;\r
\r
-M: ebnf-var build-locals ( code ast -- )\r
+M: ebnf-var build-locals ( code ast -- code )\r
[\r
"FROM: locals => [let :> ; FROM: kernel => dup nip ; [let " %\r
" dup :> " % name>> %\r
" nip ]" % \r
] "" make ;\r
\r
-M: object build-locals ( code ast -- )\r
+M: object build-locals ( code ast -- code )\r
drop ;\r
- \r
+\r
ERROR: bad-effect quot effect ;\r
\r
: check-action-effect ( quot -- quot )\r
thread-error-hook [ [ die ] ] initialize
-M: object error-in-thread ( error thread -- )
+M: object error-in-thread ( error thread -- * )
thread-error-hook get-global call( error thread -- * ) ;
: in-callback? ( -- ? ) 3 context-object ;
M: assoc-heap heap-peek ( assoc-heap -- value key )
heap>> heap-peek ;
-M: assoc-heap heap-empty? ( assoc-heap -- value key )
+M: assoc-heap heap-empty? ( assoc-heap -- ? )
heap>> heap-empty? ;
<PRIVATE
-M: change-tracking-tuple-class writer-quot ( class slot-spec -- )
+M: change-tracking-tuple-class writer-quot ( class slot-spec -- quot )
[ call-next-method ]
[ name>> "changed?" = [ '[ _ [ t >>changed? drop ] bi ] ] unless ] bi ;
M: scaled modified-nth ( n seq -- elt )
[ seq>> nth ] [ c>> * ] bi ;
-M:: scaled modified-set-nth ( elt n seq -- elt )
+M:: scaled modified-set-nth ( elt n seq -- )
! don't set c to 0!
elt seq c>> / n seq seq>> set-nth ;
] if* ;
PRIVATE>
-M: summed modified-nth ( n seq -- )
+M: summed modified-nth ( n seq -- elt )
seqs>> [ ?nth ?+ ] with 0 swap reduce ;
M: summed modified-set-nth ( elt n seq -- ) immutable ;
: avl-set ( value key node -- node taller? )
[ (avl-set) ] [ swap <avl-node> t ] if* ;
-M: avl set-at ( value key node -- node )
+M: avl set-at ( value key node -- )
[ avl-set drop ] change-root drop ;
: delete-select-rotate ( node -- node shorter? )