From d9e615c040f4cb679536312333ba363382467948 Mon Sep 17 00:00:00 2001
From: "U-SLAVA-DFB8FF805\\Slava" <Slava@slava-dfb8ff805.(none)>
Date: Tue, 6 May 2008 09:16:48 -0500
Subject: [PATCH 1/9] More fixes

---
 extra/io/launcher/launcher.factor | 6 ++++++
 extra/ui/ui.factor                | 5 +++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/extra/io/launcher/launcher.factor b/extra/io/launcher/launcher.factor
index 286febd589..a47e2d3367 100755
--- a/extra/io/launcher/launcher.factor
+++ b/extra/io/launcher/launcher.factor
@@ -225,3 +225,9 @@ M: duplex-stream underlying-handle
     [ in>> underlying-handle ]
     [ out>> underlying-handle ] bi
     [ = [ "Invalid duplex stream" throw ] when ] keep ;
+
+M: encoder underlying-handle
+    stream>> underlying-handle ;
+
+M: decoder underlying-handle
+    stream>> underlying-handle ;
diff --git a/extra/ui/ui.factor b/extra/ui/ui.factor
index 12565235ab..e7f412630c 100755
--- a/extra/ui/ui.factor
+++ b/extra/ui/ui.factor
@@ -29,8 +29,9 @@ SYMBOL: windows
     windows global [ [ first = not ] with filter ] change-at ;
 
 : raised-window ( world -- )
-    windows get-global [ second eq? ] with find drop
-    windows get-global [ length 1- ] keep exchange ;
+    windows get-global
+    [ [ second eq? ] with find drop ] keep
+    [ nth ] [ delete-nth ] [ nip ] 2tri push ;
 
 : focus-gestures ( new old -- )
     drop-prefix <reversed>

From b1566be8448a392ebcdaa9c6dc62426bb456bb53 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Fri, 9 May 2008 09:05:52 -0500
Subject: [PATCH 2/9] time: Update docs and stack effect for 'benchmark'

---
 extra/tools/time/time-docs.factor | 3 ++-
 extra/tools/time/time.factor      | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/extra/tools/time/time-docs.factor b/extra/tools/time/time-docs.factor
index c0afa920c4..5fedba1700 100644
--- a/extra/tools/time/time-docs.factor
+++ b/extra/tools/time/time-docs.factor
@@ -14,7 +14,8 @@ ARTICLE: "timing" "Timing code"
 ABOUT: "timing"
 
 HELP: benchmark
-{ $values { "quot" "a quotation" } { "gctime" "an integer denoting milliseconds" } { "runtime" "an integer denoting milliseconds" } }
+{ $values { "quot" "a quotation" }
+          { "runtime" "an integer denoting milliseconds" } }
 { $description "Runs a quotation, measuring the total wall clock time and the total time spent in the garbage collector." }
 { $notes "A nicer word for interactive use is " { $link time } "." } ;
 
diff --git a/extra/tools/time/time.factor b/extra/tools/time/time.factor
index 0a0121c74e..82d3491743 100644
--- a/extra/tools/time/time.factor
+++ b/extra/tools/time/time.factor
@@ -4,7 +4,7 @@ USING: kernel math math.vectors memory io io.styles prettyprint
 namespaces system sequences splitting assocs strings ;
 IN: tools.time
 
-: benchmark ( quot -- gctime runtime )
+: benchmark ( quot -- runtime )
     millis >r call millis r> - ; inline
 
 : simple-table. ( values -- )

From 83c4f87a2fdfdd36c725f89b4d72873078fe4ae1 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Fri, 9 May 2008 09:11:46 -0500
Subject: [PATCH 3/9] builder: Update for new 'benchmark' effect

---
 extra/builder/test/test.factor | 4 ++--
 extra/builder/util/util.factor | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/extra/builder/test/test.factor b/extra/builder/test/test.factor
index 957af28dc1..0bf8922a27 100644
--- a/extra/builder/test/test.factor
+++ b/extra/builder/test/test.factor
@@ -26,8 +26,8 @@ IN: builder.test
 
 : do-all ( -- )
   bootstrap-time get   "../boot-time" utf8 [ . ] with-file-writer
-  [ do-load  ] runtime "../load-time" utf8 [ . ] with-file-writer
-  [ do-tests ] runtime "../test-time" utf8 [ . ] with-file-writer
+  [ do-load  ] benchmark "../load-time" utf8 [ . ] with-file-writer
+  [ do-tests ] benchmark "../test-time" utf8 [ . ] with-file-writer
   do-help-lint
   do-benchmarks ;
 
diff --git a/extra/builder/util/util.factor b/extra/builder/util/util.factor
index c40efaaa04..5eac98d3bc 100644
--- a/extra/builder/util/util.factor
+++ b/extra/builder/util/util.factor
@@ -12,7 +12,7 @@ IN: builder.util
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: runtime ( quot -- time ) benchmark nip ;
+: runtime ( quot -- time ) benchmark ;
 
 : minutes>ms ( min -- ms ) 60 * 1000 * ;
 

From 3f1a2224b1168a327016d892bbf4751b973ef11e Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Fri, 9 May 2008 10:00:24 -0500
Subject: [PATCH 4/9] builder.test: minor fix

---
 extra/builder/test/test.factor | 1 +
 1 file changed, 1 insertion(+)

diff --git a/extra/builder/test/test.factor b/extra/builder/test/test.factor
index 0bf8922a27..2a0769f278 100644
--- a/extra/builder/test/test.factor
+++ b/extra/builder/test/test.factor
@@ -3,6 +3,7 @@ USING: kernel namespaces assocs
        io.files io.encodings.utf8 prettyprint 
        help.lint
        benchmark
