M: freebsd find-library*
"l" prepend load-ldconfig-cache
- [ name-matches? ] with find nip ?first dup [ ".so" append ] when ;
+ [ name-matches? ] with find nip ?first [ ".so" append ] ?call ;
M: f library-dll ;
M: library library-dll
- dup [ dll>> ] when ;
+ [ dll>> ] ?call ;
M: string library-dll ( library -- dll )
lookup-library library-dll ;
M: cache-assoc assoc-size assoc>> assoc-size ;
-M: cache-assoc at* assoc>> at* [ dup [ 0 >>age value>> ] when ] dip ;
+M: cache-assoc at* assoc>> at* [ [ 0 >>age value>> ] ?call ] dip ;
M: cache-assoc set-at
check-disposed
: nib-named ( nib-name -- anNSNib )
<NSString> NSNib -> alloc swap f -> initWithNibNamed:bundle:
- dup [ -> autorelease ] when ;
+ [ -> autorelease ] ?call ;
: nib-objects ( anNSNib -- objects/f )
f
} [
f f cdecl f "libc" "malloc" alien-invoke-params boa
caller-linkage
- dup [ path>> alien>native-string ] when
+ [ path>> alien>native-string ] ?call
] unit-test
SYMBOL: foo
: spill-at-sync-point? ( sync-point live-interval -- ? )
{
[ drop keep-dst?>> not ]
- [ [ n>> ] dip find-use dup [ def-rep>> ] when not ]
+ [ [ n>> ] dip find-use [ def-rep>> ] ?call not ]
} 2|| ;
: spill-at-sync-point ( sync-point live-interval -- ? )
} representations set
: clean-up-split ( a b -- a b )
- [ dup [ [ >vector ] change-uses [ >vector ] change-ranges ] when ] bi@ ;
+ [ [ [ >vector ] change-uses [ >vector ] change-ranges ] ?call ] bi@ ;
{
T{ live-interval-state
:: find-use ( insn# live-interval -- vreg-use/f )
insn# live-interval (find-use)
- dup [ dup n>> insn# = [ drop f ] unless ] when ;
+ [ dup n>> insn# = [ drop f ] unless ] ?call ;
: <live-interval> ( vreg -- live-interval )
\ live-interval-state new
: top-name ( vreg -- vreg' )
(top-name)
- dup [ dup used-vregs get push-front ] when ;
+ [ dup used-vregs get push-front ] ?call ;
RENAMING: ssa-rename [ gen-name ] [ top-name ] [ ]
SYMBOLS: return-addresses gc-maps ;
: gc-map-needed? ( gc-map/f -- ? )
- dup [ tuple-slots [ empty? ] all? not ] when ;
+ [ tuple-slots [ empty? ] all? not ] ?call ;
: gc-map-here ( gc-map -- )
dup gc-map-needed? [
MACRO:: n-falsify ( n -- quot )
[ n ndup n n-and [ n ndrop n f n*obj ] unless ] ;
-! plox
-: ?1res ( ..a obj/f quot -- ..b )
- dupd when ; inline
-
! when both args are true, call quot. otherwise dont
: ?2res ( ..a obj1 obj2 quot: ( obj1 obj2 -- ? ) -- ..b )
[ 2dup and ] dip [ 2drop f ] if ; inline
! try the quot, keep the original arg if quot is true
: ?1arg ( obj quot: ( obj -- ? ) -- obj/f )
- [ ?1res ] keepd '[ _ ] [ f ] if ; inline
+ [ ?call ] keepd '[ _ ] [ f ] if ; inline
: ?2arg ( obj1 obj2 quot: ( obj1 obj2 -- ? ) -- obj1/f obj2/f )
[ ?2res ] 2keepd '[ _ _ ] [ f f ] if ; inline