Skip to content

Commit

Permalink
using if-zero in even more places.
Browse files Browse the repository at this point in the history
  • Loading branch information
mrjbq7 committed Jul 17, 2012
1 parent b990024 commit 2f325e4
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 22 deletions.
6 changes: 3 additions & 3 deletions basis/cpu/x86/x86.factor
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ HOOK: reserved-stack-space cpu ( -- n )
: spill@ ( n -- op ) spill-offset special-offset stack@ ;

: decr-stack-reg ( n -- )
dup 0 = [ drop ] [ stack-reg swap SUB ] if ;
[ stack-reg swap SUB ] unless-zero ;

: incr-stack-reg ( n -- )
dup 0 = [ drop ] [ stack-reg swap ADD ] if ;
[ stack-reg swap ADD ] unless-zero ;

: align-stack ( n -- n' ) 16 align ;

Expand All @@ -61,7 +61,7 @@ M: x86 test-instruction? t ;

M: x86 immediate-store? immediate-comparand? ;

M: x86 %load-immediate dup 0 = [ drop dup XOR ] [ MOV ] if ;
M: x86 %load-immediate [ dup XOR ] [ MOV ] if-zero ;

M: x86 %load-reference
[ swap 0 MOV rc-absolute-cell rel-literal ]
Expand Down
25 changes: 12 additions & 13 deletions basis/io/directories/unix/unix.factor
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors alien.c-types alien.data alien.strings
combinators continuations destructors fry io io.backend
assocs combinators continuations destructors fry io io.backend
io.directories io.encodings.binary io.files.info.unix
io.encodings.utf8 io.files io.pathnames io.files.types kernel
math.bitwise sequences system unix unix.stat vocabs.loader
Expand Down Expand Up @@ -31,7 +31,7 @@ M: unix delete-directory ( path -- )

M: unix copy-file ( from to -- )
[ normalize-path ] bi@
[ call-next-method ]
[ call-next-method ]
[ [ file-permissions ] dip swap set-file-permissions ] 2bi ;

: with-unix-directory ( path quot -- )
Expand All @@ -48,17 +48,16 @@ M: unix find-next-file ( DIR* -- byte-array )
void* deref [ drop f ] unless ;

: dirent-type>file-type ( ch -- type )
{
{ DT_BLK [ +block-device+ ] }
{ DT_CHR [ +character-device+ ] }
{ DT_DIR [ +directory+ ] }
{ DT_LNK [ +symbolic-link+ ] }
{ DT_SOCK [ +socket+ ] }
{ DT_FIFO [ +fifo+ ] }
{ DT_REG [ +regular-file+ ] }
{ DT_WHT [ +whiteout+ ] }
[ drop +unknown+ ]
} case ;
H{
{ $ DT_BLK +block-device+ }
{ $ DT_CHR +character-device+ }
{ $ DT_DIR +directory+ }
{ $ DT_LNK +symbolic-link+ }
{ $ DT_SOCK +socket+ }
{ $ DT_FIFO +fifo+ }
{ $ DT_REG +regular-file+ }
{ $ DT_WHT +whiteout+ }
} at* [ drop +unknown+ ] unless ;

M: unix >directory-entry ( byte-array -- directory-entry )
{
Expand Down
3 changes: 1 addition & 2 deletions basis/io/launcher/launcher.factor
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,7 @@ M: process-failed error.
] [ process>> . ] bi ;

: wait-for-success ( process -- )
dup wait-for-process 0 =
[ drop ] [ process-failed ] if ;
dup wait-for-process [ drop ] [ process-failed ] if-zero ;

: try-process ( desc -- )
run-process wait-for-success ;
Expand Down
2 changes: 1 addition & 1 deletion extra/io/binary/fast/fast.factor
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ ERROR: bad-length bytes n ;
1 - 8 * 0 swap 8 <range> ; inline

: reassemble-bytes ( range -- quot )
[ dup 0 = [ drop [ ] ] [ '[ _ shift ] ] if ] map
[ [ [ ] ] [ '[ _ shift ] ] if-zero ] map
'[ [ _ spread ] [ bitor ] reduce-outputs ] ; inline

MACRO: reassemble-be ( n -- quot ) be-range reassemble-bytes ;
Expand Down
6 changes: 3 additions & 3 deletions extra/math/text/english/english.factor
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ IN: math.text.english
f f "twenty" "thirty" "forty" "fifty" "sixty"
"seventy" "eighty" "ninety"
} nth ;

: scale-numbers ( n -- str ) ! up to 10^99
{
f "thousand" "million" "billion" "trillion" "quadrillion"
Expand Down Expand Up @@ -51,9 +51,9 @@ SYMBOL: and-needed?
: tens-place ( n -- str )
100 mod dup 20 >= [
10 /mod [ tens ] dip
dup 0 = [ drop ] [ small-numbers "-" glue ] if
[ small-numbers "-" glue ] unless-zero
] [
dup 0 = [ drop "" ] [ small-numbers ] if
[ "" ] [ small-numbers ] if-zero
] if ;

: 3digits>text ( n -- str )
Expand Down

0 comments on commit 2f325e4

Please sign in to comment.