+       tools.time
        bootstrap.stage2
        tools.test tools.vocabs
        builder.util ;

From 8babbe05d9b56d3aacb257b34c0aeb8a42de809b Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Fri, 9 May 2008 14:36:33 -0500
Subject: [PATCH 5/9] builder.util: Remove 'runtime' (use benchmark instead)

---
 extra/builder/util/util.factor | 2 --
 1 file changed, 2 deletions(-)

diff --git a/extra/builder/util/util.factor b/extra/builder/util/util.factor
index 5eac98d3bc..f9ab6c1d1d 100644
--- a/extra/builder/util/util.factor
+++ b/extra/builder/util/util.factor
@@ -12,8 +12,6 @@ IN: builder.util
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: runtime ( quot -- time ) benchmark ;
-
 : minutes>ms ( min -- ms ) 60 * 1000 * ;
 
 : file>string ( file -- string ) utf8 file-contents ;

From ec31bfe25390505a0dcab97b704a0a739131e313 Mon Sep 17 00:00:00 2001
From: "U-SLAVA-DFB8FF805\\Slava" <Slava@slava-dfb8ff805.(none)>
Date: Fri, 9 May 2008 16:22:34 -0500
Subject: [PATCH 6/9] Get windows.com.wrapper to load

---
 extra/windows/com/wrapper/wrapper.factor | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 mode change 100644 => 100755 extra/windows/com/wrapper/wrapper.factor

diff --git a/extra/windows/com/wrapper/wrapper.factor b/extra/windows/com/wrapper/wrapper.factor
old mode 100644
new mode 100755
index 7f63f529a6..ae5f03a594
--- a/extra/windows/com/wrapper/wrapper.factor
+++ b/extra/windows/com/wrapper/wrapper.factor
@@ -29,7 +29,7 @@ unless
             >r find-com-interface-definition family-tree
             r> 1quotation [ >r iid>> r> 2array ] curry map
         ] map-index concat
-        [ f ] add ,
+        [ f ] prefix ,
         \ case ,
         "void*" heap-size
         [ * rot <displaced-alien> com-add-ref 0 rot set-void*-nth S_OK ]
@@ -99,7 +99,7 @@ unless
 PRIVATE>
 
 : <com-wrapper> ( implementations -- wrapper )
-    (make-vtbls) f com-wrapper construct-boa ;
+    (make-vtbls) f com-wrapper boa ;
 
 M: com-wrapper dispose
     t >>freed?

From 6d7fbff00ba704bde127fad6e105a8e816f0d085 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Fri, 9 May 2008 16:24:01 -0500
Subject: [PATCH 7/9] unix.ffi: Add utime

---
 extra/unix/ffi/ffi.factor | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/extra/unix/ffi/ffi.factor b/extra/unix/ffi/ffi.factor
index 11a8405b1d..ec3daab880 100644
--- a/extra/unix/ffi/ffi.factor
+++ b/extra/unix/ffi/ffi.factor
@@ -3,4 +3,10 @@ USING: alien.syntax ;
 
 IN: unix.ffi
 
-FUNCTION: int open ( char* path, int flags, int prot ) ;
\ No newline at end of file
+FUNCTION: int open ( char* path, int flags, int prot ) ;
+
+C-STRUCT: utimbuf
+    { "time_t" "actime"  }
+    { "time_t" "modtime" } ;
+
+FUNCTION: int utime ( char* path, utimebuf* buf ) ;
\ No newline at end of file

From 2b7bd1a8e1136755f190728546118fe7e5076631 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Fri, 9 May 2008 16:24:17 -0500
Subject: [PATCH 8/9] unix: Add high-level 'utime'

---
 extra/unix/unix.factor | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/extra/unix/unix.factor b/extra/unix/unix.factor
index bc3e3ca162..fcbd96177b 100755
--- a/extra/unix/unix.factor
+++ b/extra/unix/unix.factor
@@ -86,6 +86,12 @@ ERROR: open-error path flags prot message ;
     3dup unix.ffi:open
     dup 0 >= [ >r 3drop r> ] [ drop err_no strerror open-error ] if ;
 
+ERROR: utime-error path message ;
+
+: utime ( path buf -- )
+    dupd unix.ffi:utime
+    0 = [ drop ] [ err_no strerror utime-error ] if ;
+
 FUNCTION: int pclose ( void* file ) ;
 FUNCTION: int pipe ( int* filedes ) ;
 FUNCTION: void* popen ( char* command, char* type ) ;

From e0ddb3d0eb9b58ffcdf9756edb19e29eef7798bb Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Fri, 9 May 2008 16:24:58 -0500
Subject: [PATCH 9/9] io.unix.files: New version of touch-file

---
 extra/io/unix/files/files.factor | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/extra/io/unix/files/files.factor b/extra/io/unix/files/files.factor
index a09ebb46c9..b361974a20 100755
--- a/extra/io/unix/files/files.factor
+++ b/extra/io/unix/files/files.factor
@@ -45,9 +45,10 @@ M: unix (file-appender) ( path -- stream )
 
 M: unix touch-file ( path -- )
     normalize-path
-    touch-mode file-mode open
-    dup 0 < [ err_no EEXIST = [ err_no io-error ] unless ] when
-    close ;
+    dup exists?
+        [ f utime ]
+        [ touch-mode file-mode open close ]
+    if ;
 
 M: unix move-file ( from to -- )
     [ normalize-path ] bi@ rename io-error ;