New benchmarks and UI improvements
parent
cfa7c3771c
commit
27c9b31288
|
@ -0,0 +1,10 @@
|
|||
USING: io.crc32 io.files kernel math ;
|
||||
IN: benchmark.crc32
|
||||
|
||||
: crc32-primes-list ( -- )
|
||||
10 [
|
||||
"extra/math/primes/list/list.factor" resource-path
|
||||
file-contents crc32 drop
|
||||
] times ;
|
||||
|
||||
MAIN: crc32-primes-list
|
|
@ -0,0 +1,7 @@
|
|||
USING: crypto.md5 io.files kernel ;
|
||||
IN: benchmark.md5
|
||||
|
||||
: md5-primes-list ( -- )
|
||||
"extra/math/primes/list/list.factor" resource-path file>md5 drop ;
|
||||
|
||||
MAIN: md5-primes-list
|
|
@ -0,0 +1,14 @@
|
|||
USING: io.files random math.parser io math ;
|
||||
IN: benchmark.random
|
||||
|
||||
: random-numbers-path "random-numbers.txt" temp-file ;
|
||||
|
||||
: write-random-numbers ( n -- )
|
||||
random-numbers-path [
|
||||
[ 200 random 100 - number>string print ] times
|
||||
] with-file-writer ;
|
||||
|
||||
: random-main ( -- )
|
||||
1000000 write-random-numbers ;
|
||||
|
||||
MAIN: random-main
|
|
@ -1,7 +1,8 @@
|
|||
USING: kernel sequences sorting random ;
|
||||
USING: kernel sequences sorting benchmark.random math.parser
|
||||
io.files ;
|
||||
IN: benchmark.sort
|
||||
|
||||
: sort-benchmark
|
||||
100000 [ drop 100000 random ] map natural-sort drop ;
|
||||
random-numbers-path file-lines [ string>number ] map natural-sort drop ;
|
||||
|
||||
MAIN: sort-benchmark
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
USING: io io.files math math.parser kernel prettyprint ;
|
||||
USING: io io.files math math.parser kernel prettyprint
|
||||
benchmark.random ;
|
||||
IN: benchmark.sum-file
|
||||
|
||||
: sum-file-loop ( n -- n' )
|
||||
|
@ -8,6 +9,6 @@ IN: benchmark.sum-file
|
|||
[ 0 sum-file-loop ] with-file-reader . ;
|
||||
|
||||
: sum-file-main ( -- )
|
||||
home "sum-file-in.txt" path+ sum-file ;
|
||||
random-numbers-path sum-file ;
|
||||
|
||||
MAIN: sum-file-main
|
||||
|
|
|
@ -199,6 +199,7 @@ ARTICLE: "tools" "Developer tools"
|
|||
"Debugging tools:"
|
||||
{ $subsection "tools.annotations" }
|
||||
{ $subsection "tools.test" }
|
||||
{ $subsection "tools.threads" }
|
||||
"Performance tools:"
|
||||
{ $subsection "tools.memory" }
|
||||
{ $subsection "profiling" }
|
||||
|
|
|
@ -122,18 +122,31 @@ M: word set-article-parent swap "help-parent" set-word-prop ;
|
|||
|
||||
: (:help-multi)
|
||||
"This error has multiple delegates:" print
|
||||
($index) nl ;
|
||||
($index) nl
|
||||
"Use \\ ... help to get help about a specific delegate." print ;
|
||||
|
||||
: (:help-none)
|
||||
drop "No help for this error. " print ;
|
||||
|
||||
: (:help-debugger)
|
||||
nl
|
||||
"Debugger commands:" print
|
||||
nl
|
||||
":help - documentation for this error" print
|
||||
":s - data stack at exception time" print
|
||||
":r - retain stack at exception time" print
|
||||
":c - call stack at exception time" print
|
||||
":edit - jump to source location (parse errors only)" print
|
||||
|
||||
":get ( var -- value ) accesses variables at time of the error" print ;
|
||||
|
||||
: :help ( -- )
|
||||
error get delegates [ error-help ] map [ ] subset
|
||||
{
|
||||
{ [ dup empty? ] [ (:help-none) ] }
|
||||
{ [ dup length 1 = ] [ first help ] }
|
||||
{ [ t ] [ (:help-multi) ] }
|
||||
} cond ;
|
||||
} cond (:help-debugger) ;
|
||||
|
||||
: remove-article ( name -- )
|
||||
dup articles get key? [
|
||||
|
|
|
@ -17,7 +17,7 @@ SYMBOL: +gl-function-pointers+
|
|||
: reset-gl-function-pointers ( -- )
|
||||
100 <hashtable> +gl-function-pointers+ set-global ;
|
||||
|
||||
[ reset-gl-function-pointers ] "opengl.gl init hook" add-init-hook
|
||||
[ reset-gl-function-pointers ] "opengl.gl" add-init-hook
|
||||
reset-gl-function-pointers
|
||||
reset-gl-function-number-counter
|
||||
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
IN: tools.threads
|
||||
USING: help.markup help.syntax threads ;
|
||||
|
||||
HELP: threads.
|
||||
{ $description "Prints a list of running threads and their state. The ``Waiting on'' column displays one of the following:"
|
||||
{ $list
|
||||
"``running'' if the thread is the current thread"
|
||||
"``yield'' if the thread is waiting to run"
|
||||
{ "the string given to " { $link suspend } " if the thread is suspended" }
|
||||
}
|
||||
} ;
|
||||
|
||||
ARTICLE: "tools.threads" "Listing threads"
|
||||
"Printing a list of running threads:"
|
||||
{ $subsection threads. } ;
|
||||
|
||||
ABOUT: "tools.threads"
|
|
@ -88,7 +88,6 @@ TUPLE: repeat-button ;
|
|||
|
||||
repeat-button H{
|
||||
{ T{ drag } [ button-clicked ] }
|
||||
{ T{ button-down } [ button-clicked ] }
|
||||
} set-gestures
|
||||
|
||||
: <repeat-button> ( label quot -- button )
|
||||
|
|
|
@ -40,9 +40,14 @@ M: listener-gadget call-tool* ( input listener -- )
|
|||
M: listener-gadget tool-scroller
|
||||
listener-gadget-output find-scroller ;
|
||||
|
||||
: wait-for-listener ( listener -- )
|
||||
#! Wait for the listener to start.
|
||||
listener-gadget-input interactor-flag wait-for-flag ;
|
||||
|
||||
: workspace-busy? ( workspace -- ? )
|
||||
workspace-listener listener-gadget-input
|
||||
interactor-busy? ;
|
||||
workspace-listener
|
||||
dup wait-for-listener
|
||||
listener-gadget-input interactor-busy? ;
|
||||
|
||||
: get-listener ( -- listener )
|
||||
[ workspace-busy? not ] get-workspace* workspace-listener ;
|
||||
|
@ -134,10 +139,6 @@ M: stack-display tool-scroller
|
|||
: start-listener-thread ( listener -- )
|
||||
[ listener-thread ] curry "Listener" spawn drop ;
|
||||
|
||||
: wait-for-listener ( listener -- )
|
||||
#! Wait for the listener to start.
|
||||
listener-gadget-input interactor-flag wait-for-flag ;
|
||||
|
||||
: restart-listener ( listener -- )
|
||||
#! Returns when listener is ready to receive input.
|
||||
dup com-end dup clear-output
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
! Copyright (C) 2006, 2007 Slava Pestov.
|
||||
! Copyright (C) 2006, 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays assocs debugger ui.tools.workspace
|
||||
ui.tools.operations ui.tools.browser ui.tools.inspector
|
||||
ui.tools.listener ui.tools.profiler
|
||||
ui.tools.operations ui.tools.traceback ui.tools.browser
|
||||
ui.tools.inspector ui.tools.listener ui.tools.profiler
|
||||
ui.tools.operations inspector io kernel math models namespaces
|
||||
prettyprint quotations sequences ui ui.commands ui.gadgets
|
||||
ui.gadgets.books ui.gadgets.buttons
|
||||
ui.gadgets.labelled ui.gadgets.scrollers ui.gadgets.tracks
|
||||
ui.gadgets.worlds ui.gadgets.presentations ui.gestures words
|
||||
vocabs.loader tools.test ui.gadgets.buttons
|
||||
ui.gadgets.status-bar mirrors ;
|
||||
ui.gadgets.books ui.gadgets.buttons ui.gadgets.labelled
|
||||
ui.gadgets.scrollers ui.gadgets.tracks ui.gadgets.worlds
|
||||
ui.gadgets.presentations ui.gestures words vocabs.loader
|
||||
tools.test ui.gadgets.buttons ui.gadgets.status-bar mirrors ;
|
||||
IN: ui.tools
|
||||
|
||||
: <workspace-tabs> ( -- tabs )
|
||||
|
@ -83,7 +82,13 @@ workspace "workflow" f {
|
|||
} define-command-map
|
||||
|
||||
[
|
||||
<workspace>
|
||||
dup "Factor workspace" open-status-window
|
||||
workspace-listener wait-for-listener
|
||||
<workspace> "Factor workspace" open-status-window
|
||||
] workspace-window-hook set-global
|
||||
|
||||
: inspect-continuation ( traceback -- )
|
||||
control-value [ inspect ] curry call-listener ;
|
||||
|
||||
traceback-gadget "toolbar" f {
|
||||
{ T{ key-down f f "v" } variables }
|
||||
{ T{ key-down f f "n" } inspect-continuation }
|
||||
} define-command-map
|
||||
|
|
|
@ -54,7 +54,3 @@ M: variables-gadget pref-dim* drop { 400 400 } ;
|
|||
|
||||
: traceback-window ( continuation -- )
|
||||
<model> <traceback-gadget> "Traceback" open-window ;
|
||||
|
||||
traceback-gadget "toolbar" f {
|
||||
{ T{ key-down f f "v" } variables }
|
||||
} define-command-map
|
||||
|
|
|
@ -7,7 +7,7 @@ ui.tools.workspace ui.gestures ui.gadgets.labels ui threads
|
|||
namespaces tools.walker assocs ;
|
||||
IN: ui.tools.walker
|
||||
|
||||
TUPLE: walker-gadget status continuation thread ;
|
||||
TUPLE: walker-gadget status continuation thread traceback ;
|
||||
|
||||
: walker-command ( walker msg -- )
|
||||
over walker-gadget-thread thread-registered?
|
||||
|
@ -29,6 +29,9 @@ TUPLE: walker-gadget status continuation thread ;
|
|||
M: walker-gadget ungraft*
|
||||
dup delegate ungraft* detach walker-command ;
|
||||
|
||||
M: walker-gadget focusable-child*
|
||||
walker-gadget-traceback ;
|
||||
|
||||
: walker-state-string ( status thread -- string )
|
||||
[
|
||||
"Thread: " %
|
||||
|
@ -48,10 +51,10 @@ M: walker-gadget ungraft*
|
|||
[ walker-state-string ] curry <filter> <label-control> ;
|
||||
|
||||
: <walker-gadget> ( status continuation thread -- gadget )
|
||||
walker-gadget construct-boa [
|
||||
over <traceback-gadget> walker-gadget construct-boa [
|
||||
toolbar,
|
||||
g walker-gadget-status self <thread-status> f track,
|
||||
g walker-gadget-continuation <traceback-gadget> 1 track,
|
||||
g walker-gadget-traceback 1 track,
|
||||
] { 0 1 } build-track ;
|
||||
|
||||
: walker-help "ui-walker" help-window ;
|
||||
|
|
Loading…
Reference in New Issue