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 ;