From 3bdc84a07ab33fd6bccabbf5304a8d98703aa5fb Mon Sep 17 00:00:00 2001 From: Erik Charlebois Date: Sun, 14 Feb 2010 23:41:44 -0800 Subject: [PATCH 01/62] Fix D3D9 constants that I punted on calculating initially. --- .../directx/d3d9types/d3d9types.factor | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/basis/windows/directx/d3d9types/d3d9types.factor b/basis/windows/directx/d3d9types/d3d9types.factor index 9f4358f658..dc02849553 100644 --- a/basis/windows/directx/d3d9types/d3d9types.factor +++ b/basis/windows/directx/d3d9types/d3d9types.factor @@ -900,12 +900,6 @@ CONSTANT: D3DMULTISAMPLE_14_SAMPLES 14 CONSTANT: D3DMULTISAMPLE_15_SAMPLES 15 CONSTANT: D3DMULTISAMPLE_16_SAMPLES 16 CONSTANT: D3DMULTISAMPLE_FORCE_DWORD HEX: 7fffffff - -:: MAKEFOURCC ( ch0 ch1 ch2 ch3 -- n ) - ch3 HEX: ff bitand 24 shift - ch2 HEX: ff bitand 16 shift - ch1 HEX: ff bitand 8 shift - ch0 HEX: ff bitand bitor bitor bitor ; inline TYPEDEF: int D3DFORMAT CONSTANT: D3DFMT_UNKNOWN 0 @@ -937,15 +931,15 @@ CONSTANT: D3DFMT_X8L8V8U8 62 CONSTANT: D3DFMT_Q8W8V8U8 63 CONSTANT: D3DFMT_V16U16 64 CONSTANT: D3DFMT_A2W10V10U10 67 -#! : D3DFMT_UYVY ( -- n ) 'U' 'Y' 'V' 'Y' MAKEFOURCC -#! D3DFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'), -#! D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'), -#! D3DFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'), -#! D3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'), -#! D3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'), -#! D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'), -#! D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'), -#! D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'), +CONSTANT: D3DFMT_UYVY HEX: 55595659 +CONSTANT: D3DFMT_R8G8_B8G8 HEX: 52474247 +CONSTANT: D3DFMT_YUY2 HEX: 59555932 +CONSTANT: D3DFMT_G8R8_G8B8 HEX: 47524742 +CONSTANT: D3DFMT_DXT1 HEX: 44585431 +CONSTANT: D3DFMT_DXT2 HEX: 44585432 +CONSTANT: D3DFMT_DXT3 HEX: 44585433 +CONSTANT: D3DFMT_DXT4 HEX: 44585434 +CONSTANT: D3DFMT_DXT5 HEX: 44585435 CONSTANT: D3DFMT_D16_LOCKABLE 70 CONSTANT: D3DFMT_D32 71 CONSTANT: D3DFMT_D15S1 73 @@ -962,7 +956,7 @@ CONSTANT: D3DFMT_VERTEXDATA 100 CONSTANT: D3DFMT_INDEX16 101 CONSTANT: D3DFMT_INDEX32 102 CONSTANT: D3DFMT_Q16W16V16U16 110 -#! D3DFMT_MULTI2_ARGB8 = MAKEFOURCC('M', 'E', 'T', '1'), +CONSTANT: D3DFMT_MULTI2_ARGB8 HEX: 4d455431 CONSTANT: D3DFMT_R16F 111 CONSTANT: D3DFMT_G16R16F 112 CONSTANT: D3DFMT_A16B16G16R16F 113 From d8c452270596bad65be18dc58295a1635379ca05 Mon Sep 17 00:00:00 2001 From: Erik Charlebois Date: Tue, 16 Feb 2010 03:14:30 -0800 Subject: [PATCH 02/62] Fix docs typo --- basis/command-line/command-line-docs.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/command-line/command-line-docs.factor b/basis/command-line/command-line-docs.factor index 11ee46c227..9a69614766 100644 --- a/basis/command-line/command-line-docs.factor +++ b/basis/command-line/command-line-docs.factor @@ -91,7 +91,7 @@ ARTICLE: "standard-cli-args" "Command line switches for general usage" } ; ARTICLE: "factor-boot-rc" "Bootstrap initialization file" -"The botstrap initialization file is named " { $snippet "factor-boot-rc" } " on Windows and " { $snippet ".factor-boot-rc" } " on Unix. This file can contain " { $link require } " calls for vocabularies you use frequently, and other such long-running tasks that you do not want to perform every time Factor starts." +"The bootstrap initialization file is named " { $snippet "factor-boot-rc" } " on Windows and " { $snippet ".factor-boot-rc" } " on Unix. This file can contain " { $link require } " calls for vocabularies you use frequently, and other such long-running tasks that you do not want to perform every time Factor starts." $nl "A word to run this file from an existing Factor session:" { $subsections run-bootstrap-init } From c8192adf7113c996adb546c4e8a3fe8619b0ba08 Mon Sep 17 00:00:00 2001 From: Erik Charlebois Date: Tue, 16 Feb 2010 03:25:03 -0800 Subject: [PATCH 03/62] Fix some doc typos, metadata --- basis/db/tuples/tuples-docs.factor | 2 +- core/classes/tuple/tuple-docs.factor | 2 +- extra/chipmunk/summary.txt | 2 +- extra/chipmunk/tags.txt | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 extra/chipmunk/tags.txt diff --git a/basis/db/tuples/tuples-docs.factor b/basis/db/tuples/tuples-docs.factor index 01d65484f3..ebf86371a7 100644 --- a/basis/db/tuples/tuples-docs.factor +++ b/basis/db/tuples/tuples-docs.factor @@ -267,7 +267,7 @@ T{ book { $list "Make a new tuple to represent your data" { "Map the Factor types to the database types with " { $link define-persistent } } - { "Make a custom database combinator (see" { $link "db-custom-database-combinators" } ") to open your database and run a " { $link quotation } } + { "Make a custom database combinator (see " { $link "db-custom-database-combinators" } ") to open your database and run a " { $link quotation } } { "Create a table with " { $link create-table } ", " { $link ensure-table } ", or " { $link recreate-table } } { "Start making and storing objects with " { $link insert-tuple } ", " { $link update-tuple } ", " { $link delete-tuples } ", and " { $link select-tuples } } } ; diff --git a/core/classes/tuple/tuple-docs.factor b/core/classes/tuple/tuple-docs.factor index 2b3e80da1d..0fd7907492 100644 --- a/core/classes/tuple/tuple-docs.factor +++ b/core/classes/tuple/tuple-docs.factor @@ -440,4 +440,4 @@ HELP: boa { $values { "..." "slot values" } { "class" tuple-class } { "tuple" tuple } } { $description "Creates a new instance of " { $snippet "class" } " and fill in the slots from the stack, with the top-most stack element being stored in the right-most slot." } { $notes "The name " { $snippet "boa" } " is shorthand for “by order of arguments”, and “BOA constructor” is a pun on “boa constrictor”." } -{ $errors "Throws an error if the slot values do not match class declarations on slots (see" { $link "tuple-declarations" } ")." } ; +{ $errors "Throws an error if the slot values do not match class declarations on slots (see " { $link "tuple-declarations" } ")." } ; diff --git a/extra/chipmunk/summary.txt b/extra/chipmunk/summary.txt index ebc56a79ed..2859b353f2 100644 --- a/extra/chipmunk/summary.txt +++ b/extra/chipmunk/summary.txt @@ -1 +1 @@ -FFI bindings to the Chipmunk 2D physics library. +Chipmunk 2D physics library binding diff --git a/extra/chipmunk/tags.txt b/extra/chipmunk/tags.txt new file mode 100644 index 0000000000..bb863cf9a0 --- /dev/null +++ b/extra/chipmunk/tags.txt @@ -0,0 +1 @@ +bindings From 941c09d73a1f5d571a6a39255e03e0b896302c83 Mon Sep 17 00:00:00 2001 From: Erik Charlebois Date: Tue, 16 Feb 2010 03:26:36 -0800 Subject: [PATCH 04/62] Splines: catmull-rom, bezier curve, cubic hermite, kochanek-bartels --- extra/math/splines/authors.txt | 1 + extra/math/splines/splines-docs.factor | 44 ++++++++++++ extra/math/splines/splines.factor | 84 +++++++++++++++++++++++ extra/math/splines/summary.txt | 1 + extra/math/splines/testing/authors.txt | 1 + extra/math/splines/testing/testing.factor | 49 +++++++++++++ extra/math/splines/viewer/authors.txt | 1 + extra/math/splines/viewer/viewer.factor | 49 +++++++++++++ 8 files changed, 230 insertions(+) create mode 100644 extra/math/splines/authors.txt create mode 100644 extra/math/splines/splines-docs.factor create mode 100644 extra/math/splines/splines.factor create mode 100644 extra/math/splines/summary.txt create mode 100644 extra/math/splines/testing/authors.txt create mode 100644 extra/math/splines/testing/testing.factor create mode 100644 extra/math/splines/viewer/authors.txt create mode 100644 extra/math/splines/viewer/viewer.factor diff --git a/extra/math/splines/authors.txt b/extra/math/splines/authors.txt new file mode 100644 index 0000000000..6f03a12101 --- /dev/null +++ b/extra/math/splines/authors.txt @@ -0,0 +1 @@ +Erik Charlebois diff --git a/extra/math/splines/splines-docs.factor b/extra/math/splines/splines-docs.factor new file mode 100644 index 0000000000..62ff1418cd --- /dev/null +++ b/extra/math/splines/splines-docs.factor @@ -0,0 +1,44 @@ +! Copyright (C) 2010 Erik Charlebois. +! See http://factorcode.org/license.txt for BSD license. +USING: help.markup help.syntax math ; +IN: math.splines + +HELP: +{ $values + { "control-points" "sequence of control points same dimension" } + { "polynomials" "sequence of polynomials for each dimension" } +} +{ $description "Creates bezier curve polynomials for the given control points." } ; + +HELP: +{ $values + { "points" "points on the spline" } { "m0" "initial tangent vector" } { "mn" "final tangent vector" } + { "polynomials-sequence" "sequence of sequences of polynomials" } +} +{ $description "Creates a sequence of cubic hermite curves (each a sequence of polynomials) passing through the given points and generating tangents for C1 continuity." } ; + +HELP: +{ $values + { "p0" "start point" } { "m0" "start tangent" } { "p1" "end point" } { "m1" "end tangent" } + { "polynomials" "sequence of polynomials" } +} +{ $description "Creates a sequence of polynomials (one per dimension) for the curve passing through " { $emphasis "p0" } " and " { $emphasis "p1" } "." } ; + +HELP: +{ $values + { "point-tangent-pairs" "sequence of point and tangent pairs" } + { "polynomials-sequence" "sequence of sequences of polynomials" } +} +{ $description "Creates a sequence of cubic hermite curves (each a sequence of polynomials) passing through the given points with the given tangents." } ; + +HELP: +{ $values + { "points" "points on the spline" } { "m0" "start tangent" } { "mn" "end tangent" } { "tension" number } { "bias" number } { "continuity" number } + { "polynomials-sequence" "sequence of sequence of polynomials" } +} +{ $description "Creates a sequence of cubic hermite curves (each a sequence of polynomials) passing through the given points, generating tangents with the given tuning parameters." } ; + +ARTICLE: "math.splines" "Common parametric curves." +"The curve creating functions create sequences of polynomials, one for each degree of the input points. The spline creating functions create sequences of these curve polynomial sequences. The " { $vocab-link "math.splines.viewer" } " vocabulary provides a gadget to evaluate the generated polynomials and view the results."; + +ABOUT: "math.splines" diff --git a/extra/math/splines/splines.factor b/extra/math/splines/splines.factor new file mode 100644 index 0000000000..dc22224416 --- /dev/null +++ b/extra/math/splines/splines.factor @@ -0,0 +1,84 @@ +! Copyright (C) 2010 Erik Charlebois +! See http://factorcode.org/license.txt for BSD license. +USING: accessors combinators kernel locals math math.combinatorics +math.polynomials opengl.gl sequences ui.gadgets ui.gadgets.panes +ui.render arrays grouping math.vectors assocs +ui.gestures ; +IN: math.splines + + ( pi-1 pi pi+1 ) + pi pi-1 v- c1 v*n + pi+1 pi v- c2 v*n v+ + ] map + m0 prefix + mn suffix ; +PRIVATE> + +:: ( control-points -- polynomials ) + control-points + [ length 1 - ] + [ first length [ { 0 } ] replicate ] + bi :> ( n acc ) + + control-points [| pt i | + n i bernstein-polynomial-ith :> poly + pt [| v j | + j acc [ v poly n*p p+ ] change-nth + ] each-index + ] each-index + acc ; + +:: ( p0 m0 p1 m1 -- polynomials ) + p0 length iota [ + { + [ p0 nth ] [ m0 nth ] + [ p1 nth ] [ m1 nth ] + } cleave + hermite-polynomial + ] map ; + + + ] map ; +PRIVATE> + +: ( point-tangent-pairs -- polynomials-sequence ) + 2 clump [ first2 [ first2 ] bi@ ] map ; + +:: ( points m0 mn tension bias continuity -- polynomials-sequence ) + tension bias continuity kochanek-bartels-coefficients :> ( s1 d1 s2 d2 ) + points m0 mn + [ s1 s2 kochanek-bartels-tangents ] + [ d1 d2 kochanek-bartels-tangents ] 3bi :> ( in out ) + points in out [ 3array ] 3map (cubic-hermite-spline) ; + +: ( points m0 mn -- polynomials-sequence ) + 0 0 0 ; diff --git a/extra/math/splines/summary.txt b/extra/math/splines/summary.txt new file mode 100644 index 0000000000..229b05edc9 --- /dev/null +++ b/extra/math/splines/summary.txt @@ -0,0 +1 @@ +Common parametric curves diff --git a/extra/math/splines/testing/authors.txt b/extra/math/splines/testing/authors.txt new file mode 100644 index 0000000000..67cf648cf5 --- /dev/null +++ b/extra/math/splines/testing/authors.txt @@ -0,0 +1 @@ +Erik Charlebois \ No newline at end of file diff --git a/extra/math/splines/testing/testing.factor b/extra/math/splines/testing/testing.factor new file mode 100644 index 0000000000..bbb5cd6a6a --- /dev/null +++ b/extra/math/splines/testing/testing.factor @@ -0,0 +1,49 @@ +! Copyright (C) 2010 Erik Charlebois. +! See http://factorcode.org/license.txt for BSD license. +USING: locals math.splines math.splines.viewer arrays ; +IN: math.splines.testing + +: test1 ( -- ) + { + { { 0 0 } { 0 200 } } + { { 100 50 } { 0 -200 } } + { { 300 300 } { 500 200 } } + { { 400 400 } { 300 0 } } + } { 50 100 } 4 spline. ; + +: test2 ( -- ) + { + { 50 50 } + { 100 100 } + { 300 200 } + { 350 0 } + { 400 400 } + } { 0 100 } { 100 0 } { 100 50 } 50 spline. ; + +:: test3 ( x y z -- ) + { + { 100 50 } + { 200 350 } + { 300 50 } + } { 0 100 } { 0 -100 } x y z { 50 50 } 1000 spline. ; + +: test4 ( -- ) + { + { 0 5 } + { 0.5 3 } + { 10 10 } + { 12 4 } + { 15 5 } + } 1array { 100 100 } 100 spline. ; + +: test-splines ( -- ) + test1 test2 + 1 0 0 test3 + -1 0 0 test3 + 0 1 0 test3 + 0 -1 0 test3 + 0 0 1 test3 + 0 0 -1 test3 + test4 ; + + diff --git a/extra/math/splines/viewer/authors.txt b/extra/math/splines/viewer/authors.txt new file mode 100644 index 0000000000..67cf648cf5 --- /dev/null +++ b/extra/math/splines/viewer/authors.txt @@ -0,0 +1 @@ +Erik Charlebois \ No newline at end of file diff --git a/extra/math/splines/viewer/viewer.factor b/extra/math/splines/viewer/viewer.factor new file mode 100644 index 0000000000..f1ec1a2445 --- /dev/null +++ b/extra/math/splines/viewer/viewer.factor @@ -0,0 +1,49 @@ +! Copyright (C) 2010 Erik Charlebois. +! See http://factorcode.org/license.txt for BSD license. +USING: accessors kernel locals math math.order math.polynomials +math.splines opengl.gl sequences ui.gadgets ui.gadgets.panes ui.render +arrays ; +IN: math.splines.viewer + + + +TUPLE: spline-gadget < gadget polynomials steps spline-dim ; + +M: spline-gadget pref-dim* spline-dim>> ; + +M:: spline-gadget draw-gadget* ( gadget -- ) + 0 0 0 glColor3f + + gadget [ polynomials>> ] [ steps>> ] bi eval-polynomials :> pts + + pts [ first ] [ max ] map-reduce :> x-max + pts [ first ] [ min ] map-reduce :> x-min + pts [ second ] [ max ] map-reduce :> y-max + pts [ second ] [ min ] map-reduce :> y-min + + pts [ + [ first x-min - x-max x-min - / gadget spline-dim>> first * ] + [ second y-min - y-max y-min - / gadget spline-dim>> second * ] bi 2array + ] map :> pts + + GL_LINE_STRIP glBegin + pts [ + first2 neg gadget spline-dim>> second + glVertex2f + ] each + glEnd ; + +:: ( polynomials dim steps -- gadget ) + spline-gadget new + dim >>spline-dim + polynomials >>polynomials + steps >>steps ; + +: spline. ( curve dim steps -- ) + gadget. ; From fcbeb3467d39f0bedf022046121a95141ae9ff92 Mon Sep 17 00:00:00 2001 From: Erik Charlebois Date: Tue, 16 Feb 2010 10:33:19 -0800 Subject: [PATCH 05/62] Line endings --- basis/tools/deploy/deploy-tests.factor | 250 ++++++++++++------------- 1 file changed, 125 insertions(+), 125 deletions(-) diff --git a/basis/tools/deploy/deploy-tests.factor b/basis/tools/deploy/deploy-tests.factor index 987b4aa8a1..f76ad7a557 100644 --- a/basis/tools/deploy/deploy-tests.factor +++ b/basis/tools/deploy/deploy-tests.factor @@ -1,125 +1,125 @@ -USING: tools.test system io io.encodings.ascii io.pathnames -io.files io.files.info io.files.temp kernel tools.deploy.config -tools.deploy.config.editor tools.deploy.backend math sequences -io.launcher arrays namespaces continuations layouts accessors -urls math.parser io.directories tools.deploy.test ; -IN: tools.deploy.tests - -[ ] [ "hello-world" shake-and-bake 500000 small-enough? ] unit-test - -[ ] [ "sudoku" shake-and-bake 800000 small-enough? ] unit-test - -[ ] [ "hello-ui" shake-and-bake 1300000 small-enough? ] unit-test - -[ "staging.math-threads-compiler-ui.image" ] [ - "hello-ui" deploy-config - [ bootstrap-profile staging-image-name file-name ] bind -] unit-test - -[ ] [ "maze" shake-and-bake 1200000 small-enough? ] unit-test - -[ ] [ "tetris" shake-and-bake 1500000 small-enough? ] unit-test - -[ ] [ "spheres" shake-and-bake 1500000 small-enough? ] unit-test - -[ ] [ "terrain" shake-and-bake 1700000 small-enough? ] unit-test - -[ ] [ "bunny" shake-and-bake 2500000 small-enough? ] unit-test - -os macosx? [ - [ ] [ "webkit-demo" shake-and-bake 500000 small-enough? ] unit-test -] when - -[ ] [ "benchmark.regex-dna" shake-and-bake 900000 small-enough? ] unit-test - -{ - "tools.deploy.test.1" - "tools.deploy.test.2" - "tools.deploy.test.3" - "tools.deploy.test.4" -} [ - [ ] swap [ - shake-and-bake - run-temp-image - ] curry unit-test -] each - -USING: http.client http.server http.server.dispatchers -http.server.responses http.server.static io.servers.connection ; - -SINGLETON: quit-responder - -M: quit-responder call-responder* - 2drop stop-this-server "Goodbye" "text/html" ; - -: add-quot-responder ( responder -- responder ) - quit-responder "quit" add-responder ; - -: test-httpd ( responder -- ) - [ - main-responder set - - 0 >>insecure - f >>secure - dup start-server* - sockets>> first addr>> port>> - dup number>string "resource:temp/port-number" ascii set-file-contents - ] with-scope - "port" set ; - -[ ] [ - - add-quot-responder - "vocab:http/test" >>default - - test-httpd -] unit-test - -[ ] [ - "tools.deploy.test.5" shake-and-bake - run-temp-image -] unit-test - -: add-port ( url -- url' ) - >url clone "port" get >>port ; - -[ ] [ "http://localhost/quit" add-port http-get 2drop ] unit-test - -{ - "tools.deploy.test.6" - "tools.deploy.test.7" - "tools.deploy.test.9" - "tools.deploy.test.10" - "tools.deploy.test.11" - "tools.deploy.test.12" -} [ - [ ] swap [ - shake-and-bake - run-temp-image - ] curry unit-test -] each - -os windows? os macosx? or [ - [ ] [ "tools.deploy.test.8" shake-and-bake run-temp-image ] unit-test -] when - -os macosx? [ - [ ] [ "tools.deploy.test.14" shake-and-bake run-temp-image ] unit-test -] when - -[ { "a" "b" "c" } ] [ - "tools.deploy.test.15" shake-and-bake deploy-test-command - { "a" "b" "c" } append - ascii [ lines ] with-process-reader - rest -] unit-test - -[ ] [ "tools.deploy.test.16" shake-and-bake run-temp-image ] unit-test - -[ ] [ "tools.deploy.test.17" shake-and-bake run-temp-image ] unit-test - -[ t ] [ - "tools.deploy.test.18" shake-and-bake - deploy-test-command ascii [ readln ] with-process-reader - "test.image" temp-file = -] unit-test +USING: tools.test system io io.encodings.ascii io.pathnames +io.files io.files.info io.files.temp kernel tools.deploy.config +tools.deploy.config.editor tools.deploy.backend math sequences +io.launcher arrays namespaces continuations layouts accessors +urls math.parser io.directories tools.deploy.test ; +IN: tools.deploy.tests + +[ ] [ "hello-world" shake-and-bake 500000 small-enough? ] unit-test + +[ ] [ "sudoku" shake-and-bake 800000 small-enough? ] unit-test + +[ ] [ "hello-ui" shake-and-bake 1300000 small-enough? ] unit-test + +[ "staging.math-threads-compiler-ui.image" ] [ + "hello-ui" deploy-config + [ bootstrap-profile staging-image-name file-name ] bind +] unit-test + +[ ] [ "maze" shake-and-bake 1200000 small-enough? ] unit-test + +[ ] [ "tetris" shake-and-bake 1500000 small-enough? ] unit-test + +[ ] [ "spheres" shake-and-bake 1500000 small-enough? ] unit-test + +[ ] [ "terrain" shake-and-bake 1700000 small-enough? ] unit-test + +[ ] [ "bunny" shake-and-bake 2500000 small-enough? ] unit-test + +os macosx? [ + [ ] [ "webkit-demo" shake-and-bake 500000 small-enough? ] unit-test +] when + +[ ] [ "benchmark.regex-dna" shake-and-bake 900000 small-enough? ] unit-test + +{ + "tools.deploy.test.1" + "tools.deploy.test.2" + "tools.deploy.test.3" + "tools.deploy.test.4" +} [ + [ ] swap [ + shake-and-bake + run-temp-image + ] curry unit-test +] each + +USING: http.client http.server http.server.dispatchers +http.server.responses http.server.static io.servers.connection ; + +SINGLETON: quit-responder + +M: quit-responder call-responder* + 2drop stop-this-server "Goodbye" "text/html" ; + +: add-quot-responder ( responder -- responder ) + quit-responder "quit" add-responder ; + +: test-httpd ( responder -- ) + [ + main-responder set + + 0 >>insecure + f >>secure + dup start-server* + sockets>> first addr>> port>> + dup number>string "resource:temp/port-number" ascii set-file-contents + ] with-scope + "port" set ; + +[ ] [ + + add-quot-responder + "vocab:http/test" >>default + + test-httpd +] unit-test + +[ ] [ + "tools.deploy.test.5" shake-and-bake + run-temp-image +] unit-test + +: add-port ( url -- url' ) + >url clone "port" get >>port ; + +[ ] [ "http://localhost/quit" add-port http-get 2drop ] unit-test + +{ + "tools.deploy.test.6" + "tools.deploy.test.7" + "tools.deploy.test.9" + "tools.deploy.test.10" + "tools.deploy.test.11" + "tools.deploy.test.12" +} [ + [ ] swap [ + shake-and-bake + run-temp-image + ] curry unit-test +] each + +os windows? os macosx? or [ + [ ] [ "tools.deploy.test.8" shake-and-bake run-temp-image ] unit-test +] when + +os macosx? [ + [ ] [ "tools.deploy.test.14" shake-and-bake run-temp-image ] unit-test +] when + +[ { "a" "b" "c" } ] [ + "tools.deploy.test.15" shake-and-bake deploy-test-command + { "a" "b" "c" } append + ascii [ lines ] with-process-reader + rest +] unit-test + +[ ] [ "tools.deploy.test.16" shake-and-bake run-temp-image ] unit-test + +[ ] [ "tools.deploy.test.17" shake-and-bake run-temp-image ] unit-test + +[ t ] [ + "tools.deploy.test.18" shake-and-bake + deploy-test-command ascii [ readln ] with-process-reader + "test.image" temp-file = +] unit-test From 4a182cfbade49380fcd18fd47707bc4d4f8d6044 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 16 Feb 2010 18:40:40 -0800 Subject: [PATCH 06/62] fix append-path and vocab-dir to use path-separator --- core/io/pathnames/pathnames.factor | 2 +- core/vocabs/loader/loader.factor | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/io/pathnames/pathnames.factor b/core/io/pathnames/pathnames.factor index b307128efb..5a9c647973 100644 --- a/core/io/pathnames/pathnames.factor +++ b/core/io/pathnames/pathnames.factor @@ -103,7 +103,7 @@ PRIVATE> ] } [ [ trim-tail-separators ] - [ trim-head-separators ] bi* "/" glue + [ trim-head-separators ] bi* path-separator glue ] } cond ; diff --git a/core/vocabs/loader/loader.factor b/core/vocabs/loader/loader.factor index 2c0f67641d..0f2e3f7178 100644 --- a/core/vocabs/loader/loader.factor +++ b/core/vocabs/loader/loader.factor @@ -35,7 +35,9 @@ M: string vocab-path ( string -- path/f ) PRIVATE> : vocab-dir ( vocab -- dir ) - vocab-name { { CHAR: . CHAR: / } } substitute ; + vocab-name + os windows? { { CHAR: . CHAR: \\ } } { { CHAR: . CHAR: / } } ? + substitute ; : vocab-dir+ ( vocab str/f -- path ) [ vocab-name "." split ] dip From f59f28d78861dc7aa861f3333eecf7e31075dcfa Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 16 Feb 2010 19:01:44 -0800 Subject: [PATCH 07/62] io.pathnames: make absolute-path? public --- core/io/pathnames/pathnames.factor | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/io/pathnames/pathnames.factor b/core/io/pathnames/pathnames.factor index 5a9c647973..2be66ef186 100644 --- a/core/io/pathnames/pathnames.factor +++ b/core/io/pathnames/pathnames.factor @@ -76,6 +76,8 @@ ERROR: no-parent-directory path ; [ f ] } cond ; +PRIVATE> + : absolute-path? ( path -- ? ) { { [ dup empty? ] [ f ] } @@ -85,8 +87,6 @@ ERROR: no-parent-directory path ; [ f ] } cond nip ; -PRIVATE> - : append-path ( path1 path2 -- path ) { { [ over empty? ] [ append-path-empty ] } From 6ac33f6dea2bbb8f274d14cfa9ff141a4a7cd229 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 16 Feb 2010 19:28:51 -0800 Subject: [PATCH 08/62] make io.pathnames tests path-separator-neutral --- core/io/pathnames/pathnames-tests.factor | 35 +++++++++++++----------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/core/io/pathnames/pathnames-tests.factor b/core/io/pathnames/pathnames-tests.factor index f23a1ac1f4..38cfe330fb 100644 --- a/core/io/pathnames/pathnames-tests.factor +++ b/core/io/pathnames/pathnames-tests.factor @@ -1,6 +1,6 @@ USING: io.pathnames io.files.temp io.directories continuations math io.files.private kernel -namespaces tools.test io.pathnames.private ; +namespaces sequences tools.test io.pathnames.private ; IN: io.pathnames.tests [ "passwd" ] [ "/etc/passwd" file-name ] unit-test @@ -11,20 +11,23 @@ IN: io.pathnames.tests [ "freetype6.dll" ] [ "resource:freetype6.dll" file-name ] unit-test [ "freetype6.dll" ] [ "resource:/freetype6.dll" file-name ] unit-test -[ "/usr/lib" ] [ "/usr" "lib" append-path ] unit-test -[ "/usr/lib" ] [ "/usr/" "lib" append-path ] unit-test -[ "/usr/lib" ] [ "/usr" "./lib" append-path ] unit-test -[ "/usr/lib/" ] [ "/usr" "./lib/" append-path ] unit-test -[ "/lib" ] [ "/usr" "../lib" append-path ] unit-test -[ "/lib/" ] [ "/usr" "../lib/" append-path ] unit-test +: >test-path ( path -- path' ) + [ dup path-separator? [ drop CHAR: / ] when ] map ; + +[ "/usr/lib" ] [ "/usr" "lib" append-path >test-path ] unit-test +[ "/usr/lib" ] [ "/usr/" "lib" append-path >test-path ] unit-test +[ "/usr/lib" ] [ "/usr" "./lib" append-path >test-path ] unit-test +[ "/usr/lib/" ] [ "/usr" "./lib/" append-path >test-path ] unit-test +[ "/lib" ] [ "/usr" "../lib" append-path >test-path ] unit-test +[ "/lib/" ] [ "/usr" "../lib/" append-path >test-path ] unit-test [ "" ] [ "" "." append-path ] unit-test [ "" ".." append-path ] must-fail -[ "/" ] [ "/" "./." append-path ] unit-test -[ "/" ] [ "/" "././" append-path ] unit-test -[ "/a/b/lib" ] [ "/a/b/c/d/e/f/" "../../../../lib" append-path ] unit-test -[ "/a/b/lib/" ] [ "/a/b/c/d/e/f/" "../../../../lib/" append-path ] unit-test +[ "/" ] [ "/" "./." append-path >test-path ] unit-test +[ "/" ] [ "/" "././" append-path >test-path ] unit-test +[ "/a/b/lib" ] [ "/a/b/c/d/e/f/" "../../../../lib" append-path >test-path ] unit-test +[ "/a/b/lib/" ] [ "/a/b/c/d/e/f/" "../../../../lib/" append-path >test-path ] unit-test [ "" "../lib/" append-path ] must-fail [ "lib" ] [ "" "lib" append-path ] unit-test @@ -45,10 +48,10 @@ IN: io.pathnames.tests [ "" parent-directory ] must-fail [ "." ] [ "boot.x86.64.image" parent-directory ] unit-test -[ "bar/foo" ] [ "bar/baz" "..///foo" append-path ] unit-test -[ "bar/baz/foo" ] [ "bar/baz" ".///foo" append-path ] unit-test -[ "bar/foo" ] [ "bar/baz" "./..//foo" append-path ] unit-test -[ "bar/foo" ] [ "bar/baz" "./../././././././///foo" append-path ] unit-test +[ "bar/foo" ] [ "bar/baz" "..///foo" append-path >test-path ] unit-test +[ "bar/baz/foo" ] [ "bar/baz" ".///foo" append-path >test-path ] unit-test +[ "bar/foo" ] [ "bar/baz" "./..//foo" append-path >test-path ] unit-test +[ "bar/foo" ] [ "bar/baz" "./../././././././///foo" append-path >test-path ] unit-test [ t ] [ "resource:core" absolute-path? ] unit-test [ f ] [ "" absolute-path? ] unit-test @@ -61,7 +64,7 @@ IN: io.pathnames.tests "." current-directory set ".." "resource-path" set [ "../core/bootstrap/stage2.factor" ] - [ "resource:core/bootstrap/stage2.factor" absolute-path ] + [ "resource:core/bootstrap/stage2.factor" absolute-path >test-path ] unit-test ] with-scope From 27cfeec43a5e4e23a1c329e8459b474c0f9cd1a3 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 16 Feb 2010 19:29:42 -0800 Subject: [PATCH 09/62] vocabs.loader: make vocab-dir+ use path-separator too --- core/vocabs/loader/loader.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/vocabs/loader/loader.factor b/core/vocabs/loader/loader.factor index 0f2e3f7178..390cfceb95 100644 --- a/core/vocabs/loader/loader.factor +++ b/core/vocabs/loader/loader.factor @@ -42,7 +42,7 @@ PRIVATE> : vocab-dir+ ( vocab str/f -- path ) [ vocab-name "." split ] dip [ [ dup last ] dip append suffix ] when* - "/" join ; + path-separator join ; : find-vocab-root ( vocab -- path/f ) vocab-name dup root-cache get at From 7b22818192aec8638039f42a89e64f976eab7ac9 Mon Sep 17 00:00:00 2001 From: Erik Charlebois Date: Tue, 16 Feb 2010 22:37:31 -0800 Subject: [PATCH 10/62] Remove game.input dependency from chipmunk.demo so it works on linux --- extra/chipmunk/demo/demo.factor | 42 +++++++++++++++------------------ 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/extra/chipmunk/demo/demo.factor b/extra/chipmunk/demo/demo.factor index 031ed576b6..06f3c32dbe 100644 --- a/extra/chipmunk/demo/demo.factor +++ b/extra/chipmunk/demo/demo.factor @@ -1,9 +1,8 @@ ! Copyright (C) 2010 Erik Charlebois ! See http:// factorcode.org/license.txt for BSD license. -USING: accessors chipmunk classes.struct game.loop game.worlds gpu -gpu.util.wasd kernel literals locals math method-chains opengl.gl -random sequences specialized-arrays -specialized-arrays.instances.alien.c-types.void* ui.gadgets.worlds +USING: accessors chipmunk classes.struct game.worlds kernel locals +math method-chains opengl.gl random sequences specialized-arrays +specialized-arrays.instances.alien.c-types.void* ui ui.gadgets.worlds ui.pixel-formats ; IN: chipmunk.demo @@ -56,7 +55,7 @@ CONSTANT: image-bitmap B{ cpCircleShapeAlloc body 0.95 0 0 cpv cpCircleShapeInit cpCircleShape memory>struct [ shape>> 0 >>e ] [ shape>> 0 >>u ] bi drop ; -TUPLE: chipmunk-world < wasd-world +TUPLE: chipmunk-world < game-world space ; AFTER: chipmunk-world tick-game-world @@ -97,8 +96,6 @@ M:: chipmunk-world draw-world* ( world -- ) M:: chipmunk-world begin-game-world ( world -- ) cpInitChipmunk - init-gpu - world { -0.2 0.13 0.1 } 1.1 0.2 set-wasd-view drop cpSpaceAlloc cpSpaceInit cpSpace memory>struct :> space @@ -132,20 +129,19 @@ M: chipmunk-world end-game-world [ cpSpaceFreeChildren ] [ cpSpaceFree ] bi ; -M: chipmunk-world wasd-movement-speed drop 1/160. ; -M: chipmunk-world wasd-near-plane drop 1/32. ; -M: chipmunk-world wasd-far-plane drop 256.0 ; +: chipmunk-demo ( -- ) + [ + f + T{ game-attributes + { world-class chipmunk-world } + { title "Chipmunk Physics Demo" } + { pixel-format-attributes + { windowed double-buffered } + } + { pref-dim { 640 480 } } + { tick-interval-micros 16666 } + } + clone + open-window + ] with-ui ; -GAME: chipmunk-demo { - { world-class chipmunk-world } - { title "Chipmunk Physics Demo" } - { pixel-format-attributes { - windowed - double-buffered - T{ depth-bits { value 24 } } - } } - { grab-input? t } - { use-game-input? t } - { pref-dim { 640 480 } } - { tick-interval-micros $[ 60 fps ] } - } ; From da7cd4186ab0a9e70709fdaa5514d5c4d647b24a Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 01:18:48 +1300 Subject: [PATCH 11/62] help.markup: make $example render slightly nicer --- basis/help/markup/markup.factor | 4 ++-- basis/help/stylesheet/stylesheet.factor | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/basis/help/markup/markup.factor b/basis/help/markup/markup.factor index 75e6538243..f951f30b2f 100644 --- a/basis/help/markup/markup.factor +++ b/basis/help/markup/markup.factor @@ -129,8 +129,8 @@ ALIAS: $slot $snippet "Examples" $heading print-element ; : $example ( element -- ) - 1 cut* swap "\n" join dup [ - input-style get format nl print-element + 1 cut* [ "\n" join ] bi@ over [ + [ print ] [ output-style get format ] bi* ] ($code) ; : $unchecked-example ( element -- ) diff --git a/basis/help/stylesheet/stylesheet.factor b/basis/help/stylesheet/stylesheet.factor index 8a119823cc..d5b783fef8 100644 --- a/basis/help/stylesheet/stylesheet.factor +++ b/basis/help/stylesheet/stylesheet.factor @@ -80,8 +80,11 @@ H{ { wrap-margin f } } code-style set-global -SYMBOL: input-style -H{ { font-style bold } } input-style set-global +SYMBOL: output-style +H{ + { font-style bold } + { foreground COLOR: dark-red } +} output-style set-global SYMBOL: url-style H{ From 36cff8ed6e8ff8900ac2bf99d70db97033ea55f0 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 01:19:26 +1300 Subject: [PATCH 12/62] combinators: better wrong-values error --- core/combinators/combinators.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/combinators/combinators.factor b/core/combinators/combinators.factor index 95b62fc3f3..9016d540d7 100644 --- a/core/combinators/combinators.factor +++ b/core/combinators/combinators.factor @@ -17,7 +17,7 @@ M: object throw PRIVATE> -ERROR: wrong-values quot effect ; +ERROR: wrong-values quot call-site ; ! We can't USE: effects here so we forward reference slots instead SLOT: in From 63928191e719c041624300c37e9e855c550a2b46 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 01:19:39 +1300 Subject: [PATCH 13/62] Minor documentation fixes --- basis/listener/listener-docs.factor | 28 ++++++++++++++++++++-------- core/generic/generic-docs.factor | 8 +++++++- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/basis/listener/listener-docs.factor b/basis/listener/listener-docs.factor index 77bec12c1a..a35f43e848 100644 --- a/basis/listener/listener-docs.factor +++ b/basis/listener/listener-docs.factor @@ -1,8 +1,8 @@ -USING: help.markup help.syntax kernel io system prettyprint continuations quotations ; +USING: help.markup help.syntax kernel io system prettyprint continuations quotations vocabs.loader vocabs.refresh parser ; IN: listener ARTICLE: "listener-watch" "Watching variables in the listener" -"The listener prints the concepts of the data and retain stacks after every expression. It can also print values of dynamic variables which are added to a watch list:" +"The listener prints values of dynamic variables which are added to a watch list:" { $subsections visible-vars } "To add or remove a single variable:" { $subsections @@ -14,7 +14,7 @@ ARTICLE: "listener-watch" "Watching variables in the listener" show-vars hide-vars } -"Hiding all visible variables:" +"Clearing the watch list:" { $subsections hide-all-vars } ; HELP: only-use-vocabs @@ -46,21 +46,33 @@ HELP: hide-all-vars { $description "Removes all variables from the watch list." } ; ARTICLE: "listener" "The listener" -"The listener evaluates Factor expressions read from a stream. The listener is the primary interface to the Factor runtime. Typically, you write Factor code in a text editor, then load it using the listener and test it." +"The listener evaluates Factor expressions read from the input stream. Typically, you write Factor code in a text editor, load it from the listener by calling " { $link require } ", " { $link refresh-all } " or " { $link run-file } ", and then test it from interactively." $nl "The classical first program can be run in the listener:" { $example "\"Hello, world\" print" "Hello, world" } +"New words can also be defined in the listener:" +{ $example + "USE: math.functions" + ": twice ( word -- ) [ execute ] [ execute ] bi ; inline" + "81 \\ sqrt twice ." + "3" +} "Multi-line expressions are supported:" { $example "{ 1 2 3 } [\n .\n] each" "1\n2\n3" } -"The listener knows when to expect more input by looking at the height of the stack. Parsing words such as " { $link POSTPONE: { } " leave elements on the parser stack, and corresponding words such as " { $link POSTPONE: } } " pop them." +"The listener will display the current contents of the datastack after every line of input." $nl -"The listener will display the current contents of the datastack after every expression is evaluated. The listener can additionally watch dynamic variables:" +"The listener can watch dynamic variables:" { $subsections "listener-watch" } -"To start a nested listener:" +"Nested listeners can be useful for testing code in other dynamic scopes. For example, when doing database maintanance using the " { $vocab-link "db.tuples" } " vocabulary, it can be useful to start a listener with a database connection:" +{ $code + "USING: db db.sqlite listener ;" + "\"data.db\" [ listener ] with-db" +} +"Starting a nested listener:" { $subsections listener } "To exit a listener, invoke the " { $link return } " word." $nl -"Multi-line quotations can be read independently of the rest of the listener:" +"The listener's mechanism for reading multi-line expressions from the input stream can be called from user code:" { $subsections read-quot } ; ABOUT: "listener" diff --git a/core/generic/generic-docs.factor b/core/generic/generic-docs.factor index 3a9314fb56..8d4f1f61a5 100644 --- a/core/generic/generic-docs.factor +++ b/core/generic/generic-docs.factor @@ -166,7 +166,13 @@ HELP: create-method HELP: (call-next-method) { $values { "method" method } } { $description "Low-level word implementing " { $link POSTPONE: call-next-method } "." } -{ $notes "In most cases, " { $link POSTPONE: call-next-method } " should be used instead." } ; +{ $notes + "The " { $link POSTPONE: call-next-method } " word parses into this word. The following are equivalent:" + { $code + "M: class generic call-next-method ;" + "M: class generic M\\ class generic (call-next-method) ;" + } +} ; HELP: no-next-method { $error-description "Thrown by " { $link POSTPONE: call-next-method } " if the current method is already the least specific method." } From 41433da61bb490011d62acff99cdc34711cf44c5 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 01:57:22 +1300 Subject: [PATCH 14/62] core: minor cleanups --- core/arrays/arrays.factor | 14 +++----------- core/combinators/combinators.factor | 4 ++++ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/core/arrays/arrays.factor b/core/arrays/arrays.factor index fa4d4b2f69..62a0774444 100644 --- a/core/arrays/arrays.factor +++ b/core/arrays/arrays.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2005, 2008 Slava Pestov. +! Copyright (C) 2005, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors kernel kernel.private math math.private sequences sequences.private ; @@ -9,24 +9,16 @@ M: array length length>> ; inline M: array nth-unsafe [ >fixnum ] dip array-nth ; inline M: array set-nth-unsafe [ >fixnum ] dip set-array-nth ; inline M: array resize resize-array ; inline - -: >array ( seq -- array ) { } clone-like ; - +M: array equal? over array? [ sequence= ] [ 2drop f ] if ; M: object new-sequence drop 0 ; inline - M: f new-sequence drop [ f ] [ 0 ] if-zero ; inline -M: array equal? - over array? [ sequence= ] [ 2drop f ] if ; - INSTANCE: array sequence +: >array ( seq -- array ) { } clone-like ; : 1array ( x -- array ) 1 swap ; inline - : 2array ( x y -- array ) { } 2sequence ; inline - : 3array ( x y z -- array ) { } 3sequence ; inline - : 4array ( w x y z -- array ) { } 4sequence ; inline PREDICATE: pair < array length 2 number= ; diff --git a/core/combinators/combinators.factor b/core/combinators/combinators.factor index 9016d540d7..7b9481825b 100644 --- a/core/combinators/combinators.factor +++ b/core/combinators/combinators.factor @@ -5,6 +5,10 @@ kernel kernel.private math assocs quotations vectors hashtables sorting words sets math.order make ; IN: combinators +! Most of these combinators have compile-time expansions in +! the optimizing compiler. See stack-checker.transforms and +! compiler.tree.propagation.call-effect + Date: Thu, 18 Feb 2010 02:19:57 +1300 Subject: [PATCH 15/62] Add support for final tuple classes which cannot be subclassed: TUPLE: foo ... ; final --- basis/classes/struct/struct-tests.factor | 25 +++++++++++++++++----- basis/classes/struct/struct.factor | 4 +--- basis/debugger/debugger.factor | 2 +- basis/functors/functors.factor | 3 +++ basis/typed/typed-tests.factor | 8 +++++++ core/bootstrap/syntax.factor | 1 + core/classes/parser/parser.factor | 3 ++- core/classes/tuple/tuple-tests.factor | 27 ++++++++++++++++++++++++ core/classes/tuple/tuple.factor | 12 +++++++++-- core/syntax/syntax.factor | 4 ++++ 10 files changed, 77 insertions(+), 12 deletions(-) diff --git a/basis/classes/struct/struct-tests.factor b/basis/classes/struct/struct-tests.factor index 2c0db93522..cb7e4ee2b0 100644 --- a/basis/classes/struct/struct-tests.factor +++ b/basis/classes/struct/struct-tests.factor @@ -1,11 +1,11 @@ ! (c)Joe Groff bsd license USING: accessors alien alien.c-types alien.data ascii -assocs byte-arrays classes.struct classes.tuple.private +assocs byte-arrays classes.struct classes.tuple.private classes.tuple combinators compiler.tree.debugger compiler.units destructors io.encodings.utf8 io.pathnames io.streams.string kernel libc literals math mirrors namespaces prettyprint prettyprint.config see sequences specialized-arrays system -tools.test parser lexer eval layouts ; +tools.test parser lexer eval layouts generic.single classes ; FROM: math => float ; QUALIFIED-WITH: alien.c-types c SPECIALIZED-ARRAY: char @@ -338,13 +338,28 @@ STRUCT: struct-that's-a-word { x int } ; [ "USE: classes.struct IN: classes.struct.tests TUPLE: not-a-struct ; S{ not-a-struct }" eval( -- value ) -] must-fail +] [ error>> no-method? ] must-fail-with ! Subclassing a struct class should not be allowed [ - "USE: classes.struct IN: classes.struct.tests STRUCT: a-struct { x int } ; TUPLE: not-a-struct < a-struct ;" + "USING: alien.c-types classes.struct ; IN: classes.struct.tests STRUCT: a-struct { x int } ; TUPLE: not-a-struct < a-struct ;" eval( -- ) -] must-fail +] [ error>> bad-superclass? ] must-fail-with + +! Changing a superclass into a struct should reset the subclass +TUPLE: will-become-struct ; + +TUPLE: a-subclass < will-become-struct ; + +[ f ] [ will-become-struct struct-class? ] unit-test + +[ will-become-struct ] [ a-subclass superclass ] unit-test + +[ ] [ "IN: classes.struct.tests USING: classes.struct alien.c-types ; STRUCT: will-become-struct { x int } ;" eval( -- ) ] unit-test + +[ t ] [ will-become-struct struct-class? ] unit-test + +[ tuple ] [ a-subclass superclass ] unit-test ! Remove c-type when struct class is forgotten [ ] [ diff --git a/basis/classes/struct/struct.factor b/basis/classes/struct/struct.factor index fae39cd229..a5711de609 100644 --- a/basis/classes/struct/struct.factor +++ b/basis/classes/struct/struct.factor @@ -32,8 +32,6 @@ TUPLE: struct-bit-slot-spec < struct-slot-spec PREDICATE: struct-class < tuple-class superclass \ struct eq? ; -M: struct-class valid-superclass? drop f ; - SLOT: fields : struct-slots ( struct-class -- slots ) @@ -273,7 +271,7 @@ M: struct binary-zero? >c-ptr [ 0 = ] all? ; [ type>> c-type drop ] each ; : redefine-struct-tuple-class ( class -- ) - [ dup class? [ forget-class ] [ drop ] if ] [ struct f define-tuple-class ] bi ; + [ struct f define-tuple-class ] [ make-final ] bi ; :: (define-struct-class) ( class slots offsets-quot -- ) slots empty? [ struct-must-have-slots ] when diff --git a/basis/debugger/debugger.factor b/basis/debugger/debugger.factor index 815304b21f..b6497c52a9 100644 --- a/basis/debugger/debugger.factor +++ b/basis/debugger/debugger.factor @@ -194,7 +194,7 @@ M: not-a-tuple summary drop "Not a tuple" ; M: bad-superclass summary - drop "Tuple classes can only inherit from other tuple classes" ; + drop "Tuple classes can only inherit from non-final tuple classes" ; M: no-initial-value summary drop "Initial value must be provided for slots specialized to this class" ; diff --git a/basis/functors/functors.factor b/basis/functors/functors.factor index ac2e52f68e..6678613002 100644 --- a/basis/functors/functors.factor +++ b/basis/functors/functors.factor @@ -63,6 +63,9 @@ FUNCTOR-SYNTAX: TUPLE: } case \ define-tuple-class suffix! ; +FUNCTOR-SYNTAX: final + [ word make-final ] append! ; + FUNCTOR-SYNTAX: SINGLETON: scan-param suffix! \ define-singleton-class suffix! ; diff --git a/basis/typed/typed-tests.factor b/basis/typed/typed-tests.factor index f7b853cff7..f1e151b985 100644 --- a/basis/typed/typed-tests.factor +++ b/basis/typed/typed-tests.factor @@ -97,3 +97,11 @@ TYPED: no-outputs-unboxable-input ( x: unboxable3 -- ) buh set ; [ T{ unboxable3 } ] [ T{ unboxable3 } no-outputs-unboxable-input buh get ] unit-test + +! Reported by littledan +TUPLE: superclass x ; +TUPLE: subclass < superclass y ; + +TYPED: unbox-fail ( superclass: a -- ? ) subclass? ; + +[ t ] [ subclass new unbox-fail ] unit-test diff --git a/core/bootstrap/syntax.factor b/core/bootstrap/syntax.factor index bb159f04df..1870f4ac1b 100644 --- a/core/bootstrap/syntax.factor +++ b/core/bootstrap/syntax.factor @@ -49,6 +49,7 @@ IN: bootstrap.syntax "SYMBOLS:" "CONSTANT:" "TUPLE:" + "final" "SLOT:" "T{" "UNION:" diff --git a/core/classes/parser/parser.factor b/core/classes/parser/parser.factor index 8233d8cff3..41ce32105d 100644 --- a/core/classes/parser/parser.factor +++ b/core/classes/parser/parser.factor @@ -8,8 +8,9 @@ IN: classes.parser : create-class-in ( string -- word ) current-vocab create + dup set-word dup save-class-location - dup create-predicate-word dup set-word save-location ; + dup create-predicate-word save-location ; : CREATE-CLASS ( -- word ) scan create-class-in ; diff --git a/core/classes/tuple/tuple-tests.factor b/core/classes/tuple/tuple-tests.factor index 36d402c61d..6711c5705e 100644 --- a/core/classes/tuple/tuple-tests.factor +++ b/core/classes/tuple/tuple-tests.factor @@ -770,3 +770,30 @@ TUPLE: tuple-predicate-redefine-test ; [ ] [ "IN: classes.tuple.tests TUPLE: tuple-predicate-redefine-test ;" eval( -- ) ] unit-test [ t ] [ \ tuple-predicate-redefine-test? predicate? ] unit-test + +! Final classes +TUPLE: final-superclass ; +TUPLE: final-subclass < final-superclass ; + +[ final-superclass ] [ final-subclass superclass ] unit-test + +! Making the superclass final should change the superclass of the subclass +[ ] [ "IN: classes.tuple.tests TUPLE: final-superclass ; final" eval( -- ) ] unit-test + +[ tuple ] [ final-subclass superclass ] unit-test + +[ t ] [ \ final-subclass valid-superclass? ] unit-test + +! Subclassing a final class should fail +[ "IN: classes.tuple.tests TUPLE: final-subclass < final-superclass ;" eval( -- ) ] +[ error>> bad-superclass? ] must-fail-with + +! Making a final class non-final should work +[ ] [ "IN: classes.tuple.tests TUPLE: final-superclass ;" eval( -- ) ] unit-test + +[ ] [ "IN: classes.tuple.tests TUPLE: final-subclass < final-superclass ; final" eval( -- ) ] unit-test + +! Changing a superclass should not change the final status of a subclass +[ ] [ "IN: classes.tuple.tests TUPLE: final-superclass x ;" eval( -- ) ] unit-test + +[ f ] [ \ final-subclass valid-superclass? ] unit-test diff --git a/core/classes/tuple/tuple.factor b/core/classes/tuple/tuple.factor index 363c2879e9..c7a3afdd6d 100644 --- a/core/classes/tuple/tuple.factor +++ b/core/classes/tuple/tuple.factor @@ -240,7 +240,7 @@ M: tuple-class update-class GENERIC: valid-superclass? ( class -- ? ) -M: tuple-class valid-superclass? drop t ; +M: tuple-class valid-superclass? "final" word-prop not ; M: builtin-class valid-superclass? tuple eq? ; @@ -266,8 +266,16 @@ PRIVATE> : define-tuple-class ( class superclass slots -- ) over check-superclass over prepare-slots + pick f "final" set-word-prop (define-tuple-class) ; +GENERIC: make-final ( class -- ) + +M: tuple-class make-final + [ dup class-usage keys ?metaclass-changed ] + [ t "final" set-word-prop ] + bi ; + M: word (define-tuple-class) define-new-tuple-class ; @@ -301,7 +309,7 @@ M: tuple-class reset-class ] with each ] [ [ call-next-method ] - [ { "layout" "slots" "boa-check" "prototype" } reset-props ] + [ { "layout" "slots" "boa-check" "prototype" "final" } reset-props ] bi ] bi ; diff --git a/core/syntax/syntax.factor b/core/syntax/syntax.factor index cf2c49fff9..0b5b32e289 100644 --- a/core/syntax/syntax.factor +++ b/core/syntax/syntax.factor @@ -204,6 +204,10 @@ IN: bootstrap.syntax parse-tuple-definition define-tuple-class ] define-core-syntax + "final" [ + word make-final + ] define-core-syntax + "SLOT:" [ scan define-protocol-slot ] define-core-syntax From 60296be9641543c403098cf7f1b2cd5d9dbaa84a Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 02:39:12 +1300 Subject: [PATCH 16/62] typed: only unbox final classes. Fixes bug reported by littledan --- .../dependencies/dependencies.factor | 12 +++++- basis/typed/typed-tests.factor | 37 ++++++++++++++----- basis/typed/typed.factor | 12 ++++-- core/classes/tuple/tuple.factor | 27 +++++++++----- 4 files changed, 64 insertions(+), 24 deletions(-) diff --git a/basis/stack-checker/dependencies/dependencies.factor b/basis/stack-checker/dependencies/dependencies.factor index d995354a52..df68fa8961 100644 --- a/basis/stack-checker/dependencies/dependencies.factor +++ b/basis/stack-checker/dependencies/dependencies.factor @@ -1,7 +1,8 @@ ! Copyright (C) 2009, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: assocs accessors classes.algebra fry generic kernel math -namespaces sequences words sets combinators.short-circuit ; +namespaces sequences words sets combinators.short-circuit +classes.tuple ; FROM: classes.tuple.private => tuple-layout ; IN: stack-checker.dependencies @@ -122,6 +123,15 @@ TUPLE: depends-on-flushable word ; M: depends-on-flushable satisfied? word>> flushable? ; +TUPLE: depends-on-final class ; + +: depends-on-final ( word -- ) + [ depends-on-conditionally ] + [ \ depends-on-final add-conditional-dependency ] bi ; + +M: depends-on-final satisfied? + class>> final-class? ; + : init-dependencies ( -- ) H{ } clone dependencies set H{ } clone generic-dependencies set diff --git a/basis/typed/typed-tests.factor b/basis/typed/typed-tests.factor index f1e151b985..7f984ccaf2 100644 --- a/basis/typed/typed-tests.factor +++ b/basis/typed/typed-tests.factor @@ -14,8 +14,8 @@ TYPED: fix+ ( a: fixnum b: fixnum -- c: fixnum ) most-positive-fixnum neg 1 - 1quotation [ most-positive-fixnum 1 fix+ ] unit-test -TUPLE: tweedle-dee ; -TUPLE: tweedle-dum ; +TUPLE: tweedle-dee ; final +TUPLE: tweedle-dum ; final TYPED: dee ( x: tweedle-dee -- y ) drop \ tweedle-dee ; @@ -39,11 +39,11 @@ TYPED:: f+locals ( a: float b: float -- c: float ) TUPLE: unboxable { x fixnum read-only } - { y fixnum read-only } ; + { y fixnum read-only } ; final TUPLE: unboxable2 { u unboxable read-only } - { xy fixnum read-only } ; + { xy fixnum read-only } ; final TYPED: unboxy ( in: unboxable -- out: unboxable2 ) dup [ x>> ] [ y>> ] bi - unboxable2 boa ; @@ -63,7 +63,7 @@ IN: typed.tests TUPLE: unboxable { x fixnum read-only } { y fixnum read-only } - { z float read-only } ; + { z float read-only } ; final """ eval( -- ) """ @@ -79,13 +79,15 @@ TYPED: no-inputs ( -- out: integer ) [ 1 ] [ no-inputs ] unit-test TUPLE: unboxable3 - { x read-only } ; + { x read-only } ; final TYPED: no-inputs-unboxable-output ( -- out: unboxable3 ) T{ unboxable3 } ; [ T{ unboxable3 } ] [ no-inputs-unboxable-output ] unit-test +[ f ] [ no-inputs-unboxable-output no-inputs-unboxable-output eq? ] unit-test + SYMBOL: buh TYPED: no-outputs ( x: integer -- ) @@ -98,10 +100,25 @@ TYPED: no-outputs-unboxable-input ( x: unboxable3 -- ) [ T{ unboxable3 } ] [ T{ unboxable3 } no-outputs-unboxable-input buh get ] unit-test -! Reported by littledan -TUPLE: superclass x ; -TUPLE: subclass < superclass y ; +[ f ] [ + T{ unboxable3 } no-outputs-unboxable-input buh get + T{ unboxable3 } no-outputs-unboxable-input buh get + eq? +] unit-test -TYPED: unbox-fail ( superclass: a -- ? ) subclass? ; +! Reported by littledan +TUPLE: superclass { x read-only } ; +TUPLE: subclass < superclass { y read-only } ; final + +TYPED: unbox-fail ( a: superclass -- ? ) subclass? ; [ t ] [ subclass new unbox-fail ] unit-test + +! If a final class becomes non-final, typed words need to be recompiled +TYPED: recompile-fail ( a: subclass -- ? ) buh get eq? ; + +[ f ] [ subclass new [ buh set ] [ recompile-fail ] bi ] unit-test + +[ ] [ "IN: typed.tests TUPLE: subclass < superclass { y read-only } ;" eval( -- ) ] unit-test + +[ t ] [ subclass new [ buh set ] [ recompile-fail ] bi ] unit-test diff --git a/basis/typed/typed.factor b/basis/typed/typed.factor index e71196e3ee..8a85ca1afb 100644 --- a/basis/typed/typed.factor +++ b/basis/typed/typed.factor @@ -20,6 +20,7 @@ PREDICATE: typed-word < word "typed-word" word-prop ; { [ all-slots empty? not ] [ immutable-tuple-class? ] + [ final-class? ] } 1&& ; ! typed inputs @@ -30,9 +31,14 @@ PREDICATE: typed-word < word "typed-word" word-prop ; : input-mismatch-quot ( word types -- quot ) [ input-mismatch-error ] 2curry ; +: depends-on-unboxing ( class -- ) + [ dup tuple-layout depends-on-tuple-layout ] + [ depends-on-final ] + bi ; + : (unboxer) ( type -- quot ) dup unboxable-tuple-class? [ - dup dup tuple-layout depends-on-tuple-layout + dup depends-on-unboxing all-slots [ [ name>> reader-word 1quotation ] [ class>> (unboxer) ] bi compose @@ -52,7 +58,7 @@ PREDICATE: typed-word < word "typed-word" word-prop ; : (unboxed-types) ( type -- types ) dup unboxable-tuple-class? [ - dup dup tuple-layout depends-on-tuple-layout + dup depends-on-unboxing all-slots [ class>> (unboxed-types) ] map concat ] [ 1array ] if ; @@ -81,7 +87,7 @@ DEFER: make-boxer : boxer ( type -- quot ) dup unboxable-tuple-class? [ - dup dup tuple-layout depends-on-tuple-layout + dup depends-on-unboxing [ all-slots [ class>> ] map make-boxer ] [ [ boa ] curry ] bi compose diff --git a/core/classes/tuple/tuple.factor b/core/classes/tuple/tuple.factor index c7a3afdd6d..b590826511 100644 --- a/core/classes/tuple/tuple.factor +++ b/core/classes/tuple/tuple.factor @@ -93,6 +93,14 @@ ERROR: bad-superclass class ; ] [ 2drop f ] if ] [ 2drop f ] if ; inline +GENERIC: final-class? ( class -- ? ) + +M: tuple-class final-class? "final" word-prop ; + +M: builtin-class final-class? tuple eq? not ; + +M: class final-class? drop t ; + : define-tuple-class ( class superclass slots -- ) over check-superclass over prepare-slots - pick f "final" set-word-prop + pick reset-final (define-tuple-class) ; GENERIC: make-final ( class -- ) From ff172f4132b3938e3aa83df3d5da0b973fd9e096 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 02:39:40 +1300 Subject: [PATCH 17/62] Make specialized arrays and SIMD types final so that typed can unbox them --- basis/math/vectors/simd/simd.factor | 2 +- basis/sequences/cords/cords.factor | 6 +++--- basis/specialized-arrays/specialized-arrays.factor | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/basis/math/vectors/simd/simd.factor b/basis/math/vectors/simd/simd.factor index acf13599c1..a60026317d 100644 --- a/basis/math/vectors/simd/simd.factor +++ b/basis/math/vectors/simd/simd.factor @@ -251,7 +251,7 @@ BOA-EFFECT [ N "n" { "v" } ] WHERE -TUPLE: A < simd-128 ; +TUPLE: A < simd-128 ; final M: A new-underlying drop \ A boa ; inline M: A simd-rep drop A-rep ; inline diff --git a/basis/sequences/cords/cords.factor b/basis/sequences/cords/cords.factor index fca005fa6e..4a2d267a12 100644 --- a/basis/sequences/cords/cords.factor +++ b/basis/sequences/cords/cords.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2008 Slava Pestov. +! Copyright (C) 2008, 2010 Slava Pestov, Joe Groff. ! See http://factorcode.org/license.txt for BSD license. USING: accessors assocs sequences sorting binary-search fry math math.order arrays classes combinators kernel functors math.functions @@ -8,7 +8,7 @@ IN: sequences.cords MIXIN: cord TUPLE: generic-cord - { head read-only } { tail read-only } ; + { head read-only } { tail read-only } ; final INSTANCE: generic-cord cord M: cord length @@ -34,7 +34,7 @@ T-cord DEFINES-CLASS ${C} WHERE TUPLE: T-cord - { head T read-only } { tail T read-only } ; + { head T read-only } { tail T read-only } ; final INSTANCE: T-cord cord M: T cord-append diff --git a/basis/specialized-arrays/specialized-arrays.factor b/basis/specialized-arrays/specialized-arrays.factor index eda793ff22..d3db93e788 100644 --- a/basis/specialized-arrays/specialized-arrays.factor +++ b/basis/specialized-arrays/specialized-arrays.factor @@ -47,7 +47,7 @@ WHERE TUPLE: A { underlying c-ptr read-only } -{ length array-capacity read-only } ; +{ length array-capacity read-only } ; final : ( alien len -- specialized-array ) A boa ; inline From c4c14c7cebeac1adc48d00ead76fad8bcac299b9 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 03:00:43 +1300 Subject: [PATCH 18/62] classes.tuple: fix screwup --- core/classes/tuple/tuple.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/classes/tuple/tuple.factor b/core/classes/tuple/tuple.factor index b590826511..64c34d221a 100644 --- a/core/classes/tuple/tuple.factor +++ b/core/classes/tuple/tuple.factor @@ -273,7 +273,6 @@ PRIVATE> : define-tuple-class ( class superclass slots -- ) over check-superclass over prepare-slots - pick reset-final (define-tuple-class) ; GENERIC: make-final ( class -- ) @@ -287,6 +286,7 @@ M: word (define-tuple-class) define-new-tuple-class ; M: tuple-class (define-tuple-class) + pick reset-final 3dup tuple-class-unchanged? [ 2drop ?define-symbol ] [ redefine-tuple-class ] if ; From 9df8a3adbd5362ec6d8674a29440f984a5c48537 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 03:01:26 +1300 Subject: [PATCH 19/62] see: show final declaration on tuples --- basis/prettyprint/prettyprint-tests.factor | 12 ++++++++++++ basis/see/see.factor | 21 ++++++++++++++------- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/basis/prettyprint/prettyprint-tests.factor b/basis/prettyprint/prettyprint-tests.factor index 8ba6e94a49..ec0e20a393 100644 --- a/basis/prettyprint/prettyprint-tests.factor +++ b/basis/prettyprint/prettyprint-tests.factor @@ -362,3 +362,15 @@ TUPLE: tuple-with-initial-declared-slot { x integer initial: 123 } ; ] [ [ \ tuple-with-initial-declared-slot see ] with-string-writer "\n" split ] unit-test + +TUPLE: final-tuple ; final + +[ + { + "IN: prettyprint.tests" + "TUPLE: final-tuple ; final" + "" + } +] [ + [ \ final-tuple see ] with-string-writer "\n" split +] unit-test diff --git a/basis/see/see.factor b/basis/see/see.factor index 0d2388114a..326e051219 100644 --- a/basis/see/see.factor +++ b/basis/see/see.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2009 Slava Pestov. +! Copyright (C) 2009, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors arrays assocs classes classes.builtin classes.intersection classes.mixin classes.predicate classes.singleton @@ -182,14 +182,21 @@ M: array pprint-slot-name dup length 1 = [ first ] when pprint-slot-name ; +: tuple-declarations. ( class -- ) + \ final declaration. ; + +: superclass. ( class -- ) + superclass dup tuple eq? [ drop ] [ "<" text pprint-word ] if ; + M: tuple-class see-class* - pprint-; block> ; + { + [ pprint-word ] + [ superclass. ] + [ pprint-; ] + [ tuple-declarations. ] + } cleave + block> ; M: word see-class* drop ; From d2ae4ff4bada2584fbde4a486f5da1712e2d99ae Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 03:36:43 +1300 Subject: [PATCH 20/62] listener: fix docs --- basis/listener/listener-docs.factor | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/basis/listener/listener-docs.factor b/basis/listener/listener-docs.factor index a35f43e848..bb20fe62ae 100644 --- a/basis/listener/listener-docs.factor +++ b/basis/listener/listener-docs.factor @@ -1,4 +1,5 @@ -USING: help.markup help.syntax kernel io system prettyprint continuations quotations vocabs.loader vocabs.refresh parser ; +USING: help.markup help.syntax kernel io system prettyprint +continuations quotations vocabs.loader parser ; IN: listener ARTICLE: "listener-watch" "Watching variables in the listener" @@ -46,7 +47,7 @@ HELP: hide-all-vars { $description "Removes all variables from the watch list." } ; ARTICLE: "listener" "The listener" -"The listener evaluates Factor expressions read from the input stream. Typically, you write Factor code in a text editor, load it from the listener by calling " { $link require } ", " { $link refresh-all } " or " { $link run-file } ", and then test it from interactively." +"The listener evaluates Factor expressions read from the input stream. Typically, you write Factor code in a text editor, load it from the listener by calling " { $link require } ", " { $link reload } " or " { $link run-file } ", and then test it from interactively." $nl "The classical first program can be run in the listener:" { $example "\"Hello, world\" print" "Hello, world" } From 4b76e2a61dc933ea39d4431d076bb9f47e94f883 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 03:56:41 +1300 Subject: [PATCH 21/62] functors: make 'final' declarations work in functors --- basis/functors/backend/backend.factor | 10 ++++-- basis/functors/functors-tests.factor | 47 +++++++++++++++++++++++++-- basis/functors/functors.factor | 2 +- 3 files changed, 52 insertions(+), 7 deletions(-) diff --git a/basis/functors/backend/backend.factor b/basis/functors/backend/backend.factor index dd3d891f7b..331864417e 100644 --- a/basis/functors/backend/backend.factor +++ b/basis/functors/backend/backend.factor @@ -1,6 +1,6 @@ USING: accessors arrays assocs generic.standard kernel lexer locals.types namespaces parser quotations vocabs.parser -words ; +words classes.tuple ; IN: functors.backend DEFER: functor-words @@ -27,7 +27,11 @@ SYNTAX: FUNCTOR-SYNTAX: : define* ( word def -- ) over set-word define ; -: define-declared* ( word def effect -- ) pick set-word define-declared ; +: define-declared* ( word def effect -- ) + pick set-word define-declared ; -: define-simple-generic* ( word effect -- ) over set-word define-simple-generic ; +: define-simple-generic* ( word effect -- ) + over set-word define-simple-generic ; +: define-tuple-class* ( class superclass slots -- ) + pick set-word define-tuple-class ; diff --git a/basis/functors/functors-tests.factor b/basis/functors/functors-tests.factor index 544c2ed1e4..c756d1b83d 100644 --- a/basis/functors/functors-tests.factor +++ b/basis/functors/functors-tests.factor @@ -1,5 +1,5 @@ -USING: classes.struct functors tools.test math words kernel -multiline parser io.streams.string generic ; +USING: classes.struct classes.tuple functors tools.test math +words kernel multiline parser io.streams.string generic ; QUALIFIED-WITH: alien.c-types c IN: functors.tests @@ -36,7 +36,7 @@ WW DEFINES ${W}${W} WHERE -: WW ( a -- b ) \ W twice ; inline +: WW ( a -- b ) \ W twice ; ;FUNCTOR @@ -211,3 +211,44 @@ STRUCT: T-class } ] [ a-struct struct-slots ] unit-test +<< + +FUNCTOR: define-an-inline-word ( W -- ) + +W DEFINES ${W} +W-W DEFINES ${W}-${W} + +WHERE + +: W ( -- ) ; inline +: W-W ( -- ) W W ; + +;FUNCTOR + +"an-inline-word" define-an-inline-word + +>> + +[ t ] [ \ an-inline-word inline? ] unit-test +[ f ] [ \ an-inline-word-an-inline-word inline? ] unit-test + +<< + +FUNCTOR: define-a-final-class ( T W -- ) + +T DEFINES-CLASS ${T} +W DEFINES ${W} + +WHERE + +TUPLE: T ; final + +: W ( -- ) ; + +;FUNCTOR + +"a-final-tuple" "a-word" define-a-final-class + +>> + +[ t ] [ a-final-tuple final-class? ] unit-test diff --git a/basis/functors/functors.factor b/basis/functors/functors.factor index 6678613002..1895c6e0f4 100644 --- a/basis/functors/functors.factor +++ b/basis/functors/functors.factor @@ -61,7 +61,7 @@ FUNCTOR-SYNTAX: TUPLE: make suffix! ] } case - \ define-tuple-class suffix! ; + \ define-tuple-class* suffix! ; FUNCTOR-SYNTAX: final [ word make-final ] append! ; From 049b87bda9b71f5e29d6aa804285e7b31ec9f5bd Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 03:57:02 +1300 Subject: [PATCH 22/62] tuple-arrays: require that base type be final --- basis/tuple-arrays/tuple-arrays-docs.factor | 12 ++++++---- basis/tuple-arrays/tuple-arrays-tests.factor | 22 ++++++++++++++----- basis/tuple-arrays/tuple-arrays.factor | 15 +++++++++++-- .../tuple-arrays/tuple-arrays.factor | 4 ++-- 4 files changed, 40 insertions(+), 13 deletions(-) diff --git a/basis/tuple-arrays/tuple-arrays-docs.factor b/basis/tuple-arrays/tuple-arrays-docs.factor index 5e70e15aa7..72a5ae4df3 100644 --- a/basis/tuple-arrays/tuple-arrays-docs.factor +++ b/basis/tuple-arrays/tuple-arrays-docs.factor @@ -3,20 +3,24 @@ USING: help.markup help.syntax sequences ; HELP: TUPLE-ARRAY: { $syntax "TUPLE-ARRAY: class" } +{ $values { "class" "a final tuple class" } } { $description "Generates a new data type in the current vocabulary named " { $snippet { $emphasis "class" } "-array" } " for holding instances of " { $snippet "class" } ", which must be a tuple class word. Together with the class itself, this also generates words named " { $snippet "<" { $emphasis "class" } "-array>" } " and " { $snippet ">" { $emphasis "class" } "-array" } ", for creating new instances of this tuple array type." } ; ARTICLE: "tuple-arrays" "Tuple arrays" -"The " { $vocab-link "tuple-arrays" } " vocabulary implements space-efficient unboxed tuple arrays. Whereas an ordinary array of tuples would consist of pointers to heap-allocated objects, a tuple array stores its elements inline. Calling " { $link nth } " copies an element into a new tuple, and calling " { $link set-nth } " copies an existing tuple's slots into an array." +"The " { $vocab-link "tuple-arrays" } " vocabulary implements space-efficient unboxed tuple arrays. Whereas an ordinary array of tuples would consist of references to heap-allocated objects, a tuple array stores its elements as values." $nl -"Since value semantics differ from reference semantics, it is best to use tuple arrays with tuples where all slots are declared " { $link read-only } "." +"Calling " { $link nth } " copies an element into a new tuple, and calling " { $link set-nth } " copies an existing tuple's slots into an array." +$nl +"Since value semantics are incompatible with inheritance, the base type of a tuple array must be declared " { $link POSTPONE: final } ". A best practice that is not enforced is to have all slots in the tuple declared " { $link read-only } "." +$nl +"Tuple arrays do not get updated if tuples are redefined to add or remove slots, so caution should be exercised when doing interactive development on code that uses tuple arrays." $nl -"Tuple arrays should not be used with inheritance; storing an instance of a subclass in a tuple array will slice off the subclass slots, and getting the same value out again will yield an instance of the superclass. Also, tuple arrays do not get updated if tuples are redefined to add or remove slots, so caution should be exercised when doing interactive development on code that uses tuple arrays." { $subsections POSTPONE: TUPLE-ARRAY: } "An example:" { $example "USE: tuple-arrays" "IN: scratchpad" - "TUPLE: point x y ;" + "TUPLE: point x y ; final" "TUPLE-ARRAY: point" "{ T{ point f 1 2 } T{ point f 1 3 } T{ point f 2 3 } } >point-array first short." "T{ point f 1 2 }" diff --git a/basis/tuple-arrays/tuple-arrays-tests.factor b/basis/tuple-arrays/tuple-arrays-tests.factor index 2eeae20aa1..0fbf0eeaa0 100644 --- a/basis/tuple-arrays/tuple-arrays-tests.factor +++ b/basis/tuple-arrays/tuple-arrays-tests.factor @@ -1,9 +1,9 @@ USING: tuple-arrays sequences tools.test namespaces kernel -math accessors ; +math accessors classes.tuple eval ; IN: tuple-arrays.tests SYMBOL: mat -TUPLE: foo bar ; +TUPLE: foo bar ; final C: foo TUPLE-ARRAY: foo @@ -18,15 +18,27 @@ TUPLE-ARRAY: foo [ T{ foo } ] [ mat get first ] unit-test [ T{ foo f 1 } ] [ T{ foo f 1 } 0 mat get [ set-nth ] keep first ] unit-test -TUPLE: baz { bing integer } bong ; +TUPLE: baz { bing integer } bong ; final TUPLE-ARRAY: baz [ 0 ] [ 1 first bing>> ] unit-test [ f ] [ 1 first bong>> ] unit-test -TUPLE: broken x ; +TUPLE: broken x ; final : broken ( -- ) ; TUPLE-ARRAY: broken -[ 100 ] [ 100 length ] unit-test \ No newline at end of file +[ 100 ] [ 100 length ] unit-test + +! Can't define a tuple array for a non-tuple class +[ "IN: tuple-arrays.tests USING: tuple-arrays words ; TUPLE-ARRAY: word" eval( -- ) ] +[ error>> not-a-tuple? ] +must-fail-with + +! Can't define a tuple array for a non-final class +TUPLE: non-final x ; + +[ "IN: tuple-arrays.tests USE: tuple-arrays TUPLE-ARRAY: non-final" eval( -- ) ] +[ error>> not-final? ] +must-fail-with \ No newline at end of file diff --git a/basis/tuple-arrays/tuple-arrays.factor b/basis/tuple-arrays/tuple-arrays.factor index aea51f7820..1a3091c1e2 100644 --- a/basis/tuple-arrays/tuple-arrays.factor +++ b/basis/tuple-arrays/tuple-arrays.factor @@ -1,11 +1,13 @@ -! Copyright (C) 2009 Slava Pestov. +! Copyright (C) 2009, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors arrays combinators.smart fry functors kernel kernel.private macros sequences combinators sequences.private -stack-checker parser math classes.tuple.private ; +stack-checker parser math classes.tuple classes.tuple.private ; FROM: inverse => undo ; IN: tuple-arrays +ERROR: not-final class ; + ] ; @@ -29,6 +31,13 @@ MACRO: write-tuple ( class -- quot ) [ tuple-arity iota [ '[ [ _ ] dip set-nth-unsafe ] ] map '[ _ cleave ] ] bi '[ _ dip @ ] ; +: check-final ( class -- ) + { + { [ dup tuple-class? not ] [ not-a-tuple ] } + { [ dup final-class? not ] [ not-final ] } + [ drop ] + } cond ; + PRIVATE> FUNCTOR: define-tuple-array ( CLASS -- ) @@ -43,6 +52,8 @@ CLASS-array? IS ${CLASS-array}? WHERE +CLASS check-final + TUPLE: CLASS-array { seq array read-only } { n array-capacity read-only } diff --git a/extra/benchmark/tuple-arrays/tuple-arrays.factor b/extra/benchmark/tuple-arrays/tuple-arrays.factor index 701db77135..80c31553c1 100644 --- a/extra/benchmark/tuple-arrays/tuple-arrays.factor +++ b/extra/benchmark/tuple-arrays/tuple-arrays.factor @@ -1,10 +1,10 @@ -! Copyright (C) 2009 Slava Pestov. +! Copyright (C) 2009, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: kernel math math.functions tuple-arrays accessors fry sequences prettyprint ; IN: benchmark.tuple-arrays -TUPLE: point { x float } { y float } { z float } ; +TUPLE: point { x float } { y float } { z float } ; final TUPLE-ARRAY: point From bf72c890603b00757f0ea8334888908b52af9e34 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 03:57:10 +1300 Subject: [PATCH 23/62] tools.deploy.backend: clean up --- basis/tools/deploy/backend/backend.factor | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/basis/tools/deploy/backend/backend.factor b/basis/tools/deploy/backend/backend.factor index fe63071998..9f25808c9e 100644 --- a/basis/tools/deploy/backend/backend.factor +++ b/basis/tools/deploy/backend/backend.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2007, 2009 Slava Pestov. +! Copyright (C) 2007, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: namespaces make continuations.private kernel.private init assocs kernel vocabs words sequences memory io system arrays @@ -19,13 +19,12 @@ TUPLE: vocab-manifest vocabs libraries ; : copy-resources ( manifest name dir -- ) append-path swap vocabs>> [ copy-vocab-resources ] with each ; -ERROR: cant-deploy-library-file library ; - + [ swap over file-name append-path copy-file ] + [ can't-deploy-library-file ] ?if ; : copy-libraries ( manifest name dir -- ) append-path swap libraries>> [ copy-library ] with each ; From 9debed1c75490b451c7268a7a3043b3e184a6fee Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 04:13:21 +1300 Subject: [PATCH 24/62] typed: update documentation --- basis/typed/typed-docs.factor | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/basis/typed/typed-docs.factor b/basis/typed/typed-docs.factor index 0b6838379c..c6f80a48bc 100644 --- a/basis/typed/typed-docs.factor +++ b/basis/typed/typed-docs.factor @@ -58,10 +58,18 @@ HELP: output-mismatch-error ARTICLE: "typed" "Strongly-typed word definitions" "The Factor compiler supports advanced compiler optimizations that take advantage of the type information it can glean from source code. The " { $vocab-link "typed" } " vocabulary provides syntax that allows words to provide checked type information about their inputs and outputs and improve the performance of compiled code." +$nl +"Parameters and return values of typed words where the type is declared to be a " { $link POSTPONE: final } " tuple class with all slots " { $link read-only } " are passed by value." { $subsections POSTPONE: TYPED: POSTPONE: TYPED:: +} +"Defining typed words at run time:" +{ $subsections define-typed +} +"Errors:" +{ $subsections input-mismatch-error output-mismatch-error } ; From c5259f2e2c54fb44642d322b7fc6bb5836bc99b0 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 04:13:34 +1300 Subject: [PATCH 25/62] classes.tuple: document final class declaration --- core/classes/tuple/tuple-docs.factor | 5 +++++ core/syntax/syntax-docs.factor | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/core/classes/tuple/tuple-docs.factor b/core/classes/tuple/tuple-docs.factor index 2b3e80da1d..7f6078e321 100644 --- a/core/classes/tuple/tuple-docs.factor +++ b/core/classes/tuple/tuple-docs.factor @@ -191,6 +191,8 @@ $nl "tuple-inheritance-example" "tuple-inheritance-anti-example" } +"Declaring a tuple class final prohibits other classes from subclassing it:" +{ $subsections POSTPONE: final } { $see-also "call-next-method" "parametrized-constructors" "unions" "mixins" } ; ARTICLE: "tuple-introspection" "Tuple introspection" @@ -441,3 +443,6 @@ HELP: boa { $description "Creates a new instance of " { $snippet "class" } " and fill in the slots from the stack, with the top-most stack element being stored in the right-most slot." } { $notes "The name " { $snippet "boa" } " is shorthand for “by order of arguments”, and “BOA constructor” is a pun on “boa constrictor”." } { $errors "Throws an error if the slot values do not match class declarations on slots (see" { $link "tuple-declarations" } ")." } ; + +HELP: bad-superclass +{ $error-description "Thrown if an attempt is made to subclass a class that is not a tuple class, or a tuple class declared " { $link POSTPONE: final } "." } ; diff --git a/core/syntax/syntax-docs.factor b/core/syntax/syntax-docs.factor index 8ad6084188..4a1af4c578 100644 --- a/core/syntax/syntax-docs.factor +++ b/core/syntax/syntax-docs.factor @@ -792,6 +792,10 @@ $nl { $code "TUPLE: person" "{ age integer initial: 0 }" "{ department string initial: \"Marketing\" }" "manager ;" } } ; +HELP: final +{ $syntax "TUPLE: ... ; final" } +{ $description "Declares the most recently defined word as a final tuple class which cannot be subclassed. Attempting to subclass a final class raises a " { $link bad-superclass } " error." } ; + HELP: initial: { $syntax "TUPLE: ... { slot initial: value } ... ;" } { $values { "slot" "a slot name" } { "value" "any literal" } } From 31ccfa2e5d8633c7e09aa26754bc3a197daf4860 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 04:58:30 +1300 Subject: [PATCH 26/62] Fix unit test failures --- core/classes/tuple/tuple-tests.factor | 4 ++-- core/parser/parser-tests.factor | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/classes/tuple/tuple-tests.factor b/core/classes/tuple/tuple-tests.factor index 6711c5705e..276c6b407c 100644 --- a/core/classes/tuple/tuple-tests.factor +++ b/core/classes/tuple/tuple-tests.factor @@ -782,7 +782,7 @@ TUPLE: final-subclass < final-superclass ; [ tuple ] [ final-subclass superclass ] unit-test -[ t ] [ \ final-subclass valid-superclass? ] unit-test +[ f ] [ \ final-subclass final-class? ] unit-test ! Subclassing a final class should fail [ "IN: classes.tuple.tests TUPLE: final-subclass < final-superclass ;" eval( -- ) ] @@ -796,4 +796,4 @@ TUPLE: final-subclass < final-superclass ; ! Changing a superclass should not change the final status of a subclass [ ] [ "IN: classes.tuple.tests TUPLE: final-superclass x ;" eval( -- ) ] unit-test -[ f ] [ \ final-subclass valid-superclass? ] unit-test +[ t ] [ \ final-subclass final-class? ] unit-test diff --git a/core/parser/parser-tests.factor b/core/parser/parser-tests.factor index f30eb68684..266a65b957 100644 --- a/core/parser/parser-tests.factor +++ b/core/parser/parser-tests.factor @@ -339,7 +339,7 @@ IN: parser.tests ] unit-test [ t ] [ - "foo?" "parser.tests" lookup word eq? + "foo" "parser.tests" lookup word eq? ] unit-test [ ] [ From 9da061de5eb4d6d45a60a34eef4ca6814f13234c Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 07:02:22 +1300 Subject: [PATCH 27/62] listener: fix help lint --- basis/listener/listener-docs.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/listener/listener-docs.factor b/basis/listener/listener-docs.factor index bb20fe62ae..bb014fef62 100644 --- a/basis/listener/listener-docs.factor +++ b/basis/listener/listener-docs.factor @@ -56,7 +56,7 @@ $nl "USE: math.functions" ": twice ( word -- ) [ execute ] [ execute ] bi ; inline" "81 \\ sqrt twice ." - "3" + "3.0" } "Multi-line expressions are supported:" { $example "{ 1 2 3 } [\n .\n] each" "1\n2\n3" } From 31d97a8ff7cddd6c0a23ca284d5c9c4c5f32112e Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 17 Feb 2010 11:26:32 -0800 Subject: [PATCH 28/62] fall back to manual gl vertex attribute management when GL_APPLE_vertex_array_object is not present, so gpu can support vanilla GL 2.0 --- extra/gpu/gpu.factor | 4 +- extra/gpu/render/render.factor | 5 +- extra/gpu/shaders/shaders.factor | 80 ++++++++++++++++++++++++++------ extra/gpu/state/state.factor | 4 -- 4 files changed, 71 insertions(+), 22 deletions(-) mode change 100644 => 100755 extra/gpu/gpu.factor mode change 100644 => 100755 extra/gpu/render/render.factor mode change 100644 => 100755 extra/gpu/shaders/shaders.factor mode change 100644 => 100755 extra/gpu/state/state.factor diff --git a/extra/gpu/gpu.factor b/extra/gpu/gpu.factor old mode 100644 new mode 100755 index 6a61e2ec4f..1d02b3f07a --- a/extra/gpu/gpu.factor +++ b/extra/gpu/gpu.factor @@ -9,10 +9,12 @@ TUPLE: gpu-object < identity-tuple handle ; VARIANT: gpu-api opengl-2 opengl-3 ; +SYMBOL: has-vertex-array-objects? + : set-gpu-api ( -- ) "2.0" require-gl-version "3.0" { { "GL_ARB_vertex_array_object" "GL_APPLE_vertex_array_object" } } - require-gl-version-or-extensions + has-gl-version-or-extensions? has-vertex-array-objects? set-global "3.0" has-gl-version? opengl-3 opengl-2 ? gpu-api set-global ; HOOK: init-gpu-api gpu-api ( -- ) diff --git a/extra/gpu/render/render.factor b/extra/gpu/render/render.factor old mode 100644 new mode 100755 index 1d4813ab54..2b7d75a3ae --- a/extra/gpu/render/render.factor +++ b/extra/gpu/render/render.factor @@ -520,9 +520,6 @@ SYNTAX: UNIFORM-TUPLE: > glBindVertexArray ; - : bind-unnamed-output-attachments ( framebuffer attachments -- ) [ gl-attachment ] with map dup length 1 = @@ -567,7 +564,7 @@ UNION: transform-feedback-output buffer buffer-range POSTPONE: f ; TUPLE: render-set { primitive-mode primitive-mode read-only } - { vertex-array vertex-array read-only } + { vertex-array vertex-array initial: T{ vertex-array-collection } read-only } { uniforms uniform-tuple read-only } { indexes vertex-indexes initial: T{ index-range } read-only } { instances ?integer initial: f read-only } diff --git a/extra/gpu/shaders/shaders.factor b/extra/gpu/shaders/shaders.factor old mode 100644 new mode 100755 index 0401584f7c..025acba896 --- a/extra/gpu/shaders/shaders.factor +++ b/extra/gpu/shaders/shaders.factor @@ -2,9 +2,9 @@ USING: accessors alien alien.c-types alien.data alien.strings arrays assocs byte-arrays classes.mixin classes.parser classes.singleton classes.struct combinators combinators.short-circuit -definitions destructors fry generic.parser gpu gpu.buffers hashtables -images io.encodings.ascii io.files io.pathnames kernel lexer -literals locals math math.parser memoize multiline namespaces +definitions destructors fry generic.parser gpu gpu.buffers gpu.private +gpu.state hashtables images io.encodings.ascii io.files io.pathnames +kernel lexer literals locals math math.parser memoize multiline namespaces opengl opengl.gl opengl.shaders parser quotations sequences specialized-arrays splitting strings tr ui.gadgets.worlds variants vectors vocabs vocabs.loader vocabs.parser words @@ -319,11 +319,18 @@ SYNTAX: VERTEX-FORMAT: SYNTAX: VERTEX-STRUCT: CREATE-CLASS scan-word define-vertex-struct ; -TUPLE: vertex-array < gpu-object +TUPLE: vertex-array-object < gpu-object { program-instance program-instance read-only } { vertex-buffers sequence read-only } ; -M: vertex-array dispose +TUPLE: vertex-array-collection + { vertex-formats sequence read-only } + { program-instance program-instance read-only } ; + +UNION: vertex-array + vertex-array-object vertex-array-collection ; + +M: vertex-array-object dispose [ [ delete-vertex-array ] when* f ] change-handle drop ; : ?>buffer-ptr ( buffer/ptr -- buffer-ptr ) @@ -331,26 +338,73 @@ M: vertex-array dispose : ?>buffer ( buffer/ptr -- buffer ) dup buffer? [ buffer>> ] unless ; inline -:: ( vertex-formats program-instance -- vertex-array ) +buffer-ptr ] dip 2array ] map ; inline + +: (bind-vertex-array) ( vertex-formats program-instance -- ) + '[ _ swap first2 bind-vertex-format ] each ; inline + +: (reset-vertex-array) ( -- ) + GL_MAX_VERTEX_ATTRIBS get-gl-int iota [ glDisableVertexAttribArray ] each ; inline + +:: ( vertex-formats program-instance -- vertex-array ) gen-vertex-array :> handle handle glBindVertexArray - vertex-formats [ program-instance swap first2 [ ?>buffer-ptr ] dip bind-vertex-format ] each - handle program-instance vertex-formats [ first ?>buffer ] map - vertex-array boa window-resource ; inline + vertex-formats normalize-vertex-formats program-instance (bind-vertex-array) -:: ( vertex-buffer program-instance format -- vertex-array ) + handle program-instance vertex-formats [ first ?>buffer ] map + vertex-array-object boa window-resource ; inline + +: ( vertex-formats program-instance -- vertex-array ) + [ normalize-vertex-formats ] dip vertex-array-collection boa ; inline + +:: ( vertex-buffer program-instance format -- vertex-array ) gen-vertex-array :> handle handle glBindVertexArray program-instance vertex-buffer ?>buffer-ptr format bind-vertex-format handle program-instance vertex-buffer ?>buffer 1array - vertex-array boa window-resource ; inline + vertex-array-object boa window-resource ; inline + +: ( vertex-buffer program-instance format -- vertex-array ) + swap [ [ ?>buffer-ptr ] dip 2array 1array ] dip ; inline + +PRIVATE> + +GENERIC: bind-vertex-array ( vertex-array -- ) + +M: vertex-array-object bind-vertex-array + handle>> glBindVertexArray ; inline + +M: vertex-array-collection bind-vertex-array + (reset-vertex-array) + [ vertex-formats>> ] [ program-instance>> ] bi (bind-vertex-array) ; inline + +: ( vertex-formats program-instance -- vertex-array ) + has-vertex-array-objects? get + [ ] + [ ] if ; inline + +: ( vertex-buffer program-instance format -- vertex-array ) + has-vertex-array-objects? get + [ ] + [ ] if ; inline : ( vertex-buffer program-instance -- vertex-array ) dup program>> vertex-formats>> first ; inline -TYPED: vertex-array-buffer ( vertex-array: vertex-array -- vertex-buffer: buffer ) - vertex-buffers>> first ; +GENERIC: vertex-array-buffers ( vertex-array -- buffers ) + +M: vertex-array-object vertex-array-buffers + vertex-buffers>> ; inline + +M: vertex-array-collection vertex-array-buffers + vertex-formats>> [ first buffer>> ] map ; inline + +: vertex-array-buffer ( vertex-array: vertex-array -- vertex-buffer: buffer ) + vertex-array-buffers first ; inline TUPLE: compile-shader-error shader log ; TUPLE: link-program-error program log ; diff --git a/extra/gpu/state/state.factor b/extra/gpu/state/state.factor old mode 100644 new mode 100755 index 3064ed4b82..db76774038 --- a/extra/gpu/state/state.factor +++ b/extra/gpu/state/state.factor @@ -415,8 +415,6 @@ M: mask-state set-gpu-state* [ [ set-gpu-state* ] each ] [ set-gpu-state* ] if ; inline - [ glGetBooleanv ] keep *uchar c-bool> ; : get-gl-int ( enum -- value ) @@ -437,8 +435,6 @@ M: mask-state set-gpu-state* : gl-enabled? ( enum -- ? ) glIsEnabled c-bool> ; -PRIVATE> - TYPED: get-viewport-state ( -- viewport-state: viewport-state ) GL_VIEWPORT get-gl-rect ; From 33bbd05507e57b212ced8856d40423a344b07281 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 18 Feb 2010 08:38:45 +1300 Subject: [PATCH 29/62] io.pathnames: fix doc typo --- core/io/pathnames/pathnames-docs.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/io/pathnames/pathnames-docs.factor b/core/io/pathnames/pathnames-docs.factor index 8dacef6f8c..cc637b59c3 100644 --- a/core/io/pathnames/pathnames-docs.factor +++ b/core/io/pathnames/pathnames-docs.factor @@ -92,7 +92,7 @@ HELP: normalize-path { $values { "path" "a pathname string" } { "path'" "a new pathname string" } } { $description "Prepends the " { $link current-directory } " to the pathname, resolves a " { $snippet "resource:" } " or " { $snippet "vocab:" } " prefix, if present (see " { $link "io.pathnames.special" } "). Also converts the path into a UNC path on Windows." } { $notes "High-level words, such as " { $link } " and " { $link delete-file } " call this word for you. It only needs to be called directly when passing pathnames to C functions or external processes. This is because Factor does not use the operating system's notion of a current directory, and instead maintains its own dynamically-scoped " { $link current-directory } " variable." } -{ $notes "On Windows NT platforms, this word does prepends the Unicode path prefix." } +{ $notes "On Windows NT platforms, this word prepends the Unicode path prefix." } { $examples "For example, if you create a file named " { $snippet "data.txt" } " in the current directory, and wish to pass it to a process, you must normalize it:" { $code From 236b2e6dc5fe8c594570af4110a943fc5a5b277d Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 17 Feb 2010 12:50:32 -0800 Subject: [PATCH 30/62] =?UTF-8?q?update=20gpu=20docs=E2=80=94VAOs=20no=20l?= =?UTF-8?q?onger=20required?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extra/gpu/gpu-docs.factor | 2 +- extra/gpu/shaders/shaders-docs.factor | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/extra/gpu/gpu-docs.factor b/extra/gpu/gpu-docs.factor index 3c0c24e97e..103e0c60a1 100644 --- a/extra/gpu/gpu-docs.factor +++ b/extra/gpu/gpu-docs.factor @@ -42,6 +42,6 @@ ARTICLE: "gpu-summary" "GPU-accelerated rendering" "gpu.shaders" "gpu.render" } -"The library is built on top of the OpenGL API, but it aims to be complete enough that raw OpenGL calls are never needed. OpenGL 2.0 with the vertex array object extension (" { $snippet "GL_APPLE_vertex_array_object" } " or " { $snippet "GL_ARB_vertex_array_object" } ") is required. Some features require later OpenGL versions or additional extensions; these requirements are documented alongside individual words. To make full use of the library, an OpenGL 3.1 or later implementation is recommended." ; +"The library is built on top of the OpenGL API, but it aims to be complete enough that raw OpenGL calls are never needed. OpenGL 2.0 is required. Some features require later OpenGL versions or additional extensions; these requirements are documented alongside individual words. To make full use of the library, an OpenGL 3.1 or later implementation is recommended." ; ABOUT: "gpu-summary" diff --git a/extra/gpu/shaders/shaders-docs.factor b/extra/gpu/shaders/shaders-docs.factor index dd16224529..96a8561e9f 100644 --- a/extra/gpu/shaders/shaders-docs.factor +++ b/extra/gpu/shaders/shaders-docs.factor @@ -167,14 +167,23 @@ HELP: vertex-shader { $class-description "This " { $link shader-kind } " indicates that a " { $link shader } " is a vertex shader." } ; HELP: vertex-array -{ $class-description "A " { $snippet "vertex-array" } " object associates a shader " { $link program-instance } " with vertex attribute data from one or more " { $link buffer } "s. The format of the binary data inside these buffers is described using " { $link vertex-format } "s. " { $snippet "vertex-array" } "s are constructed using the " { $link } " or " { $link } " words." } ; +{ $class-description "A " { $snippet "vertex-array" } " object associates a shader " { $link program-instance } " with vertex attribute data from one or more " { $link buffer } "s. The format of the binary data inside these buffers is described using " { $link vertex-format } "s. " { $snippet "vertex-array" } "s are constructed using the " { $link } " or " { $link } " words. The actual type of a vertex-array object is opaque, but the " { $link vertex-array-buffers } " word can be used to query a vertex array object for its component buffers." } ; + +HELP: vertex-array-buffers +{ $values + { "vertex-array" vertex-array } + { "vertex-buffer" buffer } +} +{ $description "Returns a sequence containing all of the " { $link buffer } " objects that make up " { $snippet "vertex-array" } "." } ; HELP: vertex-array-buffer { $values { "vertex-array" vertex-array } { "vertex-buffer" buffer } } -{ $description "Returns the first " { $link buffer } " object comprised in " { $snippet "vertex-array" } "." } ; +{ $description "Returns the first " { $link buffer } " object that makes up " { $snippet "vertex-array" } "." } ; + +{ vertex-array-buffer vertex-array-buffers } related-words HELP: vertex-attribute { $class-description "This tuple type is passed to " { $link define-vertex-format } " to define a new " { $link vertex-format } " type." } ; @@ -204,7 +213,8 @@ ARTICLE: "gpu.shaders" "Shader objects" { $subsections vertex-array - vertex-array + + POSTPONE: VERTEX-FORMAT: } ; From f26460450e5ea4de9cf7cf7217d540b856e09ea1 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 17 Feb 2010 16:05:59 -0800 Subject: [PATCH 31/62] Revert "vocabs.loader: make vocab-dir+ use path-separator too" This reverts commit 2dcc7206292cde1ba52b12620a12848f58223a1b. --- core/vocabs/loader/loader.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/vocabs/loader/loader.factor b/core/vocabs/loader/loader.factor index 390cfceb95..0f2e3f7178 100644 --- a/core/vocabs/loader/loader.factor +++ b/core/vocabs/loader/loader.factor @@ -42,7 +42,7 @@ PRIVATE> : vocab-dir+ ( vocab str/f -- path ) [ vocab-name "." split ] dip [ [ dup last ] dip append suffix ] when* - path-separator join ; + "/" join ; : find-vocab-root ( vocab -- path/f ) vocab-name dup root-cache get at From 1250a0fcfd2a23edb3504ad81cfa83285d6677f7 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 17 Feb 2010 16:06:13 -0800 Subject: [PATCH 32/62] Revert "make io.pathnames tests path-separator-neutral" This reverts commit f344c0062966a8c7ff9a9c8e57d06316941f8c12. --- core/io/pathnames/pathnames-tests.factor | 35 +++++++++++------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/core/io/pathnames/pathnames-tests.factor b/core/io/pathnames/pathnames-tests.factor index 38cfe330fb..f23a1ac1f4 100644 --- a/core/io/pathnames/pathnames-tests.factor +++ b/core/io/pathnames/pathnames-tests.factor @@ -1,6 +1,6 @@ USING: io.pathnames io.files.temp io.directories continuations math io.files.private kernel -namespaces sequences tools.test io.pathnames.private ; +namespaces tools.test io.pathnames.private ; IN: io.pathnames.tests [ "passwd" ] [ "/etc/passwd" file-name ] unit-test @@ -11,23 +11,20 @@ IN: io.pathnames.tests [ "freetype6.dll" ] [ "resource:freetype6.dll" file-name ] unit-test [ "freetype6.dll" ] [ "resource:/freetype6.dll" file-name ] unit-test -: >test-path ( path -- path' ) - [ dup path-separator? [ drop CHAR: / ] when ] map ; - -[ "/usr/lib" ] [ "/usr" "lib" append-path >test-path ] unit-test -[ "/usr/lib" ] [ "/usr/" "lib" append-path >test-path ] unit-test -[ "/usr/lib" ] [ "/usr" "./lib" append-path >test-path ] unit-test -[ "/usr/lib/" ] [ "/usr" "./lib/" append-path >test-path ] unit-test -[ "/lib" ] [ "/usr" "../lib" append-path >test-path ] unit-test -[ "/lib/" ] [ "/usr" "../lib/" append-path >test-path ] unit-test +[ "/usr/lib" ] [ "/usr" "lib" append-path ] unit-test +[ "/usr/lib" ] [ "/usr/" "lib" append-path ] unit-test +[ "/usr/lib" ] [ "/usr" "./lib" append-path ] unit-test +[ "/usr/lib/" ] [ "/usr" "./lib/" append-path ] unit-test +[ "/lib" ] [ "/usr" "../lib" append-path ] unit-test +[ "/lib/" ] [ "/usr" "../lib/" append-path ] unit-test [ "" ] [ "" "." append-path ] unit-test [ "" ".." append-path ] must-fail -[ "/" ] [ "/" "./." append-path >test-path ] unit-test -[ "/" ] [ "/" "././" append-path >test-path ] unit-test -[ "/a/b/lib" ] [ "/a/b/c/d/e/f/" "../../../../lib" append-path >test-path ] unit-test -[ "/a/b/lib/" ] [ "/a/b/c/d/e/f/" "../../../../lib/" append-path >test-path ] unit-test +[ "/" ] [ "/" "./." append-path ] unit-test +[ "/" ] [ "/" "././" append-path ] unit-test +[ "/a/b/lib" ] [ "/a/b/c/d/e/f/" "../../../../lib" append-path ] unit-test +[ "/a/b/lib/" ] [ "/a/b/c/d/e/f/" "../../../../lib/" append-path ] unit-test [ "" "../lib/" append-path ] must-fail [ "lib" ] [ "" "lib" append-path ] unit-test @@ -48,10 +45,10 @@ IN: io.pathnames.tests [ "" parent-directory ] must-fail [ "." ] [ "boot.x86.64.image" parent-directory ] unit-test -[ "bar/foo" ] [ "bar/baz" "..///foo" append-path >test-path ] unit-test -[ "bar/baz/foo" ] [ "bar/baz" ".///foo" append-path >test-path ] unit-test -[ "bar/foo" ] [ "bar/baz" "./..//foo" append-path >test-path ] unit-test -[ "bar/foo" ] [ "bar/baz" "./../././././././///foo" append-path >test-path ] unit-test +[ "bar/foo" ] [ "bar/baz" "..///foo" append-path ] unit-test +[ "bar/baz/foo" ] [ "bar/baz" ".///foo" append-path ] unit-test +[ "bar/foo" ] [ "bar/baz" "./..//foo" append-path ] unit-test +[ "bar/foo" ] [ "bar/baz" "./../././././././///foo" append-path ] unit-test [ t ] [ "resource:core" absolute-path? ] unit-test [ f ] [ "" absolute-path? ] unit-test @@ -64,7 +61,7 @@ IN: io.pathnames.tests "." current-directory set ".." "resource-path" set [ "../core/bootstrap/stage2.factor" ] - [ "resource:core/bootstrap/stage2.factor" absolute-path >test-path ] + [ "resource:core/bootstrap/stage2.factor" absolute-path ] unit-test ] with-scope From 97654b67c1109b3f130b773b0af05396ec7c1a99 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 17 Feb 2010 16:06:30 -0800 Subject: [PATCH 33/62] Revert "io.pathnames: make absolute-path? public" This reverts commit 48756c9fca10a3a89ab8bb4b55c4fa711e524f74. --- core/io/pathnames/pathnames.factor | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/io/pathnames/pathnames.factor b/core/io/pathnames/pathnames.factor index 2be66ef186..5a9c647973 100644 --- a/core/io/pathnames/pathnames.factor +++ b/core/io/pathnames/pathnames.factor @@ -76,8 +76,6 @@ ERROR: no-parent-directory path ; [ f ] } cond ; -PRIVATE> - : absolute-path? ( path -- ? ) { { [ dup empty? ] [ f ] } @@ -87,6 +85,8 @@ PRIVATE> [ f ] } cond nip ; +PRIVATE> + : append-path ( path1 path2 -- path ) { { [ over empty? ] [ append-path-empty ] } From e70fcf159d9f8d48c8e575324aeec8da66c98486 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 17 Feb 2010 16:06:45 -0800 Subject: [PATCH 34/62] Revert "fix append-path and vocab-dir to use path-separator" This reverts commit 0f3026b8712816d29143ff49dea807acbf03e0e0. --- core/io/pathnames/pathnames.factor | 2 +- core/vocabs/loader/loader.factor | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/core/io/pathnames/pathnames.factor b/core/io/pathnames/pathnames.factor index 5a9c647973..b307128efb 100644 --- a/core/io/pathnames/pathnames.factor +++ b/core/io/pathnames/pathnames.factor @@ -103,7 +103,7 @@ PRIVATE> ] } [ [ trim-tail-separators ] - [ trim-head-separators ] bi* path-separator glue + [ trim-head-separators ] bi* "/" glue ] } cond ; diff --git a/core/vocabs/loader/loader.factor b/core/vocabs/loader/loader.factor index 0f2e3f7178..2c0f67641d 100644 --- a/core/vocabs/loader/loader.factor +++ b/core/vocabs/loader/loader.factor @@ -35,9 +35,7 @@ M: string vocab-path ( string -- path/f ) PRIVATE> : vocab-dir ( vocab -- dir ) - vocab-name - os windows? { { CHAR: . CHAR: \\ } } { { CHAR: . CHAR: / } } ? - substitute ; + vocab-name { { CHAR: . CHAR: / } } substitute ; : vocab-dir+ ( vocab str/f -- path ) [ vocab-name "." split ] dip From 488e5ead26d7757671ba8f748c80f1d7ce11706f Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 19 Feb 2010 04:11:48 +1300 Subject: [PATCH 35/62] tools.deploy.libraries.windows: add unportable tag to avoid loading windows.kernel32 on non-windows platforms --- basis/tools/deploy/libraries/windows/tags.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 basis/tools/deploy/libraries/windows/tags.txt diff --git a/basis/tools/deploy/libraries/windows/tags.txt b/basis/tools/deploy/libraries/windows/tags.txt new file mode 100644 index 0000000000..6bf68304bb --- /dev/null +++ b/basis/tools/deploy/libraries/windows/tags.txt @@ -0,0 +1 @@ +unportable From 2a517d31dffff7e0b6ef9056f6edf6b033ce81bd Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 19 Feb 2010 04:11:57 +1300 Subject: [PATCH 36/62] help.stylesheet: tweak color --- basis/help/stylesheet/stylesheet.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/help/stylesheet/stylesheet.factor b/basis/help/stylesheet/stylesheet.factor index d5b783fef8..254b65e5ac 100644 --- a/basis/help/stylesheet/stylesheet.factor +++ b/basis/help/stylesheet/stylesheet.factor @@ -83,7 +83,7 @@ H{ SYMBOL: output-style H{ { font-style bold } - { foreground COLOR: dark-red } + { foreground COLOR: DarkOrange4 } } output-style set-global SYMBOL: url-style From d3d7392fa9424383d71e7af0dce8d9f5853fa174 Mon Sep 17 00:00:00 2001 From: Erik Charlebois Date: Thu, 18 Feb 2010 12:52:33 -0800 Subject: [PATCH 37/62] Implement input grabbing for x11; add do-nothing game.input backend for linux. The game and gpu demos now run correctly. --- basis/game/input/input.factor | 2 +- basis/game/input/linux/authors.txt | 1 + basis/game/input/linux/linux.factor | 49 +++++++++++++++++++++++++++++ basis/game/input/linux/summary.txt | 1 + basis/game/input/linux/tags.txt | 1 + basis/ui/backend/x11/x11.factor | 33 +++++++++++++------ basis/x11/xlib/xlib.factor | 14 +++++++++ 7 files changed, 91 insertions(+), 10 deletions(-) create mode 100644 basis/game/input/linux/authors.txt create mode 100644 basis/game/input/linux/linux.factor create mode 100644 basis/game/input/linux/summary.txt create mode 100644 basis/game/input/linux/tags.txt diff --git a/basis/game/input/input.factor b/basis/game/input/input.factor index a2afbe92a3..7543a05c60 100644 --- a/basis/game/input/input.factor +++ b/basis/game/input/input.factor @@ -93,5 +93,5 @@ M: mouse-state clone { { [ os windows? ] [ "game.input.xinput" require ] } { [ os macosx? ] [ "game.input.iokit" require ] } - { [ t ] [ ] } + { [ os linux? ] [ "game.input.linux" require ] } } cond diff --git a/basis/game/input/linux/authors.txt b/basis/game/input/linux/authors.txt new file mode 100644 index 0000000000..67cf648cf5 --- /dev/null +++ b/basis/game/input/linux/authors.txt @@ -0,0 +1 @@ +Erik Charlebois \ No newline at end of file diff --git a/basis/game/input/linux/linux.factor b/basis/game/input/linux/linux.factor new file mode 100644 index 0000000000..465cefa84b --- /dev/null +++ b/basis/game/input/linux/linux.factor @@ -0,0 +1,49 @@ +! Copyright (C) 2010 Erik Charlebois. +! See http://factorcode.org/license.txt for BSD license. +USING: kernel game.input namespaces classes windows.com.syntax +bit-arrays +vectors ; +IN: game.input.linux + +SINGLETON: linux-game-input-backend + +linux-game-input-backend game-input-backend set-global + +M: linux-game-input-backend (open-game-input) + ; + +M: linux-game-input-backend (close-game-input) + ; + +M: linux-game-input-backend (reset-game-input) + ; + +M: linux-game-input-backend get-controllers + { } ; + +M: linux-game-input-backend product-string + drop "" ; + +M: linux-game-input-backend product-id + drop GUID: {00000000-0000-0000-0000-000000000000} ; + +M: linux-game-input-backend instance-id + drop GUID: {00000000-0000-0000-0000-000000000000} ; + +M: linux-game-input-backend read-controller + drop controller-state new ; + +M: linux-game-input-backend calibrate-controller + drop ; + +M: linux-game-input-backend vibrate-controller + 3drop ; + +M: linux-game-input-backend read-keyboard + 256 keyboard-state boa ; + +M: linux-game-input-backend read-mouse + 0 0 0 0 2 mouse-state boa ; + +M: linux-game-input-backend reset-mouse + ; diff --git a/basis/game/input/linux/summary.txt b/basis/game/input/linux/summary.txt new file mode 100644 index 0000000000..5c88274722 --- /dev/null +++ b/basis/game/input/linux/summary.txt @@ -0,0 +1 @@ +Linux backend for game input. diff --git a/basis/game/input/linux/tags.txt b/basis/game/input/linux/tags.txt new file mode 100644 index 0000000000..84d4140a70 --- /dev/null +++ b/basis/game/input/linux/tags.txt @@ -0,0 +1 @@ +games diff --git a/basis/ui/backend/x11/x11.factor b/basis/ui/backend/x11/x11.factor index 4c977f17a4..673dd8e9c3 100644 --- a/basis/ui/backend/x11/x11.factor +++ b/basis/ui/backend/x11/x11.factor @@ -1,14 +1,13 @@ ! Copyright (C) 2005, 2009 Eduardo Cavazos and Slava Pestov ! See http://factorcode.org/license.txt for BSD license. -USING: accessors alien.c-types arrays ascii assocs colors -classes.struct combinators io.encodings.ascii -io.encodings.string io.encodings.utf8 kernel literals math -namespaces sequences strings ui ui.backend ui.clipboards -ui.event-loop ui.gadgets ui.gadgets.private ui.gadgets.worlds -ui.gestures ui.pixel-formats ui.pixel-formats.private -ui.private x11 x11.clipboard x11.constants x11.events x11.glx -x11.io x11.windows x11.xim x11.xlib environment command-line -combinators.short-circuit ; +USING: accessors alien.c-types ascii assocs classes.struct combinators +combinators.short-circuit command-line environment io.encodings.ascii +io.encodings.string io.encodings.utf8 kernel literals locals math +namespaces sequences specialized-arrays.instances.alien.c-types.uchar +strings ui ui.backend ui.clipboards ui.event-loop ui.gadgets +ui.gadgets.private ui.gadgets.worlds ui.gestures ui.pixel-formats +ui.pixel-formats.private ui.private x11 x11.clipboard x11.constants +x11.events x11.glx x11.io x11.windows x11.xim x11.xlib ; IN: ui.backend.x11 SINGLETON: x11-ui-backend @@ -328,6 +327,22 @@ M: x11-ui-backend (with-ui) ( quot -- ) M: x11-ui-backend beep ( -- ) dpy get 100 XBell drop ; +: black ( -- xcolor ) 0 0 0 0 0 0 XColor ; inline + +M:: x11-ui-backend (grab-input) ( handle -- ) + handle window>> :> wnd + dpy get :> dpy + dpy wnd uchar-array{ 0 0 0 0 0 0 0 0 } 8 8 XCreateBitmapFromData :> pixmap + dpy pixmap dup black dup 0 0 XCreatePixmapCursor :> cursor + + dpy wnd 1 NoEventMask GrabModeAsync dup wnd cursor CurrentTime XGrabPointer drop + + dpy cursor XFreeCursor drop + dpy pixmap XFreePixmap drop ; + +M: x11-ui-backend (ungrab-input) + drop dpy get CurrentTime XUngrabPointer drop ; + x11-ui-backend ui-backend set-global [ "DISPLAY" os-env "ui.tools" "listener" ? ] diff --git a/basis/x11/xlib/xlib.factor b/basis/x11/xlib/xlib.factor index a6097c9dad..7235aaf679 100644 --- a/basis/x11/xlib/xlib.factor +++ b/basis/x11/xlib/xlib.factor @@ -284,6 +284,11 @@ X-FUNCTION: int XConvertSelection ( Display* display, Atom selection, Atom targe X-FUNCTION: Pixmap XCreatePixmap ( Display* display, Drawable d, uint width, uint height, uint depth ) ; X-FUNCTION: int XFreePixmap ( Display* display, Pixmap pixmap ) ; +! 5.2 - Creating, Recoloring, and Freeing Cursors + +C-TYPE: XColor +X-FUNCTION: Cursor XCreatePixmapCursor ( Display* display, Pixmap source, Pixmap mask, XColor* foreground_color, XColor* background_color, uint x, uint y ) ; +X-FUNCTION: int XFreeCursor ( Display* display, Cursor cursor ) ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! 6 - Color Management Functions @@ -1096,6 +1101,7 @@ X-FUNCTION: int XGrabPointer ( X-FUNCTION: Status XUngrabPointer ( Display* display, Time time ) ; X-FUNCTION: Status XChangeActivePointerGrab ( Display* display, uint event_mask, Cursor cursor, Time time ) ; X-FUNCTION: Status XGrabKey ( Display* display, int keycode, uint modifiers, Window grab_window, Bool owner_events, int pointer_mode, int keyboard_mode ) ; +X-FUNCTION: int XGrabKeyboard ( Display* display, Window grab_window, Bool owner_events, int pointer_mode, int keyboard_mode, Time time ) ; X-FUNCTION: Status XSetInputFocus ( Display* display, Window focus, int revert_to, Time time ) ; X-FUNCTION: Status XGetInputFocus ( Display* display, @@ -1210,6 +1216,14 @@ STRUCT: XVisualInfo { colormap_size int } { bits_per_rgb int } ; +! 16.9 Manipulating Bitmaps +X-FUNCTION: Pixmap XCreateBitmapFromData ( + Display* display, + Drawable d, + char* data, + uint width, + uint height ) ; + ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Appendix D - Compatibility Functions ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! From 5d80153d53671a6691feb1c72abffa38c902d940 Mon Sep 17 00:00:00 2001 From: Erik Charlebois Date: Thu, 18 Feb 2010 12:53:15 -0800 Subject: [PATCH 38/62] Bindings to libusb --- extra/libusb/authors.txt | 1 + extra/libusb/libusb.factor | 422 +++++++++++++++++++++++++++++++++++++ extra/libusb/summary.txt | 1 + extra/libusb/tags.txt | 1 + 4 files changed, 425 insertions(+) create mode 100644 extra/libusb/authors.txt create mode 100644 extra/libusb/libusb.factor create mode 100644 extra/libusb/summary.txt create mode 100644 extra/libusb/tags.txt diff --git a/extra/libusb/authors.txt b/extra/libusb/authors.txt new file mode 100644 index 0000000000..67cf648cf5 --- /dev/null +++ b/extra/libusb/authors.txt @@ -0,0 +1 @@ +Erik Charlebois \ No newline at end of file diff --git a/extra/libusb/libusb.factor b/extra/libusb/libusb.factor new file mode 100644 index 0000000000..d521015d6f --- /dev/null +++ b/extra/libusb/libusb.factor @@ -0,0 +1,422 @@ +! Copyright (C) 2010 Erik Charlebois. +! See http://factorcode.org/license.txt for BSD license. +USING: accessors alien alien.c-types alien.libraries +alien.syntax classes.struct combinators endian io.binary +kernel locals math sequences specialized-arrays +system unix.time unix.types ; +FROM: alien.c-types => short ; +IN: libusb + +<< "libusb" { + { [ os windows? ] [ "libusb-1.0.dll" ] } + { [ os macosx? ] [ "libusb-1.0.dylib" ] } + { [ os unix? ] [ "libusb-1.0.so" ] } + } cond "cdecl" add-library >> +LIBRARY: libusb + +: libusb_cpu_to_le16 ( x -- y ) + 2 >native-endian le> ; inline + +ALIAS: libusb_le16_to_cpu libusb_cpu_to_le16 + +CONSTANT: LIBUSB_CLASS_PER_INTERFACE 0 +CONSTANT: LIBUSB_CLASS_AUDIO 1 +CONSTANT: LIBUSB_CLASS_COMM 2 +CONSTANT: LIBUSB_CLASS_HID 3 +CONSTANT: LIBUSB_CLASS_PRINTER 7 +CONSTANT: LIBUSB_CLASS_PTP 6 +CONSTANT: LIBUSB_CLASS_MASS_STORAGE 8 +CONSTANT: LIBUSB_CLASS_HUB 9 +CONSTANT: LIBUSB_CLASS_DATA 10 +CONSTANT: LIBUSB_CLASS_VENDOR_SPEC HEX: ff +TYPEDEF: int libusb_class_code + +CONSTANT: LIBUSB_DT_DEVICE HEX: 01 +CONSTANT: LIBUSB_DT_CONFIG HEX: 02 +CONSTANT: LIBUSB_DT_STRING HEX: 03 +CONSTANT: LIBUSB_DT_INTERFACE HEX: 04 +CONSTANT: LIBUSB_DT_ENDPOINT HEX: 05 +CONSTANT: LIBUSB_DT_HID HEX: 21 +CONSTANT: LIBUSB_DT_REPORT HEX: 22 +CONSTANT: LIBUSB_DT_PHYSICAL HEX: 23 +CONSTANT: LIBUSB_DT_HUB HEX: 29 +TYPEDEF: int libusb_descriptor_type + +CONSTANT: LIBUSB_DT_DEVICE_SIZE 18 +CONSTANT: LIBUSB_DT_CONFIG_SIZE 9 +CONSTANT: LIBUSB_DT_INTERFACE_SIZE 9 +CONSTANT: LIBUSB_DT_ENDPOINT_SIZE 7 +CONSTANT: LIBUSB_DT_ENDPOINT_AUDIO_SIZE 9 +CONSTANT: LIBUSB_DT_HUB_NONVAR_SIZE 7 + +CONSTANT: LIBUSB_ENDPOINT_ADDRESS_MASK HEX: 0f +CONSTANT: LIBUSB_ENDPOINT_DIR_MASK HEX: 80 + +CONSTANT: LIBUSB_ENDPOINT_IN HEX: 80 +CONSTANT: LIBUSB_ENDPOINT_OUT HEX: 00 +TYPEDEF: int libusb_endpoint_direction + +CONSTANT: LIBUSB_TRANSFER_TYPE_MASK HEX: 03 + +CONSTANT: LIBUSB_TRANSFER_TYPE_CONTROL 0 +CONSTANT: LIBUSB_TRANSFER_TYPE_ISOCHRONOUS 1 +CONSTANT: LIBUSB_TRANSFER_TYPE_BULK 2 +CONSTANT: LIBUSB_TRANSFER_TYPE_INTERRUPT 3 +TYPEDEF: int libusb_transfer_type + +CONSTANT: LIBUSB_REQUEST_GET_STATUS HEX: 00 +CONSTANT: LIBUSB_REQUEST_CLEAR_FEATURE HEX: 01 +CONSTANT: LIBUSB_REQUEST_SET_FEATURE HEX: 03 +CONSTANT: LIBUSB_REQUEST_SET_ADDRESS HEX: 05 +CONSTANT: LIBUSB_REQUEST_GET_DESCRIPTOR HEX: 06 +CONSTANT: LIBUSB_REQUEST_SET_DESCRIPTOR HEX: 07 +CONSTANT: LIBUSB_REQUEST_GET_CONFIGURATION HEX: 08 +CONSTANT: LIBUSB_REQUEST_SET_CONFIGURATION HEX: 09 +CONSTANT: LIBUSB_REQUEST_GET_INTERFACE HEX: 0A +CONSTANT: LIBUSB_REQUEST_SET_INTERFACE HEX: 0B +CONSTANT: LIBUSB_REQUEST_SYNCH_FRAME HEX: 0C +TYPEDEF: int libusb_standard_request + +CONSTANT: LIBUSB_REQUEST_TYPE_STANDARD HEX: 00 +CONSTANT: LIBUSB_REQUEST_TYPE_CLASS HEX: 20 +CONSTANT: LIBUSB_REQUEST_TYPE_VENDOR HEX: 40 +CONSTANT: LIBUSB_REQUEST_TYPE_RESERVED HEX: 60 + +CONSTANT: LIBUSB_RECIPIENT_DEVICE HEX: 00 +CONSTANT: LIBUSB_RECIPIENT_INTERFACE HEX: 01 +CONSTANT: LIBUSB_RECIPIENT_ENDPOINT HEX: 02 +CONSTANT: LIBUSB_RECIPIENT_OTHER HEX: 03 +TYPEDEF: int libusb_request_recipient + +CONSTANT: LIBUSB_ISO_SYNC_TYPE_MASK HEX: 0C + +CONSTANT: LIBUSB_ISO_SYNC_TYPE_NONE 0 +CONSTANT: LIBUSB_ISO_SYNC_TYPE_ASYNC 1 +CONSTANT: LIBUSB_ISO_SYNC_TYPE_ADAPTIVE 2 +CONSTANT: LIBUSB_ISO_SYNC_TYPE_SYNC 3 +TYPEDEF: int libusb_iso_sync_type + +CONSTANT: LIBUSB_ISO_USAGE_TYPE_MASK HEX: 30 + +CONSTANT: LIBUSB_ISO_USAGE_TYPE_DATA 0 +CONSTANT: LIBUSB_ISO_USAGE_TYPE_FEEDBACK 1 +CONSTANT: LIBUSB_ISO_USAGE_TYPE_IMPLICIT 2 +TYPEDEF: int libusb_iso_usage_type + +STRUCT: libusb_device_descriptor + { bLength uint8_t } + { bDescriptorType uint8_t } + { bcdUSB uint16_t } + { bDeviceClass uint8_t } + { bDeviceSubClass uint8_t } + { bDeviceProtocol uint8_t } + { bMaxPacketSize0 uint8_t } + { idVendor uint16_t } + { idProduct uint16_t } + { bcdDevice uint16_t } + { iManufacturer uint8_t } + { iProduct uint8_t } + { iSerialNumber uint8_t } + { bNumConfigurations uint8_t } ; + +STRUCT: libusb_endpoint_descriptor + { bLength uint8_t } + { bDescriptorType uint8_t } + { bEndpointAddress uint8_t } + { bmAttributes uint8_t } + { wMaxPacketSize uint16_t } + { bInterval uint8_t } + { bRefresh uint8_t } + { bSynchAddress uint8_t } + { extra uchar* } + { extra_length int } ; + +STRUCT: libusb_interface_descriptor + { bLength uint8_t } + { bDescriptorType uint8_t } + { bInterfaceNumber uint8_t } + { bAlternateSetting uint8_t } + { bNumEndpoints uint8_t } + { bInterfaceClass uint8_t } + { bInterfaceSubClass uint8_t } + { bInterfaceProtocol uint8_t } + { iInterface uint8_t } + { endpoint libusb_endpoint_descriptor* } + { extra uchar* } + { extra_length int } ; + +STRUCT: libusb_interface + { altsetting libusb_interface_descriptor* } + { num_altsetting int } ; + +STRUCT: libusb_config_descriptor + { bLength uint8_t } + { bDescriptorType uint8_t } + { wTotalLength uint16_t } + { bNumInterfaces uint8_t } + { bConfigurationValue uint8_t } + { iConfiguration uint8_t } + { bmAttributes uint8_t } + { MaxPower uint8_t } + { interface libusb_interface* } + { extra uchar* } + { extra_length int } ; + +STRUCT: libusb_control_setup + { bmRequestType uint8_t } + { bRequest uint8_t } + { wValue uint16_t } + { wIndex uint16_t } + { wLength uint16_t } ; + +: LIBUSB_CONTROL_SETUP_SIZE ( -- x ) libusb_control_setup heap-size ; inline + +C-TYPE: libusb_context +C-TYPE: libusb_device +C-TYPE: libusb_device_handle + +CONSTANT: LIBUSB_SUCCESS 0 +CONSTANT: LIBUSB_ERROR_IO -1 +CONSTANT: LIBUSB_ERROR_INVALID_PARAM -2 +CONSTANT: LIBUSB_ERROR_ACCESS -3 +CONSTANT: LIBUSB_ERROR_NO_DEVICE -4 +CONSTANT: LIBUSB_ERROR_NOT_FOUND -5 +CONSTANT: LIBUSB_ERROR_BUSY -6 +CONSTANT: LIBUSB_ERROR_TIMEOUT -7 +CONSTANT: LIBUSB_ERROR_OVERFLOW -8 +CONSTANT: LIBUSB_ERROR_PIPE -9 +CONSTANT: LIBUSB_ERROR_INTERRUPTED -10 +CONSTANT: LIBUSB_ERROR_NO_MEM -11 +CONSTANT: LIBUSB_ERROR_NOT_SUPPORTED -12 +CONSTANT: LIBUSB_ERROR_OTHER -99 +TYPEDEF: int libusb_error + +C-ENUM: + LIBUSB_TRANSFER_COMPLETED + LIBUSB_TRANSFER_ERROR + LIBUSB_TRANSFER_TIMED_OUT + LIBUSB_TRANSFER_CANCELLED + LIBUSB_TRANSFER_STALL + LIBUSB_TRANSFER_NO_DEVICE + LIBUSB_TRANSFER_OVERFLOW ; +TYPEDEF: int libusb_transfer_status + +CONSTANT: LIBUSB_TRANSFER_SHORT_NOT_OK 1 +CONSTANT: LIBUSB_TRANSFER_FREE_BUFFER 2 +CONSTANT: LIBUSB_TRANSFER_FREE_TRANSFER 4 +TYPEDEF: int libusb_transfer_flags + +STRUCT: libusb_iso_packet_descriptor + { length uint } + { actual_length uint } + { status libusb_transfer_status } ; +SPECIALIZED-ARRAY: libusb_iso_packet_descriptor + +C-TYPE: libusb_transfer + +CALLBACK: void libusb_transfer_cb_fn ( libusb_transfer* transfer ) ; + +STRUCT: libusb_transfer + { dev_handle libusb_device_handle* } + { flags uint8_t } + { endpoint uchar } + { type uchar } + { timeout uint } + { status libusb_transfer_status } + { length int } + { actual_length int } + { callback libusb_transfer_cb_fn } + { user_data void* } + { buffer uchar* } + { num_iso_packets int } + { iso_packet_desc libusb_iso_packet_descriptor[0] } ; + +FUNCTION: int libusb_init ( libusb_context** ctx ) ; +FUNCTION: void libusb_exit ( libusb_context* ctx ) ; +FUNCTION: void libusb_set_debug ( libusb_context* ctx, int level ) ; + +FUNCTION: ssize_t libusb_get_device_list ( libusb_context* ctx, libusb_device*** list ) ; +FUNCTION: void libusb_free_device_list ( libusb_device** list, int unref_devices ) ; +FUNCTION: libusb_device* libusb_ref_device ( libusb_device* dev ) ; +FUNCTION: void libusb_unref_device ( libusb_device* dev ) ; + +FUNCTION: int libusb_get_configuration ( libusb_device_handle* dev, int* config ) ; +FUNCTION: int libusb_get_device_descriptor ( libusb_device* dev, libusb_device_descriptor* desc ) ; +FUNCTION: int libusb_get_active_config_descriptor ( libusb_device* dev, libusb_config_descriptor** config ) ; +FUNCTION: int libusb_get_config_descriptor ( libusb_device* dev, uint8_t config_index, libusb_config_descriptor** config ) ; +FUNCTION: int libusb_get_config_descriptor_by_value ( libusb_device* dev, uint8_t bConfigurationValue, libusb_config_descriptor** config ) ; +FUNCTION: void libusb_free_config_descriptor ( libusb_config_descriptor* config ) ; +FUNCTION: uint8_t libusb_get_bus_number ( libusb_device* dev ) ; +FUNCTION: uint8_t libusb_get_device_address ( libusb_device* dev ) ; +FUNCTION: int libusb_get_max_packet_size ( libusb_device* dev, uchar endpoint ) ; + +FUNCTION: int libusb_open ( libusb_device* dev, libusb_device_handle** handle ) ; +FUNCTION: void libusb_close ( libusb_device_handle* dev_handle ) ; +FUNCTION: libusb_device* libusb_get_device ( libusb_device_handle* dev_handle ) ; + +FUNCTION: int libusb_set_configuration ( libusb_device_handle* dev, int configuration ) ; +FUNCTION: int libusb_claim_interface ( libusb_device_handle* dev, int iface ) ; +FUNCTION: int libusb_release_interface ( libusb_device_handle* dev, int iface ) ; + +FUNCTION: libusb_device_handle* libusb_open_device_with_vid_pid ( libusb_context* ctx, uint16_t vendor_id, uint16_t product_id ) ; + +FUNCTION: int libusb_set_interface_alt_setting ( libusb_device_handle* dev, int interface_number, int alternate_setting ) ; +FUNCTION: int libusb_clear_halt ( libusb_device_handle* dev, uchar endpoint ) ; +FUNCTION: int libusb_reset_device ( libusb_device_handle* dev ) ; + +FUNCTION: int libusb_kernel_driver_active ( libusb_device_handle* dev, int interface ) ; +FUNCTION: int libusb_detach_kernel_driver ( libusb_device_handle* dev, int interface ) ; +FUNCTION: int libusb_attach_kernel_driver ( libusb_device_handle* dev, int interface ) ; + +: libusb_control_transfer_get_data ( transfer -- data ) + buffer>> LIBUSB_CONTROL_SETUP_SIZE swap ; inline + +: libusb_control_transfer_get_setup ( transfer -- setup ) + buffer>> libusb_control_setup memory>struct ; inline + +:: libusb_fill_control_setup ( buffer bmRequestType bRequest wValue wIndex wLength -- ) + buffer libusb_control_setup memory>struct + bmRequestType >>bmRequestType + bRequest >>bRequest + wValue libusb_cpu_to_le16 >>wValue + wIndex libusb_cpu_to_le16 >>wIndex + wLength libusb_cpu_to_le16 >>wLength drop ; inline + +FUNCTION: libusb_transfer* libusb_alloc_transfer ( int iso_packets ) ; +FUNCTION: int libusb_submit_transfer ( libusb_transfer* transfer ) ; +FUNCTION: int libusb_cancel_transfer ( libusb_transfer* transfer ) ; +FUNCTION: void libusb_free_transfer ( libusb_transfer* transfer ) ; + +:: libusb_fill_control_transfer ( transfer dev_handle buffer callback user_data timeout -- ) + transfer + dev_handle >>dev_handle + 0 >>endpoint + LIBUSB_TRANSFER_TYPE_CONTROL >>type + timeout >>timeout + buffer >>buffer + user_data >>user_data + callback >>callback + + buffer [ + libusb_control_setup memory>struct wLength>> LIBUSB_CONTROL_SETUP_SIZE + + ] [ 0 ] if* >>length drop ; inline + +:: libusb_fill_bulk_transfer ( transfer dev_handle endpoint buffer length callback user_data timeout -- ) + transfer + dev_handle >>dev_handle + endpoint >>endpoint + LIBUSB_TRANSFER_TYPE_BULK >>type + timeout >>timeout + buffer >>buffer + length >>length + user_data >>user_data + callback >>callback + drop ; inline + +:: libusb_fill_interrupt_transfer ( transfer dev_handle endpoint buffer length callback user_data timeout -- ) + transfer + dev_handle >>dev_handle + endpoint >>endpoint + LIBUSB_TRANSFER_TYPE_INTERRUPT >>type + timeout >>timeout + buffer >>buffer + length >>length + user_data >>user_data + callback >>callback + drop ; inline + +:: libusb_fill_iso_transfer ( transfer dev_handle endpoint buffer length num_iso_packets callback user_data timeout -- ) + transfer + dev_handle >>dev_handle + endpoint >>endpoint + LIBUSB_TRANSFER_TYPE_ISOCHRONOUS >>type + timeout >>timeout + buffer >>buffer + length >>length + num_iso_packets >>num_iso_packets + user_data >>user_data + callback >>callback + drop ; inline + +: libusb_set_iso_packet_lengths ( transfer length -- ) + [ [ iso_packet_desc>> >c-ptr ] + [ num_iso_packets>> ] bi + + ] dip [ >>length drop ] curry each ; inline + +:: libusb_get_iso_packet_buffer ( transfer packet -- data ) + packet transfer num_iso_packets>> >= + [ f ] + [ + transfer + [ iso_packet_desc>> >c-ptr ] + [ num_iso_packets>> ] bi + 0 + [ length>> + ] reduce + transfer buffer>> + ] if ; + +:: libusb_get_iso_packet_buffer_simple ( transfer packet -- data ) + packet transfer num_iso_packets>> >= + [ f ] + [ + 0 transfer + [ iso_packet_desc>> >c-ptr ] + [ num_iso_packets>> ] bi + nth + length>> packet * + transfer buffer>> + ] if ; + +FUNCTION: int libusb_control_transfer ( libusb_device_handle* dev_handle, + uint8_t request_type, uint8_t request, uint16_t value, uint16_t index, + uchar* data, uint16_t length, uint timeout ) ; + +FUNCTION: int libusb_bulk_transfer ( libusb_device_handle* dev_handle, + uchar endpoint, uchar* data, int length, + int* actual_length, uint timeout ) ; + +FUNCTION: int libusb_interrupt_transfer ( libusb_device_handle* dev_handle, + uchar endpoint, uchar* data, int length, + int* actual_length, int timeout ) ; + +:: libusb_get_descriptor ( dev desc_type desc_index data length -- int ) + dev LIBUSB_ENDPOINT_IN LIBUSB_REQUEST_GET_DESCRIPTOR + desc_type 8 shift desc_index bitor 0 data + length 1000 libusb_control_transfer ; inline + +:: libusb_get_string_descriptor ( dev desc_index langid data length -- int ) + dev LIBUSB_ENDPOINT_IN LIBUSB_REQUEST_GET_DESCRIPTOR + LIBUSB_DT_STRING 8 shift desc_index bitor + langid data length 1000 libusb_control_transfer ; inline + +FUNCTION: int libusb_get_string_descriptor_ascii ( libusb_device_handle* dev, + uint8_t index, + uchar* data, + int length ) ; + +FUNCTION: int libusb_try_lock_events ( libusb_context* ctx ) ; +FUNCTION: void libusb_lock_events ( libusb_context* ctx ) ; +FUNCTION: void libusb_unlock_events ( libusb_context* ctx ) ; +FUNCTION: int libusb_event_handling_ok ( libusb_context* ctx ) ; +FUNCTION: int libusb_event_handler_active ( libusb_context* ctx ) ; +FUNCTION: void libusb_lock_event_waiters ( libusb_context* ctx ) ; +FUNCTION: void libusb_unlock_event_waiters ( libusb_context* ctx ) ; +FUNCTION: int libusb_wait_for_event ( libusb_context* ctx, timeval* tv ) ; +FUNCTION: int libusb_handle_events_timeout ( libusb_context* ctx, timeval* tv ) ; +FUNCTION: int libusb_handle_events ( libusb_context* ctx ) ; +FUNCTION: int libusb_handle_events_locked ( libusb_context* ctx, timeval* tv ) ; +FUNCTION: int libusb_get_next_timeout ( libusb_context* ctx, timeval* tv ) ; + +STRUCT: libusb_pollfd + { fd int } + { events short } ; + +CALLBACK: void libusb_pollfd_added_cb ( int fd, short events, void* user_data ) ; +CALLBACK: void libusb_pollfd_removed_cb ( int fd, void* user_data ) ; + +FUNCTION: libusb_pollfd** libusb_get_pollfds ( libusb_context* ctx ) ; +FUNCTION: void libusb_set_pollfd_notifiers ( libusb_context* ctx, + libusb_pollfd_added_cb added_cb, + libusb_pollfd_removed_cb removed_cb, + void* user_data ) ; diff --git a/extra/libusb/summary.txt b/extra/libusb/summary.txt new file mode 100644 index 0000000000..fc00ac5307 --- /dev/null +++ b/extra/libusb/summary.txt @@ -0,0 +1 @@ +Bindings to libusb diff --git a/extra/libusb/tags.txt b/extra/libusb/tags.txt new file mode 100644 index 0000000000..bb863cf9a0 --- /dev/null +++ b/extra/libusb/tags.txt @@ -0,0 +1 @@ +bindings From 220dd88a2ca6d2b7cac84d54773cb055cf253411 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 19 Feb 2010 12:31:52 +1300 Subject: [PATCH 39/62] Update documentation for new help lint check --- basis/calendar/calendar-docs.factor | 6 +-- basis/calendar/calendar.factor | 6 +-- basis/compression/lzw/lzw-docs.factor | 2 - basis/db/tuples/tuples-docs.factor | 2 +- basis/db/tuples/tuples.factor | 2 +- basis/dlists/dlists-docs.factor | 2 +- basis/dlists/dlists.factor | 2 +- .../normalization/normalization-docs.factor | 4 +- .../images/normalization/normalization.factor | 6 +-- basis/lists/lazy/lazy-docs.factor | 2 +- basis/math/bitwise/bitwise-docs.factor | 30 +++++++-------- basis/math/bitwise/bitwise.factor | 38 ++++++++----------- .../combinatorics/combinatorics-docs.factor | 8 ++-- basis/math/combinatorics/combinatorics.factor | 8 ++-- .../math/polynomials/polynomials-docs.factor | 6 +-- basis/math/polynomials/polynomials.factor | 6 +-- .../math/quaternions/quaternions-docs.factor | 2 +- basis/math/quaternions/quaternions.factor | 6 +-- basis/math/statistics/statistics-docs.factor | 2 - basis/opengl/shaders/shaders-docs.factor | 2 +- basis/random/random-docs.factor | 2 +- basis/random/random.factor | 2 +- basis/roman/roman-docs.factor | 10 ++--- basis/roman/roman.factor | 17 +++++---- basis/sequences/deep/deep-docs.factor | 2 +- basis/ui/gadgets/worlds/worlds-docs.factor | 2 +- basis/xml-rpc/xml-rpc-docs.factor | 2 +- basis/xml-rpc/xml-rpc.factor | 2 +- basis/xml/traversal/traversal-docs.factor | 2 +- basis/xml/traversal/traversal.factor | 2 +- core/kernel/kernel-docs.factor | 2 +- core/parser/parser-docs.factor | 2 +- core/sequences/sequences-docs.factor | 23 ++++++----- core/sequences/sequences.factor | 6 +-- extra/game/models/collada/collada-docs.factor | 4 +- extra/game/models/collada/collada.factor | 2 +- extra/game/models/obj/obj-docs.factor | 2 +- extra/gpu/shaders/shaders-docs.factor | 2 +- extra/math/transforms/fft/fft-docs.factor | 2 +- extra/math/transforms/fft/fft.factor | 12 +++--- extra/math/transforms/haar/haar-docs.factor | 4 +- extra/math/transforms/haar/haar.factor | 6 +-- extra/memory/piles/piles-docs.factor | 1 - extra/mongodb/driver/driver-docs.factor | 5 --- extra/spider/spider-docs.factor | 1 - 45 files changed, 120 insertions(+), 139 deletions(-) diff --git a/basis/calendar/calendar-docs.factor b/basis/calendar/calendar-docs.factor index 616c4d2c2c..6ce8b1d5fd 100644 --- a/basis/calendar/calendar-docs.factor +++ b/basis/calendar/calendar-docs.factor @@ -309,7 +309,7 @@ HELP: time- } ; HELP: convert-timezone -{ $values { "timestamp" timestamp } { "duration" duration } { "timestamp" timestamp } } +{ $values { "timestamp" timestamp } { "duration" duration } { "timestamp'" timestamp } } { $description "Converts the " { $snippet "timestamp" } "'s " { $snippet "gmt-offset" } " to the GMT offset represented by the " { $snippet "duration" } "." } { $examples { $example "USING: accessors calendar prettyprint ;" @@ -319,7 +319,7 @@ HELP: convert-timezone } ; HELP: >local-time -{ $values { "timestamp" timestamp } { "timestamp" timestamp } } +{ $values { "timestamp" timestamp } { "timestamp'" timestamp } } { $description "Converts the " { $snippet "timestamp" } " to the timezone of your computer." } { $examples { $example "USING: accessors calendar kernel prettyprint ;" @@ -329,7 +329,7 @@ HELP: >local-time } ; HELP: >gmt -{ $values { "timestamp" timestamp } { "timestamp" timestamp } } +{ $values { "timestamp" timestamp } { "timestamp'" timestamp } } { $description "Converts the " { $snippet "timestamp" } " to the GMT timezone." } { $examples { $example "USING: accessors calendar kernel prettyprint ;" diff --git a/basis/calendar/calendar.factor b/basis/calendar/calendar.factor index 3940af4856..1a64ceb646 100644 --- a/basis/calendar/calendar.factor +++ b/basis/calendar/calendar.factor @@ -316,15 +316,15 @@ M: duration <=> [ duration>years ] compare ; GENERIC: time- ( time1 time2 -- time3 ) -: convert-timezone ( timestamp duration -- timestamp ) +: convert-timezone ( timestamp duration -- timestamp' ) over gmt-offset>> over = [ drop ] [ [ over gmt-offset>> time- time+ ] keep >>gmt-offset ] if ; -: >local-time ( timestamp -- timestamp ) +: >local-time ( timestamp -- timestamp' ) gmt-offset-duration convert-timezone ; -: >gmt ( timestamp -- timestamp ) +: >gmt ( timestamp -- timestamp' ) instant convert-timezone ; M: timestamp <=> ( ts1 ts2 -- n ) diff --git a/basis/compression/lzw/lzw-docs.factor b/basis/compression/lzw/lzw-docs.factor index 28dc36902b..55c54bc9f7 100644 --- a/basis/compression/lzw/lzw-docs.factor +++ b/basis/compression/lzw/lzw-docs.factor @@ -20,7 +20,6 @@ HELP: tiff-lzw-uncompress HELP: lzw-read { $values - { "lzw" lzw } { "lzw" lzw } { "n" integer } } { $description "Read the next LZW code." } ; @@ -48,7 +47,6 @@ HELP: code-space-full? HELP: reset-lzw-uncompress { $values { "lzw" lzw } - { "lzw" lzw } } { $description "Reset the LZW uncompressor state (either at initialization time or immediately after receiving a Clear Code). " } ; diff --git a/basis/db/tuples/tuples-docs.factor b/basis/db/tuples/tuples-docs.factor index 01d65484f3..2c5db1c90d 100644 --- a/basis/db/tuples/tuples-docs.factor +++ b/basis/db/tuples/tuples-docs.factor @@ -51,7 +51,7 @@ HELP: HELP: { $values { "tuple" tuple } { "class" class } - { "tuple" tuple } } + { "statement" tuple } } { $description "A database-specific hook for generating the SQL for a select statement." } ; HELP: diff --git a/basis/db/tuples/tuples.factor b/basis/db/tuples/tuples.factor index 388c9ba47e..d193b5921e 100644 --- a/basis/db/tuples/tuples.factor +++ b/basis/db/tuples/tuples.factor @@ -14,7 +14,7 @@ HOOK: db-connection ( class -- object ) HOOK: db-connection ( class -- object ) HOOK: db-connection ( class -- object ) HOOK: db-connection ( tuple class -- object ) -HOOK: db-connection ( tuple class -- tuple ) +HOOK: db-connection ( tuple class -- statement ) HOOK: db-connection ( query -- statement ) HOOK: query>statement db-connection ( query -- statement ) HOOK: insert-tuple-set-key db-connection ( tuple statement -- ) diff --git a/basis/dlists/dlists-docs.factor b/basis/dlists/dlists-docs.factor index 716c20d6f6..5036441f60 100644 --- a/basis/dlists/dlists-docs.factor +++ b/basis/dlists/dlists-docs.factor @@ -48,7 +48,7 @@ HELP: dlist-find } ; HELP: dlist-filter -{ $values { "dlist" { $link dlist } } { "quot" quotation } { "dlist" { $link dlist } } } +{ $values { "dlist" { $link dlist } } { "quot" quotation } { "dlist'" { $link dlist } } } { $description "Applies the quotation to each element of the " { $link dlist } " in turn, removing the corresponding nodes if the quotation returns " { $link f } "." } { $side-effects { "dlist" } } ; diff --git a/basis/dlists/dlists.factor b/basis/dlists/dlists.factor index 668ba23054..317ed81e3e 100644 --- a/basis/dlists/dlists.factor +++ b/basis/dlists/dlists.factor @@ -157,7 +157,7 @@ M: dlist clear-deque ( dlist -- ) : 1dlist ( obj -- dlist ) [ push-front ] keep ; -: dlist-filter ( dlist quot -- dlist ) +: dlist-filter ( dlist quot -- dlist' ) over [ '[ dup obj>> @ [ drop ] [ _ delete-node ] if ] dlist-each-node ] keep ; inline M: dlist clone diff --git a/basis/images/normalization/normalization-docs.factor b/basis/images/normalization/normalization-docs.factor index 8ed4b659ed..39e2fee769 100644 --- a/basis/images/normalization/normalization-docs.factor +++ b/basis/images/normalization/normalization-docs.factor @@ -6,14 +6,14 @@ IN: images.normalization HELP: normalize-image { $values { "image" image } - { "image" image } + { "image'" image } } { $description "Converts the image to RGBA with ubyte-components. If the image is upside-down, it will be flipped right side up such that the 1st byte in the bitmap slot's byte array corresponds to the first color component of the pixel in the upper-left corner of the image." } ; HELP: reorder-components { $values { "image" image } { "component-order" component-order } - { "image" image } + { "image'" image } } { $description "Convert the bitmap in " { $snippet "image" } " such that the pixel sample layout corresponds to " { $snippet "component-order" } ". If the destination layout cannot find a corresponding value from the source layout, the value " { $snippet "255" } " will be substituted for that byte." } { $warning "The image's " { $snippet "component-type" } " will be changed to " { $snippet "ubyte-components" } " if it is not already in that format." diff --git a/basis/images/normalization/normalization.factor b/basis/images/normalization/normalization.factor index 2bd7e6883f..6eaca01e15 100644 --- a/basis/images/normalization/normalization.factor +++ b/basis/images/normalization/normalization.factor @@ -55,7 +55,7 @@ M: ushort-components normalize-component-type* M: ubyte-components normalize-component-type* drop ; -: normalize-scan-line-order ( image -- image ) +: normalize-scan-line-order ( image -- image' ) dup upside-down?>> [ dup dim>> first 4 * '[ _ reverse concat @@ -71,14 +71,14 @@ M: ubyte-components normalize-component-type* PRIVATE> -: reorder-components ( image component-order -- image ) +: reorder-components ( image component-order -- image' ) [ dup component-type>> '[ _ normalize-component-type* ] change-bitmap dup component-order>> ] dip validate-request [ (reorder-components) ] keep >>component-order ; -: normalize-image ( image -- image ) +: normalize-image ( image -- image' ) [ >byte-array ] change-bitmap RGBA reorder-components normalize-scan-line-order ; diff --git a/basis/lists/lazy/lazy-docs.factor b/basis/lists/lazy/lazy-docs.factor index 3b23e1186e..201764bd95 100644 --- a/basis/lists/lazy/lazy-docs.factor +++ b/basis/lists/lazy/lazy-docs.factor @@ -144,7 +144,7 @@ HELP: lcomp { $description "Get the cartesian product of the lists in " { $snippet "list" } " and call " { $snippet "quot" } " call with each element from the cartesian product on the stack, the result of which is returned in the final " { $snippet "list" } "." } ; HELP: lcomp* -{ $values { "list" "a list of lists" } { "guards" "a sequence of quotations with stack effect ( seq -- bool )" } { "quot" { $quotation "( seq -- X )" } } { "list" "the resulting list" } { "result" "a list" } } +{ $values { "list" "a list of lists" } { "guards" "a sequence of quotations with stack effect ( seq -- bool )" } { "quot" { $quotation "( seq -- X )" } } { "result" "a list" } } { $description "Get the cartesian product of the lists in " { $snippet "list" } ", filter it by applying each guard quotation to it and call " { $snippet "quot" } " call with each element from the remaining cartesian product items on the stack, the result of which is returned in the final " { $snippet "list" } "." } { $examples { $code "{ 1 2 3 } >list { 4 5 6 } >list 2list { [ first odd? ] } [ first2 + ] lcomp*" } diff --git a/basis/math/bitwise/bitwise-docs.factor b/basis/math/bitwise/bitwise-docs.factor index 5dce9646f4..bbc72d99e4 100644 --- a/basis/math/bitwise/bitwise-docs.factor +++ b/basis/math/bitwise/bitwise-docs.factor @@ -88,10 +88,10 @@ HELP: bit-count HELP: bitroll-32 { $values - { "n" integer } { "s" integer } - { "n'" integer } + { "m" integer } { "s" integer } + { "n" integer } } -{ $description "Rolls the number " { $snippet "n" } " by " { $snippet "s" } " bits to the left, wrapping around after 32 bits." } +{ $description "Rolls the number " { $snippet "m" } " by " { $snippet "s" } " bits to the left, wrapping around after 32 bits." } { $examples { $example "USING: math.bitwise prettyprint ;" "HEX: 1 10 bitroll-32 .h" @@ -105,10 +105,10 @@ HELP: bitroll-32 HELP: bitroll-64 { $values - { "n" integer } { "s" "a shift integer" } - { "n'" integer } + { "m" integer } { "s" "a shift integer" } + { "n" integer } } -{ $description "Rolls the number " { $snippet "n" } " by " { $snippet "s" } " bits to the left, wrapping around after 64 bits." } +{ $description "Rolls the number " { $snippet "m" } " by " { $snippet "s" } " bits to the left, wrapping around after 64 bits." } { $examples { $example "USING: math.bitwise prettyprint ;" "HEX: 1 10 bitroll-64 .h" @@ -226,10 +226,10 @@ HELP: odd-parity? HELP: on-bits { $values - { "n" integer } { "m" integer } + { "n" integer } } -{ $description "Returns an integer with " { $snippet "n" } " bits set." } +{ $description "Returns an integer with " { $snippet "m" } " bits set." } { $examples { $example "USING: math.bitwise kernel prettyprint ;" "6 on-bits .h" @@ -274,7 +274,7 @@ HELP: set-bit HELP: shift-mod { $values - { "n" integer } { "s" integer } { "w" integer } + { "m" integer } { "s" integer } { "w" integer } { "n" integer } } { $description "Calls " { $link shift } " on " { $snippet "n" } " and " { $snippet "s" } ", wrapping the result to " { $snippet "w" } " bits." } ; @@ -307,8 +307,8 @@ HELP: unmask? HELP: w* { $values - { "int" integer } { "int" integer } - { "int" integer } + { "x" integer } { "y" integer } + { "z" integer } } { $description "Multiplies two integers and wraps the result to 32 bits." } { $examples @@ -320,8 +320,8 @@ HELP: w* HELP: w+ { $values - { "int" integer } { "int" integer } - { "int" integer } + { "x" integer } { "y" integer } + { "z" integer } } { $description "Adds two integers and wraps the result to 32 bits." } { $examples @@ -333,8 +333,8 @@ HELP: w+ HELP: w- { $values - { "int" integer } { "int" integer } - { "int" integer } + { "x" integer } { "y" integer } + { "z" integer } } { $description "Subtracts two integers and wraps the result to 32 bits." } { $examples diff --git a/basis/math/bitwise/bitwise.factor b/basis/math/bitwise/bitwise.factor index 6b301fa97b..e508b49a19 100644 --- a/basis/math/bitwise/bitwise.factor +++ b/basis/math/bitwise/bitwise.factor @@ -17,29 +17,32 @@ IN: math.bitwise : wrap ( m n -- m' ) 1 - bitand ; inline : bits ( m n -- m' ) 2^ wrap ; inline : mask-bit ( m n -- m' ) 2^ mask ; inline -: on-bits ( n -- m ) 2^ 1 - ; inline +: on-bits ( m -- n ) 2^ 1 - ; inline : toggle-bit ( m n -- m' ) 2^ bitxor ; inline - -: shift-mod ( n s w -- n ) - [ shift ] dip 2^ wrap ; inline +: >signed ( x n -- y ) 2dup neg 1 + shift 1 = [ 2^ - ] [ drop ] if ; +: >odd ( m -- n ) 0 set-bit ; foldable +: >even ( m -- n ) 0 clear-bit ; foldable +: next-even ( m -- n ) >even 2 + ; foldable +: next-odd ( m -- n ) dup even? [ 1 + ] [ 2 + ] if ; foldable +: shift-mod ( m s w -- n ) [ shift ] dip 2^ wrap ; inline : bitroll ( x s w -- y ) [ wrap ] keep [ shift-mod ] [ [ - ] keep shift-mod ] 3bi bitor ; inline -: bitroll-32 ( n s -- n' ) 32 bitroll ; inline +: bitroll-32 ( m s -- n ) 32 bitroll ; inline -: bitroll-64 ( n s -- n' ) 64 bitroll ; inline +: bitroll-64 ( m s -- n ) 64 bitroll ; inline ! 32-bit arithmetic -: w+ ( int int -- int ) + 32 bits ; inline -: w- ( int int -- int ) - 32 bits ; inline -: w* ( int int -- int ) * 32 bits ; inline +: w+ ( x y -- z ) + 32 bits ; inline +: w- ( x y -- z ) - 32 bits ; inline +: w* ( x y -- z ) * 32 bits ; inline ! 64-bit arithmetic -: W+ ( int int -- int ) + 64 bits ; inline -: W- ( int int -- int ) - 64 bits ; inline -: W* ( int int -- int ) * 64 bits ; inline +: W+ ( x y -- z ) + 64 bits ; inline +: W- ( x y -- z ) - 64 bits ; inline +: W* ( x y -- z ) * 64 bits ; inline ! flags MACRO: flags ( values -- ) @@ -117,17 +120,6 @@ M: object bit-count [ >c-ptr ] [ byte-length ] bi byte-array-bit-count ; -: >signed ( x n -- y ) - 2dup neg 1 + shift 1 = [ 2^ - ] [ drop ] if ; - -: >odd ( n -- int ) 0 set-bit ; foldable - -: >even ( n -- int ) 0 clear-bit ; foldable - -: next-even ( m -- n ) >even 2 + ; foldable - -: next-odd ( m -- n ) dup even? [ 1 + ] [ 2 + ] if ; foldable - : even-parity? ( obj -- ? ) bit-count even? ; : odd-parity? ( obj -- ? ) bit-count odd? ; diff --git a/basis/math/combinatorics/combinatorics-docs.factor b/basis/math/combinatorics/combinatorics-docs.factor index ec3cd6ee76..0a2a0d4011 100644 --- a/basis/math/combinatorics/combinatorics-docs.factor +++ b/basis/math/combinatorics/combinatorics-docs.factor @@ -26,7 +26,7 @@ HELP: nCk } ; HELP: permutation -{ $values { "n" "a non-negative integer" } { "seq" sequence } { "seq" sequence } } +{ $values { "n" "a non-negative integer" } { "seq" sequence } { "seq'" sequence } } { $description "Outputs the " { $snippet "nth" } " lexicographical permutation of " { $snippet "seq" } "." } { $notes "Permutations are 0-based and a bounds error will be thrown if " { $snippet "n" } " is larger than " { $snippet "seq length factorial 1 -" } "." } { $examples @@ -37,7 +37,7 @@ HELP: permutation } ; HELP: all-permutations -{ $values { "seq" sequence } { "seq" sequence } } +{ $values { "seq" sequence } { "seq'" sequence } } { $description "Outputs a sequence containing all permutations of " { $snippet "seq" } " in lexicographical order." } { $examples { $example "USING: math.combinatorics prettyprint ;" @@ -60,7 +60,7 @@ HELP: inverse-permutation } ; HELP: combination -{ $values { "m" "a non-negative integer" } { "seq" sequence } { "k" "a non-negative integer" } { "seq" sequence } } +{ $values { "m" "a non-negative integer" } { "seq" sequence } { "k" "a non-negative integer" } { "seq'" sequence } } { $description "Outputs the " { $snippet "mth" } " lexicographical combination of " { $snippet "seq" } " choosing " { $snippet "k" } " elements." } { $notes "Combinations are 0-based and a bounds error will be thrown if " { $snippet "m" } " is larger than " { $snippet "seq length k nCk" } "." } { $examples @@ -71,7 +71,7 @@ HELP: combination } ; HELP: all-combinations -{ $values { "seq" sequence } { "k" "a non-negative integer" } { "seq" sequence } } +{ $values { "seq" sequence } { "k" "a non-negative integer" } { "seq'" sequence } } { $description "Outputs a sequence containing all combinations of " { $snippet "seq" } " choosing " { $snippet "k" } " elements, in lexicographical order." } { $examples { $example "USING: math.combinatorics prettyprint ;" diff --git a/basis/math/combinatorics/combinatorics.factor b/basis/math/combinatorics/combinatorics.factor index 7c68aede09..5a9f627015 100644 --- a/basis/math/combinatorics/combinatorics.factor +++ b/basis/math/combinatorics/combinatorics.factor @@ -42,10 +42,10 @@ PRIVATE> PRIVATE> -: permutation ( n seq -- seq ) +: permutation ( n seq -- seq' ) [ permutation-indices ] keep nths ; -: all-permutations ( seq -- seq ) +: all-permutations ( seq -- seq' ) [ length factorial iota ] keep '[ _ permutation ] map ; @@ -118,10 +118,10 @@ PRIVATE> : map>assoc-combinations ( seq k quot exemplar -- ) [ combinations-quot ] dip map>assoc ; inline -: combination ( m seq k -- seq ) +: combination ( m seq k -- seq' ) apply-combination ; -: all-combinations ( seq k -- seq ) +: all-combinations ( seq k -- seq' ) [ ] combinations-quot map ; : reduce-combinations ( seq k identity quot -- result ) diff --git a/basis/math/polynomials/polynomials-docs.factor b/basis/math/polynomials/polynomials-docs.factor index 9c16bf8a7e..3b8885cc88 100644 --- a/basis/math/polynomials/polynomials-docs.factor +++ b/basis/math/polynomials/polynomials-docs.factor @@ -36,12 +36,12 @@ HELP: p= { $examples { $example "USING: math.polynomials prettyprint ;" "{ 0 1 } { 0 1 0 } p= ." "t" } } ; HELP: ptrim -{ $values { "p" "a polynomial" } { "p" "a polynomial" } } +{ $values { "p" "a polynomial" } { "q" "a polynomial" } } { $description "Trims excess zeros from a polynomial." } { $examples { $example "USING: math.polynomials prettyprint ;" "{ 0 1 0 0 } ptrim ." "{ 0 1 }" } } ; HELP: 2ptrim -{ $values { "p" "a polynomial" } { "q" "a polynomial" } { "p" "a polynomial" } { "q" "a polynomial" } } +{ $values { "p" "a polynomial" } { "q" "a polynomial" } { "p'" "a polynomial" } { "q'" "a polynomial" } } { $description "Trims excess zeros from two polynomials." } { $examples { $example "USING: kernel math.polynomials prettyprint ;" "{ 0 1 0 0 } { 1 0 0 } 2ptrim [ . ] bi@" "{ 0 1 }\n{ 1 }" } } ; @@ -61,7 +61,7 @@ HELP: n*p { $examples { $example "USING: math.polynomials prettyprint ;" "4 { 3 0 1 } n*p ." "{ 12 0 4 }" } } ; HELP: pextend-conv -{ $values { "p" "a polynomial" } { "q" "a polynomial" } { "p" "a polynomial" } { "q" "a polynomial" } } +{ $values { "p" "a polynomial" } { "q" "a polynomial" } { "p'" "a polynomial" } { "q'" "a polynomial" } } { $description "Convulution, extending to " { $snippet "p_m + q_n - 1" } "." } { $examples { $example "USING: kernel math.polynomials prettyprint ;" "{ 1 0 1 } { 0 1 } pextend-conv [ . ] bi@" "V{ 1 0 1 0 }\nV{ 0 1 0 0 }" } } ; diff --git a/basis/math/polynomials/polynomials.factor b/basis/math/polynomials/polynomials.factor index b994410283..31152016ea 100644 --- a/basis/math/polynomials/polynomials.factor +++ b/basis/math/polynomials/polynomials.factor @@ -20,15 +20,15 @@ PRIVATE> : p= ( p q -- ? ) pextend = ; -: ptrim ( p -- p ) +: ptrim ( p -- q ) dup length 1 = [ [ zero? ] trim-tail ] unless ; -: 2ptrim ( p q -- p q ) [ ptrim ] bi@ ; +: 2ptrim ( p q -- p' q' ) [ ptrim ] bi@ ; : p+ ( p q -- r ) pextend v+ ; : p- ( p q -- r ) pextend v- ; : n*p ( n p -- n*p ) n*v ; -: pextend-conv ( p q -- p q ) +: pextend-conv ( p q -- p' q' ) 2dup [ length ] bi@ + 1 - 2pad-tail [ >vector ] bi@ ; : p* ( p q -- r ) diff --git a/basis/math/quaternions/quaternions-docs.factor b/basis/math/quaternions/quaternions-docs.factor index 1a381c6287..d3bead7dea 100644 --- a/basis/math/quaternions/quaternions-docs.factor +++ b/basis/math/quaternions/quaternions-docs.factor @@ -30,7 +30,7 @@ HELP: q/ { $examples { $example "USING: math.quaternions prettyprint ;" "{ 0 0 0 1 } { 0 0 1 0 } q/ ." "{ 0 1 0 0 }" } } ; HELP: q*n -{ $values { "q" "a quaternion" } { "n" real } { "q" "a quaternion" } } +{ $values { "q" "a quaternion" } { "n" real } { "r" "a quaternion" } } { $description "Multiplies each element of " { $snippet "q" } " by real value " { $snippet "n" } "." } { $notes "To multiply a quaternion with a complex value, use " { $link c>q } " " { $link q* } "." } ; diff --git a/basis/math/quaternions/quaternions.factor b/basis/math/quaternions/quaternions.factor index e659cf5f61..4173507e6c 100644 --- a/basis/math/quaternions/quaternions.factor +++ b/basis/math/quaternions/quaternions.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2005, 2007 Slava Pestov. +! Copyright (C) 2005, 2010 Joe Groff, Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: arrays combinators kernel locals math math.functions math.libm math.order math.vectors sequences ; @@ -35,10 +35,10 @@ M: object qconjugate ( u -- u' ) : q/ ( u v -- u/v ) qrecip q* ; inline -: n*q ( q n -- q ) +: n*q ( q n -- r ) v*n ; inline -: q*n ( q n -- q ) +: q*n ( q n -- r ) v*n ; inline : n>q ( n -- q ) diff --git a/basis/math/statistics/statistics-docs.factor b/basis/math/statistics/statistics-docs.factor index 6fa7d79f77..f7d108dddb 100644 --- a/basis/math/statistics/statistics-docs.factor +++ b/basis/math/statistics/statistics-docs.factor @@ -87,7 +87,6 @@ HELP: histogram HELP: histogram! { $values { "hashtable" hashtable } { "seq" sequence } - { "hashtable" hashtable } } { $examples { $example "! Count the number of times the elements of two sequences appear." @@ -128,7 +127,6 @@ HELP: sequence>assoc HELP: sequence>assoc! { $values { "assoc" assoc } { "seq" sequence } { "quot" quotation } - { "assoc" assoc } } { $examples { $example "! Iterate over a sequence and add the counts to an existing assoc" diff --git a/basis/opengl/shaders/shaders-docs.factor b/basis/opengl/shaders/shaders-docs.factor index 1a10071ddf..c3e4d045ef 100644 --- a/basis/opengl/shaders/shaders-docs.factor +++ b/basis/opengl/shaders/shaders-docs.factor @@ -52,7 +52,7 @@ HELP: delete-gl-shader { $description "Deletes the shader object, invalidating it and releasing any resources allocated for it by the OpenGL implementation." } ; HELP: gl-shader-info-log -{ $values { "shader" "A " { $link gl-shader } " object" } { "shader" "a new " { $link gl-shader } } { "log" string } } +{ $values { "shader" "A " { $link gl-shader } " object" } { "log" string } } { $description "Retrieves the info log for " { $snippet "shader" } ", including any errors or warnings generated in compiling the shader object." } ; HELP: gl-program diff --git a/basis/random/random-docs.factor b/basis/random/random-docs.factor index 175c34ad9d..20d5dc0214 100644 --- a/basis/random/random-docs.factor +++ b/basis/random/random-docs.factor @@ -75,7 +75,7 @@ HELP: with-system-random HELP: randomize { $values { "seq" sequence } - { "seq" sequence } + { "randomized" sequence } } { $description "Randomizes a sequence in-place with the Fisher-Yates algorithm and returns the sequence." } ; diff --git a/basis/random/random.factor b/basis/random/random.factor index eeaa1f8f2c..ba5d9c7ca3 100644 --- a/basis/random/random.factor +++ b/basis/random/random.factor @@ -67,7 +67,7 @@ M: sequence random [ [ random ] [ 1 - ] bi [ pick exchange ] keep ] while drop ; -: randomize ( seq -- seq ) +: randomize ( seq -- randomized ) dup length randomize-n-last ; ERROR: too-many-samples seq n ; diff --git a/basis/roman/roman-docs.factor b/basis/roman/roman-docs.factor index c81ed0ae42..c9c3db71b5 100644 --- a/basis/roman/roman-docs.factor +++ b/basis/roman/roman-docs.factor @@ -39,7 +39,7 @@ HELP: roman> { >roman >ROMAN roman> } related-words HELP: roman+ -{ $values { "x" string } { "x" string } { "x" string } } +{ $values { "x" string } { "y" string } { "z" string } } { $description "Adds two Roman numerals." } { $examples { $example "USING: io roman ;" @@ -49,7 +49,7 @@ HELP: roman+ } ; HELP: roman- -{ $values { "x" string } { "x" string } { "x" string } } +{ $values { "x" string } { "y" string } { "z" string } } { $description "Subtracts two Roman numerals." } { $examples { $example "USING: io roman ;" @@ -61,7 +61,7 @@ HELP: roman- { roman+ roman- } related-words HELP: roman* -{ $values { "x" string } { "x" string } { "x" string } } +{ $values { "x" string } { "y" string } { "z" string } } { $description "Multiplies two Roman numerals." } { $examples { $example "USING: io roman ;" @@ -71,7 +71,7 @@ HELP: roman* } ; HELP: roman/i -{ $values { "x" string } { "x" string } { "x" string } } +{ $values { "x" string } { "y" string } { "z" string } } { $description "Computes the integer division of two Roman numerals." } { $examples { $example "USING: io roman ;" @@ -81,7 +81,7 @@ HELP: roman/i } ; HELP: roman/mod -{ $values { "x" string } { "x" string } { "x" string } { "x" string } } +{ $values { "x" string } { "y" string } { "z" string } { "w" string } } { $description "Computes the quotient and remainder of two Roman numerals." } { $examples { $example "USING: kernel io roman ;" diff --git a/basis/roman/roman.factor b/basis/roman/roman.factor index a783e7973c..588166829a 100644 --- a/basis/roman/roman.factor +++ b/basis/roman/roman.factor @@ -2,8 +2,9 @@ ! See http://factorcode.org/license.txt for BSD license. USING: accessors arrays assocs effects fry generalizations grouping kernel lexer macros math math.order math.vectors -namespaces parser quotations sequences sequences.private -splitting.monotonic stack-checker strings unicode.case words ; +namespaces parser effects.parser quotations sequences +sequences.private splitting.monotonic stack-checker strings +unicode.case words ; IN: roman SYNTAX: ROMAN-OP: scan-word [ name>> "roman" prepend create-in ] keep 1quotation '[ _ binary-roman-op ] - dup infer define-declared ; + complete-effect define-declared ; >> -ROMAN-OP: + -ROMAN-OP: - -ROMAN-OP: * -ROMAN-OP: /i -ROMAN-OP: /mod +ROMAN-OP: + ( x y -- z ) +ROMAN-OP: - ( x y -- z ) +ROMAN-OP: * ( x y -- z ) +ROMAN-OP: /i ( x y -- z ) +ROMAN-OP: /mod ( x y -- z w ) SYNTAX: ROMAN: scan roman> suffix! ; diff --git a/basis/sequences/deep/deep-docs.factor b/basis/sequences/deep/deep-docs.factor index e8b9ddea6d..6f479e48b6 100644 --- a/basis/sequences/deep/deep-docs.factor +++ b/basis/sequences/deep/deep-docs.factor @@ -31,7 +31,7 @@ HELP: flatten { $description "Creates a sequence of all of the leaf nodes (non-sequence nodes, but including strings and numbers) in the object." } ; HELP: deep-map! -{ $values { "obj" object } { "quot" { $quotation "( elt -- newelt )" } } { "obj" object } } +{ $values { "obj" object } { "quot" { $quotation "( elt -- newelt )" } } } { $description "Modifies each sub-node of an object in place, in preorder, and returns that object." } { $see-also map! } ; diff --git a/basis/ui/gadgets/worlds/worlds-docs.factor b/basis/ui/gadgets/worlds/worlds-docs.factor index 83d042db43..0d7e40a789 100644 --- a/basis/ui/gadgets/worlds/worlds-docs.factor +++ b/basis/ui/gadgets/worlds/worlds-docs.factor @@ -33,7 +33,7 @@ HELP: set-gl-context { $description "Selects an OpenGL context to be the implicit destination for subsequent GL rendering calls. This word is called automatically by the UI before drawing a " { $link world } "." } ; HELP: window-resource -{ $values { "resource" disposable } { "resource" disposable } } +{ $values { "resource" disposable } } { $description "Marks " { $snippet "resource" } " to be destroyed with " { $link dispose } " when the window with the currently active OpenGL context (set by " { $link set-gl-context } ") is closed. " { $snippet "resource" } " is left unmodified at the top of the stack." } ; HELP: flush-gl-context diff --git a/basis/xml-rpc/xml-rpc-docs.factor b/basis/xml-rpc/xml-rpc-docs.factor index 113fc00407..aeb29c5d07 100644 --- a/basis/xml-rpc/xml-rpc-docs.factor +++ b/basis/xml-rpc/xml-rpc-docs.factor @@ -49,7 +49,7 @@ HELP: rpc-fault HELP: post-rpc { $values { "rpc" "an XML-RPC input tuple" } { "url" "a URL" } - { "rpc" "an XML-RPC output tuple" } } + { "rpc'" "an XML-RPC output tuple" } } { $description "posts an XML-RPC document to the specified URL, receives the response and parses it as XML-RPC, returning the tuple" } ; ARTICLE: { "xml-rpc" "intro" } "XML-RPC" diff --git a/basis/xml-rpc/xml-rpc.factor b/basis/xml-rpc/xml-rpc.factor index 370c778787..4c6570c4de 100644 --- a/basis/xml-rpc/xml-rpc.factor +++ b/basis/xml-rpc/xml-rpc.factor @@ -186,7 +186,7 @@ TAG: array xml>item PRIVATE> -: post-rpc ( rpc url -- rpc ) +: post-rpc ( rpc url -- rpc' ) ! This needs to do something in the event of an error rpc-post-request http-request nip string>xml receive-rpc ; diff --git a/basis/xml/traversal/traversal-docs.factor b/basis/xml/traversal/traversal-docs.factor index bb7ce7ce31..d8032d99fc 100644 --- a/basis/xml/traversal/traversal-docs.factor +++ b/basis/xml/traversal/traversal-docs.factor @@ -58,7 +58,7 @@ HELP: children-tags { $see-also first-child-tag } ; HELP: first-child-tag -{ $values { "tag" "an XML tag or document" } { "tag" tag } } +{ $values { "tag" "an XML tag or document" } { "child" tag } } { $description "Returns the first child of the given tag that is a tag." } { $see-also children-tags } ; diff --git a/basis/xml/traversal/traversal.factor b/basis/xml/traversal/traversal.factor index b337ea1472..46a5896814 100644 --- a/basis/xml/traversal/traversal.factor +++ b/basis/xml/traversal/traversal.factor @@ -18,7 +18,7 @@ IN: xml.traversal : children-tags ( tag -- sequence ) children>> [ tag? ] filter ; -: first-child-tag ( tag -- tag ) +: first-child-tag ( tag -- child ) children>> [ tag? ] find nip ; : tag-named? ( name elem -- ? ) diff --git a/core/kernel/kernel-docs.factor b/core/kernel/kernel-docs.factor index c92ef7d599..8b9650fc31 100644 --- a/core/kernel/kernel-docs.factor +++ b/core/kernel/kernel-docs.factor @@ -708,7 +708,7 @@ HELP: 3curry { $notes "This operation is efficient and does not copy the quotation." } ; HELP: with -{ $values { "param" object } { "obj" object } { "quot" { $quotation "( param elt -- ... )" } } { "obj" object } { "curry" curry } } +{ $values { "param" object } { "obj" object } { "quot" { $quotation "( param elt -- ... )" } } { "curry" curry } } { $description "Partial application on the left. The following two lines are equivalent:" { $code "swap [ swap A ] curry B" } { $code "[ A ] with B" } diff --git a/core/parser/parser-docs.factor b/core/parser/parser-docs.factor index 3062f55a42..b024d1d968 100644 --- a/core/parser/parser-docs.factor +++ b/core/parser/parser-docs.factor @@ -177,7 +177,7 @@ HELP: parse-lines { $errors "Throws a " { $link lexer-error } " if the input is malformed." } ; HELP: parse-base -{ $values { "parsed" integer } { "base" "an integer between 2 and 36" } { "parsed" integer } } +{ $values { "parsed" integer } { "base" "an integer between 2 and 36" } } { $description "Reads an integer in a specific numerical base from the parser input." } $parsing-note ; diff --git a/core/sequences/sequences-docs.factor b/core/sequences/sequences-docs.factor index 02dadb323c..38eadc745d 100644 --- a/core/sequences/sequences-docs.factor +++ b/core/sequences/sequences-docs.factor @@ -296,7 +296,7 @@ $nl } ; HELP: accumulate! -{ $values { "seq" sequence } { "identity" object } { "quot" { $quotation "( prev elt -- next )" } } { "final" "the final result" } { "seq" sequence } } +{ $values { "seq" sequence } { "identity" object } { "quot" { $quotation "( prev elt -- next )" } } { "final" "the final result" } } { $description "Combines successive elements of the sequence using a binary operation, and outputs the original sequence of intermediate results, together with the final result." $nl "The first element of the new sequence is " { $snippet "identity" } ". Then, on the first iteration, the two inputs to the quotation are " { $snippet "identity" } ", and the first element of the old sequence. On successive iterations, the first input is the result of the previous iteration, and the second input is the corresponding element of the old sequence." @@ -344,7 +344,7 @@ HELP: change-nth { $side-effects "seq" } ; HELP: map! -{ $values { "seq" "a mutable sequence" } { "quot" { $quotation "( old -- new )" } } { "seq" "a mutable sequence" } } +{ $values { "seq" "a mutable sequence" } { "quot" { $quotation "( old -- new )" } } } { $description "Applies the quotation to each element yielding a new element, storing the new elements back in the original sequence. Returns the original sequence." } { $errors "Throws an error if the sequence is immutable, or the sequence cannot hold elements of the type output by " { $snippet "quot" } "." } { $side-effects "seq" } ; @@ -442,7 +442,7 @@ HELP: filter-as { $description "Applies the quotation to each element in turn, and outputs a new sequence of the same type as " { $snippet "exemplar" } " containing the elements of the original sequence for which the quotation output a true value." } ; HELP: filter! -{ $values { "seq" "a resizable mutable sequence" } { "quot" { $quotation "( elt -- ? )" } } { "seq" "a resizable mutable sequence" } } +{ $values { "seq" "a resizable mutable sequence" } { "quot" { $quotation "( elt -- ? )" } } } { $description "Applies the quotation to each element in turn, and removes elements for which the quotation outputs a false value." } { $side-effects "seq" } ; @@ -503,19 +503,19 @@ HELP: move { $side-effects "seq" } ; HELP: remove! -{ $values { "elt" object } { "seq" "a resizable mutable sequence" } { "elt" object } } +{ $values { "elt" object } { "seq" "a resizable mutable sequence" } } { $description "Removes all elements equal to " { $snippet "elt" } " from " { $snippet "seq" } " and returns " { $snippet "seq" } "." } { $notes "This word uses equality comparison (" { $link = } ")." } { $side-effects "seq" } ; HELP: remove-eq! -{ $values { "elt" object } { "seq" "a resizable mutable sequence" } { "seq" "a resizable mutable sequence" } } +{ $values { "elt" object } { "seq" "a resizable mutable sequence" } } { $description "Outputs a new sequence containing all elements of the input sequence except the given element." } { $notes "This word uses identity comparison (" { $link eq? } ")." } { $side-effects "seq" } ; HELP: remove-nth! -{ $values { "n" "a non-negative integer" } { "seq" "a resizable mutable sequence" } { "seq" "a resizable mutable sequence" } } +{ $values { "n" "a non-negative integer" } { "seq" "a resizable mutable sequence" } } { $description "Removes the " { $snippet "n" } "th element from the sequence, shifting all other elements down and reducing its length by one." } { $side-effects "seq" } ; @@ -540,7 +540,7 @@ HELP: suffix } ; HELP: suffix! -{ $values { "seq" sequence } { "elt" object } { "seq" sequence } } +{ $values { "seq" sequence } { "elt" object } } { $description "Modifiers a sequence in-place by adding " { $snippet "elt" } " to the end of " { $snippet "seq" } ". Outputs " { $snippet "seq" } "." } { $errors "Throws an error if the type of " { $snippet "elt" } " is not permitted in sequences of the same class as " { $snippet "seq" } "." } { $examples @@ -548,7 +548,7 @@ HELP: suffix! } ; HELP: append! -{ $values { "seq1" sequence } { "seq2" sequence } { "seq1" sequence } } +{ $values { "seq1" sequence } { "seq2" sequence } } { $description "Modifiers " { $snippet "seq1" } " in-place by adding the elements from " { $snippet "seq2" } " to the end and outputs " { $snippet "seq1" } "." } { $examples { $example "USING: prettyprint sequences ;" "V{ 1 2 3 } { 4 5 6 } append! ." "V{ 1 2 3 4 5 6 }" } @@ -996,7 +996,7 @@ HELP: count HELP: selector { $values { "quot" "a predicate quotation" } - { "quot" quotation } { "accum" vector } } + { "selector" quotation } { "accum" vector } } { $description "Creates a new vector to accumulate the values which return true for a predicate. Returns a new quotation which accepts an object to be tested and stored in the collector if the test yields true. The collector is left on the stack for convenience." } { $example "! Find all the even numbers:" "USING: prettyprint sequences math kernel ;" "10 iota [ even? ] selector [ each ] dip ." @@ -1202,7 +1202,7 @@ HELP: 2map-reduce HELP: 2selector { $values { "quot" quotation } - { "quot" quotation } { "accum1" vector } { "accum2" vector } } + { "selector" quotation } { "accum1" vector } { "accum2" vector } } { $description "Creates two new vectors to accumultate values based on a predicate. The first vector accumulates values for which the predicate yields true; the second for false." } ; HELP: 2reverse-each @@ -1323,8 +1323,7 @@ HELP: sequence-hashcode-step HELP: short { $values - { "seq" sequence } { "n" integer } - { "seq" sequence } { "n'" integer } } + { "seq" sequence } { "n" integer } { "n'" integer } } { $description "Returns the input sequence and its length or " { $snippet "n" } ", whichever is less." } { $examples { $example "USING: sequences kernel prettyprint ;" "\"abcd\" 3 short [ . ] bi@" diff --git a/core/sequences/sequences.factor b/core/sequences/sequences.factor index 23ab4b5d84..2eafe2ceb8 100644 --- a/core/sequences/sequences.factor +++ b/core/sequences/sequences.factor @@ -486,10 +486,10 @@ PRIVATE> : push-if ( elt quot accum -- ) [ keep ] dip rot [ push ] [ 2drop ] if ; inline -: selector-for ( quot exemplar -- quot accum ) +: selector-for ( quot exemplar -- selector accum ) [ length ] keep new-resizable [ [ push-if ] 2curry ] keep ; inline -: selector ( quot -- quot accum ) +: selector ( quot -- selector accum ) V{ } selector-for ; inline : filter-as ( seq quot exemplar -- subseq ) @@ -501,7 +501,7 @@ PRIVATE> : push-either ( elt quot accum1 accum2 -- ) [ keep swap ] 2dip ? push ; inline -: 2selector ( quot -- quot accum1 accum2 ) +: 2selector ( quot -- selector accum1 accum2 ) V{ } clone V{ } clone [ [ push-either ] 3curry ] 2keep ; inline : partition ( seq quot -- trueseq falseseq ) diff --git a/extra/game/models/collada/collada-docs.factor b/extra/game/models/collada/collada-docs.factor index 5be2e19790..b8dad530a4 100644 --- a/extra/game/models/collada/collada-docs.factor +++ b/extra/game/models/collada/collada-docs.factor @@ -33,7 +33,7 @@ HELP: y-up { $class-description "Right-handed 3D coordinate system where Y is up HELP: z-up { $class-description "Right-handed 3D coordinate system where Z is up." } ; HELP: >y-up-axis! -{ $values { "seq" sequence } { "from-axis" rh-up } { "seq" sequence } } +{ $values { "seq" sequence } { "from-axis" rh-up } } { $description "Destructively swizzles the first three elements of the input sequence to a right-handed 3D coordinate system where Y is up and returns the modified sequence." } ; HELP: source>seq @@ -53,7 +53,7 @@ HELP: mesh>vertices { $description "Convert the mesh tag's vertices element to a pair for further lookup in " { $link collect-sources } ". " } ; HELP: collect-sources -{ $values { "sources" hashtable } { "vertices" pair } { "inputs" tag sequence } { "sources" sequence } } +{ $values { "sources" hashtable } { "vertices" pair } { "inputs" tag sequence } { "seq" sequence } } { $description "Look up the sources for these " { $emphasis "input" } " elements and return a sequence of " { $link source } " tuples." } ; HELP: group-indices diff --git a/extra/game/models/collada/collada.factor b/extra/game/models/collada/collada.factor index ef1c55049b..bb7c73c2c7 100644 --- a/extra/game/models/collada/collada.factor +++ b/extra/game/models/collada/collada.factor @@ -94,7 +94,7 @@ M: z-up >y-up-axis! ] x* ] bi 2array ; -:: collect-sources ( sources vertices inputs -- sources ) +:: collect-sources ( sources vertices inputs -- seq ) inputs [| input | input "source" x@ rest vertices first = diff --git a/extra/game/models/obj/obj-docs.factor b/extra/game/models/obj/obj-docs.factor index ceb61dbb17..a41ca13b8e 100644 --- a/extra/game/models/obj/obj-docs.factor +++ b/extra/game/models/obj/obj-docs.factor @@ -58,7 +58,7 @@ HELP: face>aos { $description "Convert a face line to a sequence of vertex attributes." } ; HELP: push* -{ $values { "elt" "an object" } { "seq" sequence } { "seq" sequence } } +{ $values { "elt" "an object" } { "seq" sequence } } { $description "Push the value onto the sequence, keeping the sequence on the stack." } ; HELP: push-current-model diff --git a/extra/gpu/shaders/shaders-docs.factor b/extra/gpu/shaders/shaders-docs.factor index 96a8561e9f..54822c2fbb 100644 --- a/extra/gpu/shaders/shaders-docs.factor +++ b/extra/gpu/shaders/shaders-docs.factor @@ -172,7 +172,7 @@ HELP: vertex-array HELP: vertex-array-buffers { $values { "vertex-array" vertex-array } - { "vertex-buffer" buffer } + { "buffers" sequence } } { $description "Returns a sequence containing all of the " { $link buffer } " objects that make up " { $snippet "vertex-array" } "." } ; diff --git a/extra/math/transforms/fft/fft-docs.factor b/extra/math/transforms/fft/fft-docs.factor index 430058b362..93d72f39a4 100644 --- a/extra/math/transforms/fft/fft-docs.factor +++ b/extra/math/transforms/fft/fft-docs.factor @@ -2,6 +2,6 @@ USING: help.markup help.syntax sequences ; IN: math.transforms.fft HELP: fft -{ $values { "seq" sequence } { "seq" sequence } } +{ $values { "seq" sequence } { "seq'" sequence } } { $description "Fast Fourier transform function." } ; diff --git a/extra/math/transforms/fft/fft.factor b/extra/math/transforms/fft/fft.factor index 0688c00468..440243a968 100644 --- a/extra/math/transforms/fft/fft.factor +++ b/extra/math/transforms/fft/fft.factor @@ -13,26 +13,26 @@ IN: math.transforms.fft : omega ( n -- n' ) recip -2 pi i* * * exp ; -: twiddle ( seq -- seq ) +: twiddle ( seq -- seq' ) dup length [ omega ] [ n^v ] bi v* ; PRIVATE> DEFER: fft -: two ( seq -- seq ) +: two ( seq -- seq' ) fft 2 v/n dup append ; ; -: odd ( seq -- seq ) 2 group 1 ; +: even ( seq -- seq' ) 2 group 0 ; +: odd ( seq -- seq' ) 2 group 1 ; -: (fft) ( seq -- seq ) +: (fft) ( seq -- seq' ) [ odd two twiddle ] [ even two ] bi v+ ; PRIVATE> -: fft ( seq -- seq ) +: fft ( seq -- seq' ) dup length 1 = [ (fft) ] unless ; diff --git a/extra/math/transforms/haar/haar-docs.factor b/extra/math/transforms/haar/haar-docs.factor index 218a63a480..a9a4fd111f 100644 --- a/extra/math/transforms/haar/haar-docs.factor +++ b/extra/math/transforms/haar/haar-docs.factor @@ -2,13 +2,13 @@ USING: help.markup help.syntax sequences ; IN: math.transforms.haar HELP: haar -{ $values { "seq" sequence } { "seq" sequence } } +{ $values { "seq" sequence } { "seq'" sequence } } { $description "Haar wavelet transform function." } { $notes "The sequence length should be a power of two." } { $examples { $example "USING: math.transforms.haar prettyprint ;" "{ 7 1 6 6 3 -5 4 2 } haar ." "{ 3 2 -1 -2 3 0 4 1 }" } } ; HELP: rev-haar -{ $values { "seq" sequence } { "seq" sequence } } +{ $values { "seq" sequence } { "seq'" sequence } } { $description "Reverse Haar wavelet transform function." } { $notes "The sequence length should be a power of two." } { $examples { $example "USING: math.transforms.haar prettyprint ;" "{ 3 2 -1 -2 3 0 4 1 } rev-haar ." "{ 7 1 6 6 3 -5 4 2 }" } } ; diff --git a/extra/math/transforms/haar/haar.factor b/extra/math/transforms/haar/haar.factor index c0359b8e7b..e9b430a802 100644 --- a/extra/math/transforms/haar/haar.factor +++ b/extra/math/transforms/haar/haar.factor @@ -8,7 +8,7 @@ IN: math.transforms.haar -: haar ( seq -- seq ) +: haar ( seq -- seq' ) dup length 1 <= [ haar-step haar prepend ] unless ; -: rev-haar ( seq -- seq ) +: rev-haar ( seq -- seq' ) dup length 2 > [ halves swap rev-haar prepend ] when rev-haar-step ; diff --git a/extra/memory/piles/piles-docs.factor b/extra/memory/piles/piles-docs.factor index 20568f2226..94a3e7736f 100644 --- a/extra/memory/piles/piles-docs.factor +++ b/extra/memory/piles/piles-docs.factor @@ -21,7 +21,6 @@ HELP: pile HELP: pile-align { $values { "pile" pile } { "align" "a power of two" } - { "pile" pile } } { $description "Adjusts a " { $link pile } "'s internal state so that the next call to " { $link pile-alloc } " will return a pointer aligned to " { $snippet "align" } " bytes relative to the pile's initial offset." } ; diff --git a/extra/mongodb/driver/driver-docs.factor b/extra/mongodb/driver/driver-docs.factor index 532dfe1dce..95acd523b3 100644 --- a/extra/mongodb/driver/driver-docs.factor +++ b/extra/mongodb/driver/driver-docs.factor @@ -49,7 +49,6 @@ HELP: HELP: >upsert { $values { "mdb-update-msg" "a mdb-update-msg" } - { "mdb-update-msg" "mdb-update-msg with the upsert indicator set to t" } } { $description "Marks a mdb-update-msg as upsert operation" "(inserts object identified by the update selector if it doesn't exist in the collection)" } ; @@ -162,7 +161,6 @@ HELP: hint { $values { "mdb-query-msg" "a query" } { "index-hint" "a hint to an index" } - { "mdb-query-msg" "modified query object" } } { $description "Annotates the query with a hint to an index. " "For detailed information see: " { $url "http://www.mongodb.org/display/DOCS/Optimizing+Mongo+Performance#OptimizingMongoPerformance-Hint" } } @@ -183,7 +181,6 @@ HELP: limit { $values { "mdb-query-msg" "a query" } { "limit#" "number of objects that should be returned at most" } - { "mdb-query-msg" "modified query object" } } { $description "Limits the number of returned objects to limit#" } { $examples @@ -243,7 +240,6 @@ HELP: skip { $values { "mdb-query-msg" "a query message" } { "skip#" "number of objects to skip" } - { "mdb-query-msg" "annotated query message" } } { $description "annotates a query message with a number of objects to skip when returning the results" } ; @@ -251,7 +247,6 @@ HELP: sort { $values { "mdb-query-msg" "a query message" } { "sort-quot" "a quotation with sort specifiers" } - { "mdb-query-msg" "annotated query message" } } { $description "annotates the query message for sort specifiers" } ; diff --git a/extra/spider/spider-docs.factor b/extra/spider/spider-docs.factor index 83d93268b5..a39515379a 100644 --- a/extra/spider/spider-docs.factor +++ b/extra/spider/spider-docs.factor @@ -12,7 +12,6 @@ HELP: HELP: run-spider { $values - { "spider" spider } { "spider" spider } } { $description "Runs a spider until completion. See the " { $subsection "spider-tutorial" } " for a complete description of the tuple slots that affect how thet spider works." } ; From c3de89c808ea483fc2d88e10596ccdf4d6a3eba3 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 19 Feb 2010 12:32:03 +1300 Subject: [PATCH 40/62] help.lint.checks: you can't have duplicate names in $values anymore --- basis/help/lint/checks/checks.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/help/lint/checks/checks.factor b/basis/help/lint/checks/checks.factor index 340f9b16d3..632cdb46e2 100644 --- a/basis/help/lint/checks/checks.factor +++ b/basis/help/lint/checks/checks.factor @@ -33,7 +33,7 @@ SYMBOL: vocab-articles : extract-values ( element -- seq ) \ $values swap elements dup empty? [ - first rest [ first ] map prune + first rest [ first ] map ] unless ; : effect-values ( word -- seq ) From 170f2b5eca702c863e38a4251b3997acef976ef7 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 19 Feb 2010 18:24:23 +1300 Subject: [PATCH 41/62] game.input: fix load error on *BSD, remove dependency on windows.com from game.input.linux --- basis/game/input/input.factor | 1 + basis/game/input/linux/linux.factor | 8 +++----- basis/game/input/linux/tags.txt | 1 + 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/basis/game/input/input.factor b/basis/game/input/input.factor index 7543a05c60..8a269cd51a 100644 --- a/basis/game/input/input.factor +++ b/basis/game/input/input.factor @@ -94,4 +94,5 @@ M: mouse-state clone { [ os windows? ] [ "game.input.xinput" require ] } { [ os macosx? ] [ "game.input.iokit" require ] } { [ os linux? ] [ "game.input.linux" require ] } + [ ] } cond diff --git a/basis/game/input/linux/linux.factor b/basis/game/input/linux/linux.factor index 465cefa84b..0d451e96f0 100644 --- a/basis/game/input/linux/linux.factor +++ b/basis/game/input/linux/linux.factor @@ -1,8 +1,6 @@ ! Copyright (C) 2010 Erik Charlebois. ! See http://factorcode.org/license.txt for BSD license. -USING: kernel game.input namespaces classes windows.com.syntax -bit-arrays -vectors ; +USING: kernel game.input namespaces classes bit-arrays vectors ; IN: game.input.linux SINGLETON: linux-game-input-backend @@ -25,10 +23,10 @@ M: linux-game-input-backend product-string drop "" ; M: linux-game-input-backend product-id - drop GUID: {00000000-0000-0000-0000-000000000000} ; + drop f ; M: linux-game-input-backend instance-id - drop GUID: {00000000-0000-0000-0000-000000000000} ; + drop f ; M: linux-game-input-backend read-controller drop controller-state new ; diff --git a/basis/game/input/linux/tags.txt b/basis/game/input/linux/tags.txt index 84d4140a70..82506ff250 100644 --- a/basis/game/input/linux/tags.txt +++ b/basis/game/input/linux/tags.txt @@ -1 +1,2 @@ +unportable games From 48fe9029af23b64d8ba4df68c6e849704a847737 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 19 Feb 2010 18:24:36 +1300 Subject: [PATCH 42/62] libusb: add unportable tag since it depends on the unix vocab --- extra/libusb/tags.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/extra/libusb/tags.txt b/extra/libusb/tags.txt index bb863cf9a0..bf2a35f15b 100644 --- a/extra/libusb/tags.txt +++ b/extra/libusb/tags.txt @@ -1 +1,2 @@ bindings +unportable From 7692bd1715db1a8cd5e12452f97bf7465ea73de0 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 19 Feb 2010 21:45:43 +1300 Subject: [PATCH 43/62] concurrency.mailboxes: mailboxes should not be disposable, since futures and promises use them in a transient fashion, causing leaks --- .../mailboxes/mailboxes-tests.factor | 35 ------------------- basis/concurrency/mailboxes/mailboxes.factor | 20 +++++------ 2 files changed, 9 insertions(+), 46 deletions(-) diff --git a/basis/concurrency/mailboxes/mailboxes-tests.factor b/basis/concurrency/mailboxes/mailboxes-tests.factor index 56d579d6c7..3435a01455 100644 --- a/basis/concurrency/mailboxes/mailboxes-tests.factor +++ b/basis/concurrency/mailboxes/mailboxes-tests.factor @@ -42,40 +42,6 @@ IN: concurrency.mailboxes.tests mailbox-get ] unit-test - "m" set - -1 "c" set -1 "d" set - -[ - "c" get await - [ "m" get mailbox-get drop ] - [ drop "d" get count-down ] recover -] "Mailbox close test" spawn drop - -[ ] [ "c" get count-down ] unit-test -[ ] [ "m" get dispose ] unit-test -[ ] [ "d" get 5 seconds await-timeout ] unit-test - -[ ] [ "m" get dispose ] unit-test - - "m" set - -1 "c" set -1 "d" set - -[ - "c" get await - "m" get wait-for-close - "d" get count-down -] "Mailbox close test" spawn drop - -[ ] [ "c" get count-down ] unit-test -[ ] [ "m" get dispose ] unit-test -[ ] [ "d" get 5 seconds await-timeout ] unit-test - -[ ] [ "m" get dispose ] unit-test - [ { "foo" "bar" } ] [ "foo" over mailbox-put @@ -86,4 +52,3 @@ IN: concurrency.mailboxes.tests [ 1 seconds mailbox-get-timeout ] [ wait-timeout? ] must-fail-with - diff --git a/basis/concurrency/mailboxes/mailboxes.factor b/basis/concurrency/mailboxes/mailboxes.factor index 7834a2a3e1..06da3b34a6 100644 --- a/basis/concurrency/mailboxes/mailboxes.factor +++ b/basis/concurrency/mailboxes/mailboxes.factor @@ -1,17 +1,17 @@ -! Copyright (C) 2005, 2008 Chris Double, Slava Pestov. +! Copyright (C) 2005, 2010 Chris Double, Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: dlists deques threads sequences continuations -destructors namespaces math quotations words kernel -arrays assocs init system concurrency.conditions accessors -debugger debugger.threads locals fry ; +USING: dlists deques threads sequences continuations namespaces +math quotations words kernel arrays assocs init system +concurrency.conditions accessors debugger debugger.threads +locals fry ; IN: concurrency.mailboxes -TUPLE: mailbox < disposable threads data ; - -M: mailbox dispose* threads>> notify-all ; +TUPLE: mailbox threads data ; : ( -- mailbox ) - mailbox new-disposable >>threads >>data ; + mailbox new + >>threads + >>data ; : mailbox-empty? ( mailbox -- bool ) data>> deque-empty? ; @@ -24,14 +24,12 @@ M: mailbox dispose* threads>> notify-all ; [ threads>> ] dip "mailbox" wait ; :: block-unless-pred ( mailbox timeout pred: ( message -- ? ) -- ) - mailbox check-disposed mailbox data>> pred dlist-any? [ mailbox timeout wait-for-mailbox mailbox timeout pred block-unless-pred ] unless ; inline recursive : block-if-empty ( mailbox timeout -- mailbox ) - over check-disposed over mailbox-empty? [ 2dup wait-for-mailbox block-if-empty ] [ From be8a0f777998a459a31a3fe606c9cd8723f66c33 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 19 Feb 2010 21:45:50 +1300 Subject: [PATCH 44/62] concurrency.promises: fix formatting --- basis/concurrency/promises/promises.factor | 1 + 1 file changed, 1 insertion(+) diff --git a/basis/concurrency/promises/promises.factor b/basis/concurrency/promises/promises.factor index 2ff338c4e3..3381bcc00b 100644 --- a/basis/concurrency/promises/promises.factor +++ b/basis/concurrency/promises/promises.factor @@ -12,6 +12,7 @@ TUPLE: promise mailbox ; mailbox>> mailbox-empty? not ; ERROR: promise-already-fulfilled promise ; + : fulfill ( value promise -- ) dup promise-fulfilled? [ promise-already-fulfilled From a615700af1f6d969b394ba8ea6a451025df2a7c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Br=C3=BCschweiler?= Date: Tue, 20 Oct 2009 13:55:29 +0200 Subject: [PATCH 45/62] ui.tools.listener docs: typo --- basis/ui/tools/listener/listener-docs.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/ui/tools/listener/listener-docs.factor b/basis/ui/tools/listener/listener-docs.factor index b762e036e6..966ac37d30 100644 --- a/basis/ui/tools/listener/listener-docs.factor +++ b/basis/ui/tools/listener/listener-docs.factor @@ -9,7 +9,7 @@ HELP: interactor $nl "Interactors are created by calling " { $link } "." $nl -"Interactors implement the " { $link stream-readln } ", " { $link stream-read } " and " { $link read-quot } " generic words." } ; +"Interactors implement the " { $link stream-readln } ", " { $link stream-read } " and " { $link stream-read-quot } " generic words." } ; ARTICLE: "ui-listener" "UI listener" "The graphical listener adds input history and word and vocabulary completion. See " { $link "listener" } " for general information on the listener." From db663548f9cd4615c31efa81b1b109a12ca2cfba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Br=C3=BCschweiler?= Date: Wed, 21 Oct 2009 19:48:49 +0200 Subject: [PATCH 46/62] math: typo in rem docs --- core/math/math-docs.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/math/math-docs.factor b/core/math/math-docs.factor index 1e107124a2..6357c8bd98 100644 --- a/core/math/math-docs.factor +++ b/core/math/math-docs.factor @@ -212,7 +212,7 @@ HELP: recip HELP: rem { $values { "x" rational } { "y" rational } { "z" rational } } { $description - "Computes the remainder of dividing " { $snippet "x" } " by " { $snippet "y" } ", with the remainder always positive." + "Computes the remainder of dividing " { $snippet "x" } " by " { $snippet "y" } ", with the remainder always positive or zero." { $list "Given fixnums, always yields a fixnum." "Given bignums, always yields a bignum." From caf978588bf9521cde6a1d6d518c5954cb4d150e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Br=C3=BCschweiler?= Date: Thu, 18 Feb 2010 18:18:26 +0100 Subject: [PATCH 47/62] sequences: clarify some stack effect and examlpes in docs --- core/sequences/sequences-docs.factor | 30 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/core/sequences/sequences-docs.factor b/core/sequences/sequences-docs.factor index 38eadc745d..dc26933af4 100644 --- a/core/sequences/sequences-docs.factor +++ b/core/sequences/sequences-docs.factor @@ -269,7 +269,7 @@ HELP: reduce HELP: reduce-index { $values - { "seq" sequence } { "identity" object } { "quot" quotation } } + { "seq" sequence } { "identity" object } { "quot" { $quotation "( prev elt index -- result )" } } } { $description "Combines successive elements of the sequence and their indices binary operations, and outputs the final result. On the first iteration, the three inputs to the quotation are " { $snippet "identity" } ", the first element of the sequence, and its index, 0. On successive iterations, the first input is the result of the previous iteration, the second input is the corresponding element of the sequence, and the third is its index." } { $examples { $example "USING: sequences prettyprint math ;" "{ 10 50 90 } 0 [ + + ] reduce-index ." @@ -321,20 +321,20 @@ HELP: map-as HELP: each-index { $values - { "seq" sequence } { "quot" quotation } } + { "seq" sequence } { "quot" { $quotation "( elt index -- )" } } } { $description "Calls the quotation with the element of the sequence and its index on the stack, with the index on the top of the stack." } -{ $examples { $example "USING: sequences prettyprint math ;" -"{ 10 20 30 } [ + . ] each-index" -"10\n21\n32" +{ $examples { $example "USING: arrays sequences prettyprint ;" +"{ 10 20 30 } [ 2array . ] each-index" +"{ 10 0 }\n{ 20 1 }\n{ 30 2 }" } } ; HELP: map-index { $values - { "seq" sequence } { "quot" quotation } { "newseq" sequence } } + { "seq" sequence } { "quot" { $quotation "( elt index -- result )" } } { "newseq" sequence } } { $description "Calls the quotation with the element of the sequence and its index on the stack, with the index on the top of the stack. Collects the outputs of the quotation and outputs them in a sequence of the same type as the input sequence." } -{ $examples { $example "USING: sequences prettyprint math ;" -"{ 10 20 30 } [ + ] map-index ." -"{ 10 21 32 }" +{ $examples { $example "USING: arrays sequences prettyprint ;" +"{ 10 20 30 } [ 2array ] map-index ." +"{ { 10 0 } { 20 1 } { 30 2 } }" } } ; HELP: change-nth @@ -995,8 +995,8 @@ HELP: count HELP: selector { $values - { "quot" "a predicate quotation" } - { "selector" quotation } { "accum" vector } } + { "quot" { $quotation "( elt -- ? )" } } + { "selector" { $quotation "( elt -- )" } } { "accum" vector } } { $description "Creates a new vector to accumulate the values which return true for a predicate. Returns a new quotation which accepts an object to be tested and stored in the collector if the test yields true. The collector is left on the stack for convenience." } { $example "! Find all the even numbers:" "USING: prettyprint sequences math kernel ;" "10 iota [ even? ] selector [ each ] dip ." @@ -1152,7 +1152,7 @@ HELP: replicate HELP: replicate-as { $values - { "len" integer } { "quot" quotation } { "exemplar" sequence } + { "len" integer } { "quot" { $quotation "( -- elt )" } } { "exemplar" sequence } { "newseq" sequence } } { $description "Calls the quotation " { $snippet "len" } " times, collecting results into a new sequence of the same type as the exemplar sequence." } { $examples @@ -1190,7 +1190,7 @@ HELP: virtual@ HELP: 2map-reduce { $values - { "seq1" sequence } { "seq2" sequence } { "map-quot" quotation } { "reduce-quot" quotation } + { "seq1" sequence } { "seq2" sequence } { "map-quot" { $quotation "( elt1 elt2 -- intermediate )" } } { "reduce-quot" { $quotation "( prev intermediate -- result )" } } { "result" object } } { $description "Calls " { $snippet "map-quot" } " on each pair of elements from " { $snippet "seq1" } " and " { $snippet "seq2" } " and combines the results using " { $snippet "reduce-quot" } " in the same manner as " { $link reduce } ", except that there is no identity element, and the sequence must have a length of at least 1." } { $errors "Throws an error if the sequence is empty." } @@ -1236,7 +1236,7 @@ HELP: collector HELP: binary-reduce { $values - { "seq" sequence } { "start" integer } { "quot" quotation } + { "seq" sequence } { "start" integer } { "quot" { $quotation "( elt1 elt2 -- newelt )" } } { "value" object } } { $description "Like " { $link reduce } ", but splits the sequence in half recursively until each sequence is small enough, and calls the quotation on these smaller sequences. If the quotation computes values that depend on the size of their input, such as bignum arithmetic, then this algorithm can be more efficient than using " { $link reduce } "." } { $examples "Computing factorial:" @@ -1247,7 +1247,7 @@ HELP: binary-reduce HELP: follow { $values - { "obj" object } { "quot" quotation } + { "obj" object } { "quot" { $quotation "( prev -- result/f )" } } { "seq" sequence } } { $description "Outputs a sequence containing the input object and all of the objects generated by successively feeding the result of the quotation called on the input object to the quotation recursuively. Objects yielded by the quotation are added to the output sequence until the quotation yields " { $link f } ", at which point the recursion terminates." } { $examples "Get random numbers until zero is reached:" From eb8344a5a5494276e5f7d5f16372d87364e6bdd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Br=C3=BCschweiler?= Date: Thu, 18 Feb 2010 18:43:13 +0100 Subject: [PATCH 48/62] assocs: doc fixes --- core/assocs/assocs-docs.factor | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/assocs/assocs-docs.factor b/core/assocs/assocs-docs.factor index 0d5a884832..8f93c5a9d1 100644 --- a/core/assocs/assocs-docs.factor +++ b/core/assocs/assocs-docs.factor @@ -221,7 +221,7 @@ HELP: assoc-size HELP: assoc-like { $values { "assoc" assoc } { "exemplar" assoc } { "newassoc" "a new assoc" } } -{ $contract "Creates a new assoc having the same entries as "{ $snippet "assoc" } " and the same type as " { $snippet "exemplar" } "." } ; +{ $contract "Creates a new assoc having the same entries as " { $snippet "assoc" } " and the same type as " { $snippet "exemplar" } "." } ; HELP: assoc-empty? { $values { "assoc" assoc } { "?" "a boolean" } } @@ -383,7 +383,7 @@ HELP: cache { $side-effects "assoc" } ; HELP: 2cache -{ $values { "key1" "a key" } { "key2" "a key" } { "assoc" assoc } { "quot" { $quotation "( key -- value )" } } { "value" "a previously-retained or freshly-computed value" } } +{ $values { "key1" "a key" } { "key2" "a key" } { "assoc" assoc } { "quot" { $quotation "( key1 key2 -- value )" } } { "value" "a previously-retained or freshly-computed value" } } { $description "If a single key composed of the input keys is present in the assoc, outputs the associated value, otherwise calls the quotation to produce a value and stores the keys/value pair into the assoc. Returns the value stored in the assoc. Returns a value either looked up or newly stored in the assoc." } { $side-effects "assoc" } ; @@ -432,7 +432,7 @@ HELP: assoc-combine HELP: assoc-map-as { $values - { "assoc" assoc } { "quot" quotation } { "exemplar" assoc } + { "assoc" assoc } { "quot" { $quotation "( key value -- newkey newvalue )" } } { "exemplar" assoc } { "newassoc" assoc } } { $description "Applies the quotation to each entry in the input assoc and collects the results in a new assoc of the stame type as the exemplar." } { $examples { $example "USING: prettyprint assocs hashtables math ;" " H{ { 1 2 } { 3 4 } } [ sq ] { } assoc-map-as ." "{ { 1 4 } { 3 16 } }" } } ; From aec0243f8331f69f2c71804e312b58baca56252a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Br=C3=BCschweiler?= Date: Thu, 18 Feb 2010 18:47:02 +0100 Subject: [PATCH 49/62] infix: part about integers as sequences doesn't apply anymore --- extra/infix/infix-docs.factor | 8 -------- 1 file changed, 8 deletions(-) diff --git a/extra/infix/infix-docs.factor b/extra/infix/infix-docs.factor index 9c42bf256b..3885fcc613 100644 --- a/extra/infix/infix-docs.factor +++ b/extra/infix/infix-docs.factor @@ -65,14 +65,6 @@ $nl "[let { 1 2 3 4 } :> myarr [infix myarr[4/2]*3 infix] ] ." "9" } -"Please note: in Factor " { $emphasis "fixnums are sequences too." } " If you are not careful with sequence accesses you may introduce subtle bugs:" -{ $example - "USING: arrays infix locals ;" - ":: add-2nd-elements ( x y -- res )" - " [infix x[1] + y[1] infix] ;" - "{ 1 2 3 } { 0 1 2 3 } add-2nd-elements ." - "3" -} ; ABOUT: "infix" From a343f8a31ccf418e39e0a5c5e18a9dfe51034efa Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 20 Feb 2010 00:23:24 +1300 Subject: [PATCH 50/62] io.monitors: if a monitor is disposed while other threads are waiting on it, an error will be thrown from next-change, instead of those threads hanging forever. This makes monitors consistent with streams and other native resources that behave in a similar manner --- basis/io/monitors/linux/linux.factor | 4 +++- basis/io/monitors/macosx/macosx.factor | 5 ++-- basis/io/monitors/monitors-tests.factor | 21 ++++++++++++++++- basis/io/monitors/monitors.factor | 24 ++++++++++++++++---- basis/io/monitors/recursive/recursive.factor | 2 +- basis/io/monitors/windows/nt/nt.factor | 2 +- 6 files changed, 48 insertions(+), 10 deletions(-) diff --git a/basis/io/monitors/linux/linux.factor b/basis/io/monitors/linux/linux.factor index 7653eaa84c..eacc920303 100644 --- a/basis/io/monitors/linux/linux.factor +++ b/basis/io/monitors/linux/linux.factor @@ -59,7 +59,9 @@ M: linux-monitor dispose* ( monitor -- ) [ inotify>> handle>> handle-fd ] [ wd>> ] bi inotify_rm_watch io-error ] if - ] bi ; + ] + [ call-next-method ] + tri ; : ignore-flags? ( mask -- ? ) { diff --git a/basis/io/monitors/macosx/macosx.factor b/basis/io/monitors/macosx/macosx.factor index e71fb2eca2..dbbbe7c7e3 100644 --- a/basis/io/monitors/macosx/macosx.factor +++ b/basis/io/monitors/macosx/macosx.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2008 Slava Pestov. +! Copyright (C) 2008, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: io.backend io.monitors core-foundation.fsevents continuations kernel sequences @@ -16,6 +16,7 @@ M:: macosx (monitor) ( path recursive? mailbox -- monitor ) dup [ enqueue-notifications ] curry path 1array 0 0 >>handle ; -M: macosx-monitor dispose* handle>> dispose ; +M: macosx-monitor dispose* + [ handle>> dispose ] [ call-next-method ] bi ; macosx set-io-backend diff --git a/basis/io/monitors/monitors-tests.factor b/basis/io/monitors/monitors-tests.factor index 576ac7ca30..ac17c4a39f 100644 --- a/basis/io/monitors/monitors-tests.factor +++ b/basis/io/monitors/monitors-tests.factor @@ -3,7 +3,7 @@ USING: io.monitors tools.test io.files system sequences continuations namespaces concurrency.count-downs kernel io threads calendar prettyprint destructors io.timeouts io.files.temp io.directories io.directories.hierarchy -io.pathnames accessors ; +io.pathnames accessors concurrency.promises ; os { winnt linux macosx } member? [ [ @@ -110,4 +110,23 @@ os { winnt linux macosx } member? [ [ [ t ] [ "m" get next-change drop ] while ] must-fail [ ] [ "m" get dispose ] unit-test ] with-monitors + + ! Disposing a monitor should throw an error in any threads + ! waiting on notifications + [ + [ ] [ + "p" set + "monitor-test" temp-file t "m" set + 10 seconds "m" get set-timeout + ] unit-test + + [ + [ "m" get next-change ] [ ] recover + "p" get fulfill + ] in-thread + + [ ] [ 1 seconds sleep ] unit-test + [ ] [ "m" get dispose ] unit-test + [ t ] [ "p" get 10 seconds ?promise-timeout already-disposed? ] unit-test + ] with-monitors ] when diff --git a/basis/io/monitors/monitors.factor b/basis/io/monitors/monitors.factor index cb2f552a32..731798c424 100644 --- a/basis/io/monitors/monitors.factor +++ b/basis/io/monitors/monitors.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2008, 2009 Slava Pestov. +! Copyright (C) 2008, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: io.backend kernel continuations destructors namespaces sequences assocs hashtables sorting arrays threads boxes @@ -26,6 +26,15 @@ M: monitor timeout timeout>> ; M: monitor set-timeout (>>timeout) ; + + +M: monitor dispose* + [ monitor-disposed ] dip queue>> mailbox-put ; + : new-monitor ( path mailbox class -- monitor ) new-disposable swap >>queue @@ -34,8 +43,11 @@ M: monitor set-timeout (>>timeout) ; TUPLE: file-change path changed monitor ; : queue-change ( path changes monitor -- ) - 3dup and and - [ [ file-change boa ] keep queue>> mailbox-put ] [ 3drop ] if ; + 3dup and and [ + [ check-disposed ] keep + [ file-change boa ] keep + queue>> mailbox-put + ] [ 3drop ] if ; HOOK: (monitor) io-backend ( path recursive? mailbox -- monitor ) @@ -43,7 +55,11 @@ HOOK: (monitor) io-backend ( path recursive? mailbox -- monitor ) (monitor) ; : next-change ( monitor -- change ) - [ queue>> ] [ timeout ] bi mailbox-get-timeout ; + [ check-disposed ] + [ + [ ] [ queue>> ] [ timeout ] tri mailbox-get-timeout + dup monitor-disposed eq? [ drop already-disposed ] [ nip ] if + ] bi ; SYMBOL: +add-file+ SYMBOL: +remove-file+ diff --git a/basis/io/monitors/recursive/recursive.factor b/basis/io/monitors/recursive/recursive.factor index 33477abdb6..83c088e882 100644 --- a/basis/io/monitors/recursive/recursive.factor +++ b/basis/io/monitors/recursive/recursive.factor @@ -41,7 +41,7 @@ DEFER: add-child-monitor M: recursive-monitor dispose* [ "stop" swap thread>> send-synchronous drop ] - [ queue>> dispose ] + [ call-next-method ] bi ; : stop-pump ( -- ) diff --git a/basis/io/monitors/windows/nt/nt.factor b/basis/io/monitors/windows/nt/nt.factor index 9cd8bc4df8..4d061cbb1a 100644 --- a/basis/io/monitors/windows/nt/nt.factor +++ b/basis/io/monitors/windows/nt/nt.factor @@ -100,4 +100,4 @@ M:: winnt (monitor) ( path recursive? mailbox -- monitor ) ] with-destructors ; M: win32-monitor dispose - port>> dispose ; + [ port>> dispose ] [ call-next-method ] bi ; From 5336d6f287fcbd59d59ca075ef29d67c1b0b84da Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 19 Feb 2010 07:36:12 -0500 Subject: [PATCH 51/62] io.monitors.recursive: fix hang introduced by recent io.monitors change --- basis/io/monitors/recursive/recursive.factor | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/basis/io/monitors/recursive/recursive.factor b/basis/io/monitors/recursive/recursive.factor index 83c088e882..b573e2fa2b 100644 --- a/basis/io/monitors/recursive/recursive.factor +++ b/basis/io/monitors/recursive/recursive.factor @@ -39,17 +39,19 @@ DEFER: add-child-monitor : remove-child-monitor ( monitor -- ) monitor tget children>> delete-at* [ dispose ] [ drop ] if ; +SYMBOL: +stop+ + M: recursive-monitor dispose* - [ "stop" swap thread>> send-synchronous drop ] - [ call-next-method ] - bi ; + [ [ +stop+ ] dip thread>> send ] [ call-next-method ] bi ; : stop-pump ( -- ) monitor tget children>> values dispose-each ; : pump-step ( msg -- ) - [ [ monitor>> path>> ] [ path>> ] bi append-path ] [ changed>> ] bi - monitor tget queue-change ; + monitor tget disposed>> [ drop ] [ + [ [ monitor>> path>> ] [ path>> ] bi append-path ] [ changed>> ] bi + monitor tget queue-change + ] if ; : child-added ( path monitor -- ) path>> prepend-path add-child-monitor ; @@ -69,8 +71,8 @@ M: recursive-monitor dispose* ] with with each ; : pump-loop ( -- ) - receive dup synchronous? [ - [ stop-pump t ] dip reply-synchronous + receive dup +stop+ eq? [ + drop stop-pump ] [ [ '[ _ update-hierarchy ] ignore-errors ] [ pump-step ] bi pump-loop From 6501480a0e7eb83511aa1d70194eb3a756e8689f Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 20 Feb 2010 12:01:47 +1300 Subject: [PATCH 52/62] Fix two problems with recompilation: predicate constant folding was recording unsatisfied dependencies in some cases, and literal tuple instances of forgotten classes would cause problems for method inlining --- basis/compiler/crossref/crossref-tests.factor | 9 ++++++ basis/compiler/tests/redefine22.factor | 11 +++++++ basis/compiler/tests/redefine23.factor | 13 ++++++++ basis/compiler/tree/cleanup/cleanup.factor | 13 +++++--- .../tree/propagation/info/info.factor | 21 ++++++++---- .../tree/propagation/propagation-tests.factor | 6 ++-- .../tree/propagation/simple/simple.factor | 9 ++---- .../dependencies/dependencies.factor | 32 +++++++++---------- core/classes/algebra/algebra.factor | 9 ++++++ 9 files changed, 87 insertions(+), 36 deletions(-) create mode 100644 basis/compiler/crossref/crossref-tests.factor create mode 100644 basis/compiler/tests/redefine22.factor create mode 100644 basis/compiler/tests/redefine23.factor diff --git a/basis/compiler/crossref/crossref-tests.factor b/basis/compiler/crossref/crossref-tests.factor new file mode 100644 index 0000000000..9cd475b2de --- /dev/null +++ b/basis/compiler/crossref/crossref-tests.factor @@ -0,0 +1,9 @@ +USING: compiler.crossref fry kernel sequences tools.test vocabs words ; +IN: compiler.crossref.tests + +! Dependencies of all words should always be satisfied unless we're +! in the middle of recompiling something +[ { } ] [ + all-words dup [ subwords ] map concat append + H{ } clone '[ _ dependencies-satisfied? not ] filter +] unit-test diff --git a/basis/compiler/tests/redefine22.factor b/basis/compiler/tests/redefine22.factor new file mode 100644 index 0000000000..5837d68c73 --- /dev/null +++ b/basis/compiler/tests/redefine22.factor @@ -0,0 +1,11 @@ +IN: compiler.tests.redefine22 +USING: kernel sequences compiler.units vocabs tools.test definitions ; + +TUPLE: ttt ; +INSTANCE: ttt sequence +M: ttt new-sequence 2drop ttt new ; + +: www-1 ( a -- b ) T{ ttt } new-sequence ; + +! This used to break with a compiler error in the above word +[ ] [ [ \ ttt forget ] with-compilation-unit ] unit-test diff --git a/basis/compiler/tests/redefine23.factor b/basis/compiler/tests/redefine23.factor new file mode 100644 index 0000000000..e6061937b6 --- /dev/null +++ b/basis/compiler/tests/redefine23.factor @@ -0,0 +1,13 @@ +IN: compiler.tests.redefine23 +USING: classes.struct specialized-arrays alien.c-types sequences +compiler.units vocabs tools.test ; + +STRUCT: my-struct { x int } ; +SPECIALIZED-ARRAY: my-struct +: my-word ( a -- b ) iota [ my-struct ] my-struct-array{ } map-as ; + +[ ] [ + [ + "specialized-arrays.instances.compiler.tests.redefine23" forget-vocab + ] with-compilation-unit +] unit-test diff --git a/basis/compiler/tree/cleanup/cleanup.factor b/basis/compiler/tree/cleanup/cleanup.factor index b19c99c360..b69f053898 100644 --- a/basis/compiler/tree/cleanup/cleanup.factor +++ b/basis/compiler/tree/cleanup/cleanup.factor @@ -51,11 +51,16 @@ GENERIC: cleanup* ( node -- node/nodes ) [ in-d>> #drop ] bi prefix ; -: record-predicate-folding ( #call -- ) - [ node-input-infos first class>> ] +: >predicate-folding< ( #call -- value-info class result ) + [ node-input-infos first ] [ word>> "predicating" word-prop ] - [ node-output-infos first literal>> ] tri - [ depends-on-class<= ] [ depends-on-classes-disjoint ] if ; + [ node-output-infos first literal>> ] tri ; + +: record-predicate-folding ( #call -- ) + >predicate-folding< pick literal?>> + [ [ literal>> ] 2dip depends-on-instance-predicate ] + [ [ class>> ] 2dip depends-on-class-predicate ] + if ; : record-folding ( #call -- ) dup word>> predicate? diff --git a/basis/compiler/tree/propagation/info/info.factor b/basis/compiler/tree/propagation/info/info.factor index 28ffb96f8f..7f5b9f6fcd 100644 --- a/basis/compiler/tree/propagation/info/info.factor +++ b/basis/compiler/tree/propagation/info/info.factor @@ -1,10 +1,11 @@ -! Copyright (C) 2008, 2009 Slava Pestov. +! Copyright (C) 2008, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: assocs classes classes.algebra classes.tuple -classes.tuple.private kernel accessors math math.intervals namespaces -sequences sequences.private words combinators memoize -combinators.short-circuit byte-arrays strings arrays layouts -cpu.architecture compiler.tree.propagation.copy ; +classes.tuple.private classes.singleton kernel accessors math +math.intervals namespaces sequences sequences.private words +combinators memoize combinators.short-circuit byte-arrays +strings arrays layouts cpu.architecture +compiler.tree.propagation.copy ; IN: compiler.tree.propagation.info : false-class? ( class -- ? ) \ f class<= ; @@ -65,9 +66,17 @@ DEFER: UNION: fixed-length array byte-array string ; +: literal-class ( obj -- class ) + #! Handle forgotten tuples and singleton classes properly + dup singleton-class? [ + class dup class? [ + drop tuple + ] unless + ] unless ; + : init-literal-info ( info -- info ) empty-interval >>interval - dup literal>> class >>class + dup literal>> literal-class >>class dup literal>> { { [ dup real? ] [ [a,a] >>interval ] } { [ dup tuple? ] [ tuple-slot-infos >>slots ] } diff --git a/basis/compiler/tree/propagation/propagation-tests.factor b/basis/compiler/tree/propagation/propagation-tests.factor index e2bfe58788..444a424766 100644 --- a/basis/compiler/tree/propagation/propagation-tests.factor +++ b/basis/compiler/tree/propagation/propagation-tests.factor @@ -648,7 +648,7 @@ M: array iterate first t ; inline ] final-info drop ] unit-test -[ V{ word } ] [ +[ V{ t } ] [ [ { hashtable } declare hashtable instance? ] final-classes ] unit-test @@ -660,7 +660,7 @@ M: array iterate first t ; inline [ { assoc } declare hashtable instance? ] final-classes ] unit-test -[ V{ word } ] [ +[ V{ t } ] [ [ { string } declare string? ] final-classes ] unit-test @@ -774,7 +774,7 @@ MIXIN: empty-mixin [ { fixnum } declare log2 ] final-classes ] unit-test -[ V{ word } ] [ +[ V{ t } ] [ [ { fixnum } declare log2 0 >= ] final-classes ] unit-test diff --git a/basis/compiler/tree/propagation/simple/simple.factor b/basis/compiler/tree/propagation/simple/simple.factor index ccfd6ffabd..ed417ef9d7 100644 --- a/basis/compiler/tree/propagation/simple/simple.factor +++ b/basis/compiler/tree/propagation/simple/simple.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2008, 2009 Slava Pestov. +! Copyright (C) 2008, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: fry accessors kernel sequences sequences.private assocs words namespaces classes.algebra combinators @@ -93,11 +93,8 @@ M: #declare propagate-before recover ; : predicate-output-infos/class ( info class -- info ) - [ class>> ] dip { - { [ 2dup class<= ] [ t ] } - { [ 2dup classes-intersect? not ] [ f ] } - [ object-info ] - } cond 2nip ; + [ class>> ] dip compare-classes + dup +incomparable+ eq? [ drop object-info ] [ ] if ; : predicate-output-infos ( info class -- info ) over literal?>> diff --git a/basis/stack-checker/dependencies/dependencies.factor b/basis/stack-checker/dependencies/dependencies.factor index df68fa8961..5469000e84 100644 --- a/basis/stack-checker/dependencies/dependencies.factor +++ b/basis/stack-checker/dependencies/dependencies.factor @@ -1,8 +1,8 @@ ! Copyright (C) 2009, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: assocs accessors classes.algebra fry generic kernel math -namespaces sequences words sets combinators.short-circuit -classes.tuple ; +USING: assocs accessors classes classes.algebra fry generic +kernel math namespaces sequences words sets +combinators.short-circuit classes.tuple ; FROM: classes.tuple.private => tuple-layout ; IN: stack-checker.dependencies @@ -57,28 +57,26 @@ GENERIC: satisfied? ( dependency -- ? ) boa conditional-dependencies get dup [ conjoin ] [ 2drop ] if ; inline -TUPLE: depends-on-class<= class1 class2 ; +TUPLE: depends-on-class-predicate class1 class2 result ; -: depends-on-class<= ( class1 class2 -- ) - \ depends-on-class<= add-conditional-dependency ; +: depends-on-class-predicate ( class1 class2 result -- ) + \ depends-on-class-predicate add-conditional-dependency ; -M: depends-on-class<= satisfied? +M: depends-on-class-predicate satisfied? { - [ class1>> classoid? ] - [ class2>> classoid? ] - [ [ class1>> ] [ class2>> ] bi class<= ] + [ [ class1>> classoid? ] [ class2>> classoid? ] bi and ] + [ [ [ class1>> ] [ class2>> ] bi compare-classes ] [ result>> ] bi eq? ] } 1&& ; -TUPLE: depends-on-classes-disjoint class1 class2 ; +TUPLE: depends-on-instance-predicate object class result ; -: depends-on-classes-disjoint ( class1 class2 -- ) - \ depends-on-classes-disjoint add-conditional-dependency ; +: depends-on-instance-predicate ( object class result -- ) + \ depends-on-instance-predicate add-conditional-dependency ; -M: depends-on-classes-disjoint satisfied? +M: depends-on-instance-predicate satisfied? { - [ class1>> classoid? ] - [ class2>> classoid? ] - [ [ class1>> ] [ class2>> ] bi classes-intersect? not ] + [ class>> classoid? ] + [ [ [ object>> ] [ class>> ] bi instance? ] [ result>> ] bi eq? ] } 1&& ; TUPLE: depends-on-next-method class generic next-method ; diff --git a/core/classes/algebra/algebra.factor b/core/classes/algebra/algebra.factor index 69289600e4..f9aaf3eaa5 100644 --- a/core/classes/algebra/algebra.factor +++ b/core/classes/algebra/algebra.factor @@ -234,3 +234,12 @@ ERROR: topological-sort-failed ; : flatten-class ( class -- assoc ) [ (flatten-class) ] H{ } make-assoc ; + +SYMBOL: +incomparable+ + +: compare-classes ( class1 class2 -- ? ) + { + { [ 2dup class<= ] [ t ] } + { [ 2dup classes-intersect? not ] [ f ] } + [ +incomparable+ ] + } cond 2nip ; From 08a80e5ba22ac457da60c526c1c06f73a83b123d Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 20 Feb 2010 12:05:12 +1300 Subject: [PATCH 53/62] specialized-arrays: generate slightly more efficient byte-array>T-array words --- .../specialized-arrays/specialized-arrays.factor | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/basis/specialized-arrays/specialized-arrays.factor b/basis/specialized-arrays/specialized-arrays.factor index d3db93e788..e2840b89dd 100644 --- a/basis/specialized-arrays/specialized-arrays.factor +++ b/basis/specialized-arrays/specialized-arrays.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2008, 2009 Slava Pestov. +! Copyright (C) 2008, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors alien alien.c-types alien.data alien.parser assocs byte-arrays classes compiler.units functors kernel lexer @@ -19,6 +19,11 @@ ERROR: bad-byte-array-length byte-array type ; M: bad-byte-array-length summary drop "Byte array length doesn't divide type width" ; +ERROR: not-a-byte-array alien ; + +M: not-a-byte-array summary + drop "Not a byte array" ; + : (underlying) ( n c-type -- array ) heap-size * (byte-array) ; inline @@ -61,9 +66,11 @@ TUPLE: A [ \ T heap-size calloc ] keep ; inline : byte-array>A ( byte-array -- specialized-array ) - >c-ptr dup length \ T heap-size /mod 0 = - [ drop \ T bad-byte-array-length ] unless - ; inline + >c-ptr dup byte-array? [ + dup length \ T heap-size /mod 0 = + [ ] + [ drop \ T bad-byte-array-length ] if + ] [ not-a-byte-array ] if ; inline M: A clone [ underlying>> clone ] [ length>> ] bi ; inline From 9cd164f3acc03d783278abf6e9af7ff30032b678 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 20 Feb 2010 12:05:52 +1300 Subject: [PATCH 54/62] tools.crossref: don't include generic words in usage lists, since the results are useless and arbitrary -- they depend on the contents of megamorphic caches --- basis/tools/crossref/crossref.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/tools/crossref/crossref.factor b/basis/tools/crossref/crossref.factor index 3bdf2f83ae..50034822b2 100644 --- a/basis/tools/crossref/crossref.factor +++ b/basis/tools/crossref/crossref.factor @@ -71,7 +71,7 @@ M: word crossref-def : defs-to-crossref ( -- seq ) [ - all-words + all-words [ generic? not ] filter all-articles [ >link ] map source-files get keys [ ] map ] append-outputs ; From c5a62b14e786781fde0b860b08fb16d21a6c507c Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 20 Feb 2010 12:08:14 +1300 Subject: [PATCH 55/62] stack-checker.dependencies: fix load error --- basis/stack-checker/dependencies/dependencies.factor | 1 + 1 file changed, 1 insertion(+) diff --git a/basis/stack-checker/dependencies/dependencies.factor b/basis/stack-checker/dependencies/dependencies.factor index 5469000e84..ece943acac 100644 --- a/basis/stack-checker/dependencies/dependencies.factor +++ b/basis/stack-checker/dependencies/dependencies.factor @@ -4,6 +4,7 @@ USING: assocs accessors classes classes.algebra fry generic kernel math namespaces sequences words sets combinators.short-circuit classes.tuple ; FROM: classes.tuple.private => tuple-layout ; +FROM: assocs => change-at ; IN: stack-checker.dependencies ! Words that the current quotation depends on From 66bb912641871b5d64681c2b9b1e94cd8a5e5074 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 20 Feb 2010 12:18:16 +1300 Subject: [PATCH 56/62] prettyprint.config: set some output limits by default. Use the new without-limits combinator to get the old behavior --- basis/prettyprint/config/config-docs.factor | 10 ++++++- basis/prettyprint/config/config.factor | 30 ++++++++++++++++--- basis/prettyprint/prettyprint-docs.factor | 9 ++---- basis/prettyprint/prettyprint.factor | 8 +---- .../tools/deploy/config/editor/editor.factor | 9 +++--- 5 files changed, 44 insertions(+), 22 deletions(-) diff --git a/basis/prettyprint/config/config-docs.factor b/basis/prettyprint/config/config-docs.factor index ccc63c61cb..7cd4b31c8b 100644 --- a/basis/prettyprint/config/config-docs.factor +++ b/basis/prettyprint/config/config-docs.factor @@ -1,5 +1,5 @@ USING: help.markup help.syntax io kernel -prettyprint.sections words ; +prettyprint.sections words quotations ; IN: prettyprint.config ABOUT: "prettyprint-variables" @@ -31,3 +31,11 @@ HELP: boa-tuples? HELP: c-object-pointers? { $var-description "Toggles whether C objects such as structs and direct arrays only print their underlying address. If this flag isn't set, C objects will attempt to print their contents. If a C object points to invalid memory, it will display only its address regardless." } ; + +HELP: with-short-limits +{ $values { "quot" quotation } } +{ $description "Calls a quotation in a new dynamic scope with prettyprinter limits set to produce a single line of output." } ; + +HELP: without-limits +{ $values { "quot" quotation } } +{ $description "Calls a quotation in a new dynamic scope with prettyprinter limits set to produce unlimited output." } ; diff --git a/basis/prettyprint/config/config.factor b/basis/prettyprint/config/config.factor index dd61e3e23d..a8848f9061 100644 --- a/basis/prettyprint/config/config.factor +++ b/basis/prettyprint/config/config.factor @@ -1,8 +1,6 @@ -! Copyright (C) 2003, 2008 Slava Pestov. +! Copyright (C) 2003, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: arrays generic assocs io kernel math -namespaces sequences strings vectors words -continuations ; +USING: kernel namespaces ; IN: prettyprint.config ! Configuration @@ -18,4 +16,28 @@ SYMBOL: c-object-pointers? 4 tab-size set-global 64 margin set-global +15 nesting-limit set-global +100 length-limit set-global 10 number-base set-global +string-limit? on + +: with-short-limits ( quot -- ) + [ + 1 line-limit set + 15 length-limit set + 2 nesting-limit set + string-limit? on + boa-tuples? on + c-object-pointers? on + call + ] with-scope ; inline + +: without-limits ( quot -- ) + [ + nesting-limit off + length-limit off + line-limit off + string-limit? off + c-object-pointers? off + call + ] with-scope ; inline diff --git a/basis/prettyprint/prettyprint-docs.factor b/basis/prettyprint/prettyprint-docs.factor index bd2c4bd924..33e1857260 100644 --- a/basis/prettyprint/prettyprint-docs.factor +++ b/basis/prettyprint/prettyprint-docs.factor @@ -38,12 +38,9 @@ ARTICLE: "prettyprint-variables" "Prettyprint control variables" boa-tuples? c-object-pointers? } -"Note that the " { $link short. } " and " { $link pprint-short } " variables override some of these variables." -{ - $warning "Treat the global variables as essentially being constants. Only ever rebind them in a nested scope." - $nl - "Some of the globals are safe to change, like the tab size and wrap margin. However setting limits globally could break code which uses the prettyprinter as a serialization mechanism." -} ; +"The default limits are meant to strike a balance between readability, and not producing too much output when large structures are given. There are two combinators that override the defaults:" +{ $subsections with-short-limits without-limits } +"That the " { $link short. } " and " { $link pprint-short } " words wrap calls to " { $link . } " and " { $link pprint } " in " { $link with-short-limits } ". Code that uses the prettyprinter for serialization should use " { $link without-limits } " to avoid producing unreadable output." ; ARTICLE: "prettyprint-limitations" "Prettyprinter limitations" "When using the prettyprinter as a serialization mechanism, keep the following points in mind:" diff --git a/basis/prettyprint/prettyprint.factor b/basis/prettyprint/prettyprint.factor index 7b1538b1dc..23cf956a1d 100644 --- a/basis/prettyprint/prettyprint.factor +++ b/basis/prettyprint/prettyprint.factor @@ -26,13 +26,7 @@ IN: prettyprint : unparse-use ( obj -- str ) [ pprint-use ] with-string-writer ; : pprint-short ( obj -- ) - H{ - { line-limit 1 } - { length-limit 15 } - { nesting-limit 2 } - { string-limit? t } - { boa-tuples? t } - } clone [ pprint ] bind ; + [ pprint ] with-short-limits ; : unparse-short ( obj -- str ) [ pprint-short ] with-string-writer ; diff --git a/basis/tools/deploy/config/editor/editor.factor b/basis/tools/deploy/config/editor/editor.factor index 78d86a4707..e10d20e8b3 100644 --- a/basis/tools/deploy/config/editor/editor.factor +++ b/basis/tools/deploy/config/editor/editor.factor @@ -1,7 +1,8 @@ -! Copyright (C) 2008 Slava Pestov. +! Copyright (C) 2008, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: assocs io.pathnames kernel parser prettyprint sequences -splitting tools.deploy.config vocabs.loader vocabs.metadata ; +USING: assocs io.pathnames kernel parser prettyprint +prettyprint.config sequences splitting tools.deploy.config +vocabs.loader vocabs.metadata ; IN: tools.deploy.config.editor : deploy-config-path ( vocab -- string ) @@ -13,7 +14,7 @@ IN: tools.deploy.config.editor parse-fresh [ first assoc-union ] unless-empty ; : set-deploy-config ( assoc vocab -- ) - [ unparse-use string-lines ] dip + [ [ unparse-use ] without-limits string-lines ] dip dup deploy-config-path set-vocab-file-contents ; : set-deploy-flag ( value key vocab -- ) From 51922a2fb96efa9797bc47a6d654742dd3b8dd2c Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 20 Feb 2010 12:18:29 +1300 Subject: [PATCH 57/62] make: documentation tweak --- core/make/make-docs.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/make/make-docs.factor b/core/make/make-docs.factor index 5e4e04c270..2cbf82ae33 100644 --- a/core/make/make-docs.factor +++ b/core/make/make-docs.factor @@ -63,7 +63,7 @@ HELP: building HELP: make { $values { "quot" quotation } { "exemplar" sequence } { "seq" "a new sequence" } } -{ $description "Calls the quotation in a new " { $emphasis "dynamic scope" } ". The quotation and any words it calls can execute the " { $link , } " and " { $link % } " words to accumulate elements. When the quotation returns, all accumulated elements are collected into a sequence with the same type as " { $snippet "exemplar" } "." } +{ $description "Calls the quotation in a new dynamic scope with the " { $link building } " variable bound to a new resizable mutable sequence. The quotation and any words it calls can execute the " { $link , } " and " { $link % } " words to accumulate elements. When the quotation returns, all accumulated elements are collected into a sequence with the same type as " { $snippet "exemplar" } "." } { $examples { $example "USING: make prettyprint ;" "[ 1 , 2 , 3 , ] { } make ." "{ 1 2 3 }" } } ; HELP: , From daed64d8b4f8510e4080cf8abf74630da7e69ff6 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 20 Feb 2010 12:24:25 +1300 Subject: [PATCH 58/62] ui.gadgets.worlds: support S+DELETE as an alternative shortcut for cut-action --- basis/ui/gadgets/editors/editors.factor | 1 - basis/ui/gadgets/worlds/worlds.factor | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/ui/gadgets/editors/editors.factor b/basis/ui/gadgets/editors/editors.factor index f42fdf4616..da60d66aff 100644 --- a/basis/ui/gadgets/editors/editors.factor +++ b/basis/ui/gadgets/editors/editors.factor @@ -365,7 +365,6 @@ editor "editing" f { { undo-action com-undo } { redo-action com-redo } { T{ key-down f f "DELETE" } delete-next-character } - { T{ key-down f { S+ } "DELETE" } delete-next-character } { T{ key-down f f "BACKSPACE" } delete-previous-character } { T{ key-down f { S+ } "BACKSPACE" } delete-previous-character } { T{ key-down f { C+ } "DELETE" } delete-previous-word } diff --git a/basis/ui/gadgets/worlds/worlds.factor b/basis/ui/gadgets/worlds/worlds.factor index 7e54b823e8..526fc77c57 100644 --- a/basis/ui/gadgets/worlds/worlds.factor +++ b/basis/ui/gadgets/worlds/worlds.factor @@ -230,6 +230,7 @@ action-gestures [ bi* ] H{ } assoc-map-as H{ + { T{ key-down f { S+ } "DELETE" } [ \ cut-action send-action ] } { T{ button-down f { C+ } 1 } [ drop T{ button-down f f 3 } button-gesture ] } { T{ button-down f { A+ } 1 } [ drop T{ button-down f f 2 } button-gesture ] } { T{ button-down f { M+ } 1 } [ drop T{ button-down f f 2 } button-gesture ] } From 95bfc8a240bbe08d1190e3f3535d335ae421e109 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 20 Feb 2010 13:25:26 +1300 Subject: [PATCH 59/62] vocabs.metadata: replace unportable tag with a platforms.txt file for more fine-grained control. Rename unportable tag to untested for remaining cases --- basis/bootstrap/compiler/timing/tags.txt | 2 +- basis/calendar/unix/platforms.txt | 1 + basis/calendar/unix/tags.txt | 1 - basis/calendar/windows/platforms.txt | 1 + basis/calendar/windows/tags.txt | 1 - basis/cocoa/application/platforms.txt | 1 + basis/cocoa/application/tags.txt | 1 - basis/cocoa/callbacks/platforms.txt | 1 + basis/cocoa/callbacks/tags.txt | 1 - basis/cocoa/dialogs/platforms.txt | 1 + basis/cocoa/dialogs/tags.txt | 1 - basis/cocoa/enumeration/platforms.txt | 1 + basis/cocoa/enumeration/tags.txt | 1 - basis/cocoa/messages/platforms.txt | 1 + basis/cocoa/messages/tags.txt | 1 - basis/cocoa/nibs/platforms.txt | 1 + basis/cocoa/nibs/tags.txt | 1 - basis/cocoa/pasteboard/platforms.txt | 1 + basis/cocoa/pasteboard/tags.txt | 1 - basis/cocoa/platforms.txt | 1 + basis/cocoa/plists/platforms.txt | 1 + basis/cocoa/plists/tags.txt | 1 - basis/cocoa/runtime/platforms.txt | 1 + basis/cocoa/runtime/tags.txt | 1 - basis/cocoa/subclassing/platforms.txt | 1 + basis/cocoa/subclassing/tags.txt | 1 - basis/cocoa/tags.txt | 1 - basis/cocoa/types/platforms.txt | 1 + basis/cocoa/types/tags.txt | 1 - basis/cocoa/views/platforms.txt | 1 + basis/cocoa/views/tags.txt | 1 - basis/cocoa/windows/platforms.txt | 1 + basis/cocoa/windows/tags.txt | 1 - basis/core-foundation/arrays/platforms.txt | 1 + basis/core-foundation/arrays/tags.txt | 1 - .../attributed-strings/platforms.txt | 1 + .../attributed-strings/tags.txt | 1 - basis/core-foundation/bundles/platforms.txt | 1 + basis/core-foundation/bundles/tags.txt | 1 - basis/core-foundation/data/platforms.txt | 1 + basis/core-foundation/data/tags.txt | 1 - .../dictionaries/platforms.txt | 1 + basis/core-foundation/dictionaries/tags.txt | 1 - .../file-descriptors/platforms.txt | 1 + .../core-foundation/file-descriptors/tags.txt | 1 - basis/core-foundation/fsevents/platforms.txt | 1 + basis/core-foundation/fsevents/tags.txt | 1 - basis/core-foundation/numbers/platforms.txt | 1 + basis/core-foundation/numbers/tags.txt | 1 - basis/core-foundation/platforms.txt | 1 + basis/core-foundation/run-loop/platforms.txt | 1 + basis/core-foundation/run-loop/tags.txt | 1 - basis/core-foundation/strings/platforms.txt | 1 + basis/core-foundation/strings/tags.txt | 1 - basis/core-foundation/tags.txt | 1 - basis/core-foundation/timers/platforms.txt | 1 + basis/core-foundation/timers/tags.txt | 1 - basis/core-foundation/urls/platforms.txt | 1 + basis/core-foundation/urls/tags.txt | 1 - basis/core-foundation/utilities/platforms.txt | 1 + basis/core-foundation/utilities/tags.txt | 1 - basis/core-graphics/platforms.txt | 1 + basis/core-graphics/tags.txt | 1 - basis/core-text/fonts/platforms.txt | 1 + basis/core-text/fonts/tags.txt | 1 - basis/core-text/platforms.txt | 1 + basis/core-text/tags.txt | 1 - basis/cpu/ppc/assembler/backend/tags.txt | 1 - basis/cpu/ppc/linux/tags.txt | 2 +- basis/cpu/ppc/macosx/tags.txt | 2 +- basis/cpu/ppc/tags.txt | 2 +- basis/cpu/x86/32/tags.txt | 2 +- basis/cpu/x86/64/tags.txt | 2 +- basis/cpu/x86/64/unix/tags.txt | 2 +- basis/cpu/x86/64/winnt/tags.txt | 2 +- basis/cpu/x86/assembler/syntax/tags.txt | 1 - basis/cpu/x86/features/tags.txt | 2 +- basis/cpu/x86/tags.txt | 2 +- basis/debugger/windows/platforms.txt | 1 + basis/debugger/windows/tags.txt | 1 - basis/editors/editpadlite/tags.txt | 2 +- basis/editors/editpadpro/tags.txt | 2 +- basis/editors/editplus/tags.txt | 2 +- basis/editors/emacs/tags.txt | 2 +- basis/editors/emacs/windows/tags.txt | 2 +- basis/editors/emeditor/tags.txt | 2 +- basis/editors/etexteditor/tags.txt | 2 +- basis/editors/gedit/tags.txt | 2 +- basis/editors/gvim/tags.txt | 2 +- basis/editors/gvim/unix/tags.txt | 2 +- basis/editors/gvim/windows/tags.txt | 2 +- basis/editors/jedit/tags.txt | 2 +- basis/editors/macvim/tags.txt | 2 +- basis/editors/notepad/tags.txt | 2 +- basis/editors/notepad2/tags.txt | 2 +- basis/editors/notepadpp/tags.txt | 2 +- basis/editors/scite/tags.txt | 2 +- basis/editors/ted-notepad/tags.txt | 2 +- basis/editors/textedit/tags.txt | 2 +- basis/editors/textmate/tags.txt | 2 +- basis/editors/textpad/tags.txt | 2 +- basis/editors/textwrangler/tags.txt | 2 +- basis/editors/ultraedit/tags.txt | 2 +- basis/editors/vim/generate-syntax/tags.txt | 2 +- basis/editors/vim/tags.txt | 2 +- basis/editors/wordpad/tags.txt | 2 +- basis/environment/unix/macosx/platforms.txt | 1 + basis/environment/unix/macosx/tags.txt | 1 - basis/environment/unix/platforms.txt | 1 + basis/environment/unix/tags.txt | 1 - basis/environment/winnt/platforms.txt | 1 + basis/environment/winnt/tags.txt | 1 - basis/game/input/dinput/platforms.txt | 1 + basis/game/input/dinput/tags.txt | 1 - basis/game/input/iokit/platforms.txt | 1 + basis/game/input/iokit/tags.txt | 1 - basis/game/input/linux/platforms.txt | 1 + basis/game/input/linux/tags.txt | 1 - basis/game/input/xinput/platforms.txt | 1 + basis/game/input/xinput/tags.txt | 1 - basis/io/backend/unix/bsd/platforms.txt | 1 + basis/io/backend/unix/bsd/tags.txt | 1 - basis/io/backend/unix/freebsd/platforms.txt | 1 + basis/io/backend/unix/freebsd/tags.txt | 1 - basis/io/backend/unix/linux/platforms.txt | 1 + basis/io/backend/unix/linux/tags.txt | 1 - basis/io/backend/unix/macosx/platforms.txt | 1 + basis/io/backend/unix/macosx/tags.txt | 1 - .../unix/multiplexers/epoll/platforms.txt | 1 + .../backend/unix/multiplexers/epoll/tags.txt | 1 - .../unix/multiplexers/kqueue/platforms.txt | 1 + .../backend/unix/multiplexers/kqueue/tags.txt | 1 - .../backend/unix/multiplexers/platforms.txt | 1 + .../unix/multiplexers/run-loop/platforms.txt | 1 + .../unix/multiplexers/run-loop/tags.txt | 1 - .../unix/multiplexers/select/platforms.txt | 1 + .../backend/unix/multiplexers/select/tags.txt | 1 - basis/io/backend/unix/multiplexers/tags.txt | 1 - basis/io/backend/unix/netbsd/platforms.txt | 1 + basis/io/backend/unix/netbsd/tags.txt | 1 - basis/io/backend/unix/openbsd/platforms.txt | 1 + basis/io/backend/unix/openbsd/tags.txt | 1 - basis/io/backend/unix/platforms.txt | 1 + basis/io/backend/unix/tags.txt | 1 - basis/io/backend/windows/nt/platforms.txt | 1 + .../windows/nt/privileges/platforms.txt | 1 + .../io/backend/windows/nt/privileges/tags.txt | 1 - basis/io/backend/windows/nt/tags.txt | 1 - basis/io/backend/windows/platforms.txt | 1 + .../backend/windows/privileges/platforms.txt | 1 + basis/io/backend/windows/privileges/tags.txt | 1 - basis/io/backend/windows/tags.txt | 1 - .../directories/search/windows/platforms.txt | 1 + basis/io/directories/search/windows/tags.txt | 1 - basis/io/directories/unix/linux/platforms.txt | 1 + basis/io/directories/unix/linux/tags.txt | 1 - basis/io/directories/unix/platforms.txt | 1 + basis/io/directories/unix/tags.txt | 1 - basis/io/directories/windows/platforms.txt | 1 + basis/io/directories/windows/tags.txt | 1 - basis/io/files/info/unix/bsd/platforms.txt | 1 + basis/io/files/info/unix/bsd/tags.txt | 1 - .../io/files/info/unix/freebsd/platforms.txt | 1 + basis/io/files/info/unix/freebsd/tags.txt | 1 - basis/io/files/info/unix/linux/platforms.txt | 1 + basis/io/files/info/unix/linux/tags.txt | 1 - basis/io/files/info/unix/macosx/platforms.txt | 1 + basis/io/files/info/unix/macosx/tags.txt | 1 - basis/io/files/info/unix/netbsd/platforms.txt | 1 + basis/io/files/info/unix/netbsd/tags.txt | 1 - .../io/files/info/unix/openbsd/platforms.txt | 1 + basis/io/files/info/unix/openbsd/tags.txt | 1 - basis/io/files/info/unix/platforms.txt | 1 + basis/io/files/info/unix/tags.txt | 1 - basis/io/files/info/windows/platforms.txt | 1 + basis/io/files/info/windows/tags.txt | 1 - basis/io/files/links/unix/platforms.txt | 1 + basis/io/files/links/unix/tags.txt | 1 - basis/io/files/unique/unix/platforms.txt | 1 + basis/io/files/unique/unix/tags.txt | 1 - basis/io/files/unique/windows/platforms.txt | 1 + basis/io/files/unique/windows/tags.txt | 1 - basis/io/files/unix/platforms.txt | 1 + basis/io/files/unix/tags.txt | 1 - basis/io/files/windows/nt/platforms.txt | 1 + basis/io/files/windows/nt/tags.txt | 1 - basis/io/files/windows/platforms.txt | 1 + basis/io/files/windows/tags.txt | 1 - basis/io/launcher/unix/parser/platforms.txt | 1 + basis/io/launcher/unix/parser/tags.txt | 1 - basis/io/launcher/unix/platforms.txt | 1 + basis/io/launcher/unix/tags.txt | 1 - basis/io/launcher/windows/nt/platforms.txt | 1 + basis/io/launcher/windows/nt/tags.txt | 1 - basis/io/launcher/windows/platforms.txt | 1 + basis/io/launcher/windows/tags.txt | 1 - basis/io/mmap/unix/platforms.txt | 1 + basis/io/mmap/unix/tags.txt | 1 - basis/io/mmap/windows/platforms.txt | 1 + basis/io/mmap/windows/tags.txt | 1 - basis/io/monitors/linux/platforms.txt | 1 + basis/io/monitors/linux/tags.txt | 1 - basis/io/monitors/macosx/platforms.txt | 1 + basis/io/monitors/macosx/tags.txt | 1 - basis/io/monitors/windows/nt/platforms.txt | 1 + basis/io/monitors/windows/nt/tags.txt | 1 - basis/io/pipes/unix/platforms.txt | 1 + basis/io/pipes/unix/tags.txt | 1 - basis/io/pipes/windows/nt/platforms.txt | 1 + basis/io/pipes/windows/nt/tags.txt | 1 - basis/io/sockets/secure/unix/platforms.txt | 1 + basis/io/sockets/secure/unix/tags.txt | 1 - basis/io/sockets/unix/platforms.txt | 1 + basis/io/sockets/unix/tags.txt | 1 - basis/io/sockets/windows/nt/platforms.txt | 1 + basis/io/sockets/windows/nt/tags.txt | 1 - basis/io/sockets/windows/platforms.txt | 1 + basis/io/sockets/windows/tags.txt | 1 - basis/iokit/hid/platforms.txt | 1 + basis/iokit/hid/tags.txt | 1 - basis/iokit/platforms.txt | 1 + basis/iokit/tags.txt | 1 - basis/math/floats/env/ppc/tags.txt | 2 +- basis/math/floats/env/x86/32/tags.txt | 2 +- basis/math/floats/env/x86/64/tags.txt | 2 +- basis/math/floats/env/x86/tags.txt | 2 +- basis/opengl/gl/macosx/platforms.txt | 1 + basis/opengl/gl/macosx/tags.txt | 1 - basis/opengl/gl/unix/platforms.txt | 1 + basis/opengl/gl/unix/tags.txt | 1 - basis/opengl/gl/windows/platforms.txt | 1 + basis/opengl/gl/windows/tags.txt | 1 - basis/random/unix/platforms.txt | 1 + basis/random/unix/tags.txt | 1 - basis/random/windows/platforms.txt | 1 + basis/random/windows/tags.txt | 1 - basis/system-info/linux/platforms.txt | 1 + basis/system-info/linux/tags.txt | 1 - basis/system-info/macosx/platforms.txt | 1 + basis/system-info/macosx/tags.txt | 1 - basis/system-info/windows/ce/platforms.txt | 1 + basis/system-info/windows/ce/tags.txt | 1 - basis/system-info/windows/nt/platforms.txt | 1 + basis/system-info/windows/nt/tags.txt | 1 - basis/system-info/windows/platforms.txt | 1 + basis/system-info/windows/tags.txt | 1 - basis/tools/cocoa/platforms.txt | 1 + basis/tools/cocoa/tags.txt | 1 - basis/tools/deploy/libraries/tags.txt | 1 - .../tools/deploy/libraries/unix/platforms.txt | 1 + basis/tools/deploy/libraries/unix/tags.txt | 1 - .../deploy/libraries/windows/platforms.txt | 1 + basis/tools/deploy/libraries/windows/tags.txt | 1 - basis/tools/deploy/macosx/platforms.txt | 1 + basis/tools/deploy/macosx/tags.txt | 1 - basis/tools/deploy/test/14/platforms.txt | 1 + basis/tools/deploy/test/14/tags.txt | 1 - basis/tools/deploy/unix/platforms.txt | 1 + basis/tools/deploy/unix/tags.txt | 1 - basis/tools/deploy/windows/ico/platforms.txt | 1 + basis/tools/deploy/windows/ico/tags.txt | 1 - basis/tools/deploy/windows/platforms.txt | 1 + basis/tools/deploy/windows/tags.txt | 1 - basis/tools/disassembler/gdb/tags.txt | 2 +- basis/tools/disassembler/udis/tags.txt | 2 +- basis/tools/files/tags.txt | 1 - basis/tools/files/unix/platforms.txt | 1 + basis/tools/files/unix/tags.txt | 1 - basis/tools/files/windows/platforms.txt | 1 + basis/tools/files/windows/tags.txt | 1 - basis/tools/scaffold/scaffold.factor | 14 ++--- basis/tools/scaffold/windows/platforms.txt | 1 + basis/tools/scaffold/windows/tags.txt | 1 - basis/ui/backend/cocoa/platforms.txt | 1 + basis/ui/backend/cocoa/tags.txt | 1 - basis/ui/backend/cocoa/tools/platforms.txt | 1 + basis/ui/backend/cocoa/tools/tags.txt | 1 - basis/ui/backend/cocoa/views/platforms.txt | 1 + basis/ui/backend/cocoa/views/tags.txt | 1 - basis/ui/backend/windows/platforms.txt | 1 + basis/ui/backend/windows/tags.txt | 1 - basis/ui/backend/x11/tags.txt | 2 +- basis/ui/text/core-text/platforms.txt | 1 + basis/ui/text/core-text/tags.txt | 1 - basis/ui/text/pango/tags.txt | 2 +- basis/ui/text/uniscribe/platforms.txt | 1 + basis/ui/text/uniscribe/tags.txt | 1 - basis/unix/debugger/platforms.txt | 1 + basis/unix/debugger/tags.txt | 1 - basis/unix/ffi/bsd/freebsd/platforms.txt | 1 + basis/unix/ffi/bsd/freebsd/tags.txt | 1 - basis/unix/ffi/bsd/macosx/platforms.txt | 1 + basis/unix/ffi/bsd/macosx/tags.txt | 1 - basis/unix/ffi/bsd/netbsd/platforms.txt | 1 + basis/unix/ffi/bsd/netbsd/tags.txt | 1 - basis/unix/ffi/bsd/openbsd/platforms.txt | 1 + basis/unix/ffi/bsd/openbsd/tags.txt | 1 - basis/unix/ffi/bsd/platforms.txt | 1 + basis/unix/ffi/bsd/tags.txt | 1 - basis/unix/ffi/linux/platforms.txt | 1 + basis/unix/ffi/linux/tags.txt | 1 - basis/unix/ffi/platforms.txt | 1 + basis/unix/ffi/solaris/platforms.txt | 1 + basis/unix/ffi/solaris/tags.txt | 1 - basis/unix/ffi/tags.txt | 1 - basis/unix/getfsstat/freebsd/platforms.txt | 1 + basis/unix/getfsstat/freebsd/tags.txt | 1 - basis/unix/getfsstat/macosx/platforms.txt | 1 + basis/unix/getfsstat/macosx/tags.txt | 1 - basis/unix/getfsstat/netbsd/platforms.txt | 1 + basis/unix/getfsstat/netbsd/tags.txt | 1 - basis/unix/getfsstat/openbsd/platforms.txt | 1 + basis/unix/getfsstat/openbsd/tags.txt | 1 - basis/unix/groups/platforms.txt | 1 + basis/unix/groups/tags.txt | 1 - basis/unix/kqueue/freebsd/platforms.txt | 1 + basis/unix/kqueue/freebsd/tags.txt | 1 - basis/unix/kqueue/macosx/platforms.txt | 1 + basis/unix/kqueue/macosx/tags.txt | 1 - basis/unix/kqueue/netbsd/platforms.txt | 1 + basis/unix/kqueue/netbsd/tags.txt | 1 - basis/unix/kqueue/openbsd/platforms.txt | 1 + basis/unix/kqueue/openbsd/tags.txt | 1 - basis/unix/kqueue/platforms.txt | 1 + basis/unix/kqueue/tags.txt | 1 - basis/unix/linux/epoll/platforms.txt | 1 + basis/unix/linux/epoll/tags.txt | 1 - basis/unix/linux/inotify/platforms.txt | 1 + basis/unix/linux/inotify/tags.txt | 1 - basis/unix/linux/platforms.txt | 1 + basis/unix/linux/tags.txt | 1 - basis/unix/platforms.txt | 1 + basis/unix/process/platforms.txt | 1 + basis/unix/process/tags.txt | 1 - basis/unix/stat/freebsd/platforms.txt | 1 + basis/unix/stat/freebsd/tags.txt | 1 - basis/unix/stat/linux/32/tags.txt | 2 +- basis/unix/stat/linux/64/tags.txt | 2 +- basis/unix/stat/linux/platforms.txt | 1 + basis/unix/stat/linux/tags.txt | 1 - basis/unix/stat/macosx/platforms.txt | 1 + basis/unix/stat/macosx/tags.txt | 1 - basis/unix/stat/netbsd/32/tags.txt | 2 +- basis/unix/stat/netbsd/64/tags.txt | 2 +- basis/unix/stat/netbsd/platforms.txt | 1 + basis/unix/stat/netbsd/tags.txt | 1 - basis/unix/stat/openbsd/platforms.txt | 1 + basis/unix/stat/openbsd/tags.txt | 1 - basis/unix/stat/platforms.txt | 1 + basis/unix/stat/tags.txt | 1 - basis/unix/statfs/freebsd/platforms.txt | 1 + basis/unix/statfs/freebsd/tags.txt | 1 - basis/unix/statfs/linux/platforms.txt | 1 + basis/unix/statfs/linux/tags.txt | 1 - basis/unix/statfs/macosx/platforms.txt | 1 + basis/unix/statfs/macosx/tags.txt | 1 - basis/unix/statfs/openbsd/platforms.txt | 1 + basis/unix/statfs/openbsd/tags.txt | 1 - basis/unix/statvfs/freebsd/platforms.txt | 1 + basis/unix/statvfs/freebsd/tags.txt | 1 - basis/unix/statvfs/linux/platforms.txt | 1 + basis/unix/statvfs/linux/tags.txt | 1 - basis/unix/statvfs/macosx/platforms.txt | 1 + basis/unix/statvfs/macosx/tags.txt | 1 - basis/unix/statvfs/netbsd/platforms.txt | 1 + basis/unix/statvfs/netbsd/tags.txt | 1 - basis/unix/statvfs/openbsd/platforms.txt | 1 + basis/unix/statvfs/openbsd/tags.txt | 1 - basis/unix/statvfs/platforms.txt | 1 + basis/unix/statvfs/tags.txt | 1 - basis/unix/tags.txt | 1 - basis/unix/time/platforms.txt | 1 + basis/unix/time/tags.txt | 1 - basis/unix/types/freebsd/platforms.txt | 1 + basis/unix/types/freebsd/tags.txt | 1 - basis/unix/types/linux/platforms.txt | 1 + basis/unix/types/linux/tags.txt | 1 - basis/unix/types/macosx/platforms.txt | 1 + basis/unix/types/macosx/tags.txt | 1 - basis/unix/types/netbsd/32/tags.txt | 2 +- basis/unix/types/netbsd/64/tags.txt | 2 +- basis/unix/types/netbsd/platforms.txt | 1 + basis/unix/types/netbsd/tags.txt | 1 - basis/unix/types/openbsd/platforms.txt | 1 + basis/unix/types/openbsd/tags.txt | 1 - basis/unix/types/platforms.txt | 1 + basis/unix/types/tags.txt | 1 - basis/unix/users/bsd/platforms.txt | 1 + basis/unix/users/bsd/tags.txt | 1 - basis/unix/users/platforms.txt | 1 + basis/unix/users/tags.txt | 1 - basis/unix/utilities/platforms.txt | 1 + basis/unix/utilities/tags.txt | 1 - basis/unix/utmpx/macosx/platforms.txt | 1 + basis/unix/utmpx/macosx/tags.txt | 1 - basis/unix/utmpx/netbsd/platforms.txt | 1 + basis/unix/utmpx/netbsd/tags.txt | 1 - basis/unix/utmpx/platforms.txt | 1 + basis/unix/utmpx/tags.txt | 1 - basis/vocabs/metadata/authors.txt | 3 +- basis/vocabs/metadata/metadata.factor | 55 +++++++++++++++---- basis/windows/advapi32/platforms.txt | 1 + basis/windows/advapi32/tags.txt | 1 - basis/windows/ce/platforms.txt | 1 + basis/windows/ce/tags.txt | 1 - basis/windows/com/platforms.txt | 1 + basis/windows/com/prettyprint/platforms.txt | 1 + basis/windows/com/prettyprint/tags.txt | 1 - basis/windows/com/syntax/platforms.txt | 1 + basis/windows/com/syntax/tags.txt | 1 - basis/windows/com/tags.txt | 1 - basis/windows/com/wrapper/platforms.txt | 1 + basis/windows/com/wrapper/tags.txt | 1 - basis/windows/directx/audiodefs/platforms.txt | 1 + basis/windows/directx/audiodefs/tags.txt | 1 - basis/windows/directx/d2d1/platforms.txt | 1 + basis/windows/directx/d2d1/tags.txt | 1 - .../directx/d2dbasetypes/platforms.txt | 1 + basis/windows/directx/d2dbasetypes/tags.txt | 1 - basis/windows/directx/d2derr/platforms.txt | 1 + basis/windows/directx/d2derr/tags.txt | 1 - basis/windows/directx/d3d10/platforms.txt | 1 + basis/windows/directx/d3d10/tags.txt | 1 - basis/windows/directx/d3d10_1/platforms.txt | 1 + basis/windows/directx/d3d10_1/tags.txt | 1 - .../directx/d3d10_1shader/platforms.txt | 1 + basis/windows/directx/d3d10_1shader/tags.txt | 1 - .../windows/directx/d3d10effect/platforms.txt | 1 + basis/windows/directx/d3d10effect/tags.txt | 1 - basis/windows/directx/d3d10misc/platforms.txt | 1 + basis/windows/directx/d3d10misc/tags.txt | 1 - .../windows/directx/d3d10shader/platforms.txt | 1 + basis/windows/directx/d3d10shader/tags.txt | 1 - basis/windows/directx/d3d11/platforms.txt | 1 + basis/windows/directx/d3d11/tags.txt | 1 - .../windows/directx/d3d11shader/platforms.txt | 1 + basis/windows/directx/d3d11shader/tags.txt | 1 - basis/windows/directx/d3d9/platforms.txt | 1 + basis/windows/directx/d3d9/tags.txt | 1 - basis/windows/directx/d3d9caps/platforms.txt | 1 + basis/windows/directx/d3d9caps/tags.txt | 1 - basis/windows/directx/d3d9types/platforms.txt | 1 + basis/windows/directx/d3d9types/tags.txt | 1 - basis/windows/directx/d3dcommon/platforms.txt | 1 + basis/windows/directx/d3dcommon/tags.txt | 1 - .../windows/directx/d3dcompiler/platforms.txt | 1 + basis/windows/directx/d3dcompiler/tags.txt | 1 - basis/windows/directx/d3dcsx/platforms.txt | 1 + basis/windows/directx/d3dcsx/tags.txt | 1 - basis/windows/directx/d3dx10/platforms.txt | 1 + basis/windows/directx/d3dx10/tags.txt | 1 - .../windows/directx/d3dx10async/platforms.txt | 1 + basis/windows/directx/d3dx10async/tags.txt | 1 - .../windows/directx/d3dx10core/platforms.txt | 1 + basis/windows/directx/d3dx10core/tags.txt | 1 - .../windows/directx/d3dx10math/platforms.txt | 1 + basis/windows/directx/d3dx10math/tags.txt | 1 - .../windows/directx/d3dx10mesh/platforms.txt | 1 + basis/windows/directx/d3dx10mesh/tags.txt | 1 - basis/windows/directx/d3dx10tex/platforms.txt | 1 + basis/windows/directx/d3dx10tex/tags.txt | 1 - basis/windows/directx/d3dx11/platforms.txt | 1 + basis/windows/directx/d3dx11/tags.txt | 1 - .../windows/directx/d3dx11async/platforms.txt | 1 + basis/windows/directx/d3dx11async/tags.txt | 1 - .../windows/directx/d3dx11core/platforms.txt | 1 + basis/windows/directx/d3dx11core/tags.txt | 1 - basis/windows/directx/d3dx11tex/platforms.txt | 1 + basis/windows/directx/d3dx11tex/tags.txt | 1 - basis/windows/directx/d3dx9/platforms.txt | 1 + basis/windows/directx/d3dx9/tags.txt | 1 - basis/windows/directx/d3dx9anim/platforms.txt | 1 + basis/windows/directx/d3dx9anim/tags.txt | 1 - basis/windows/directx/d3dx9core/platforms.txt | 1 + basis/windows/directx/d3dx9core/tags.txt | 1 - .../windows/directx/d3dx9effect/platforms.txt | 1 + basis/windows/directx/d3dx9effect/tags.txt | 1 - basis/windows/directx/d3dx9math/platforms.txt | 1 + basis/windows/directx/d3dx9math/tags.txt | 1 - basis/windows/directx/d3dx9mesh/platforms.txt | 1 + basis/windows/directx/d3dx9mesh/tags.txt | 1 - .../windows/directx/d3dx9shader/platforms.txt | 1 + basis/windows/directx/d3dx9shader/tags.txt | 1 - .../windows/directx/d3dx9shape/platforms.txt | 1 + basis/windows/directx/d3dx9shape/tags.txt | 1 - basis/windows/directx/d3dx9tex/platforms.txt | 1 + basis/windows/directx/d3dx9tex/tags.txt | 1 - basis/windows/directx/d3dx9xof/platforms.txt | 1 + basis/windows/directx/d3dx9xof/tags.txt | 1 - basis/windows/directx/dcommon/platforms.txt | 1 + basis/windows/directx/dcommon/tags.txt | 1 - .../directx/dinput/constants/platforms.txt | 1 + .../windows/directx/dinput/constants/tags.txt | 1 - basis/windows/directx/dinput/platforms.txt | 1 + basis/windows/directx/dinput/tags.txt | 1 - basis/windows/directx/dwrite/platforms.txt | 1 + basis/windows/directx/dwrite/tags.txt | 1 - basis/windows/directx/dxfile/platforms.txt | 1 + basis/windows/directx/dxfile/tags.txt | 1 - basis/windows/directx/dxgi/platforms.txt | 1 + basis/windows/directx/dxgi/tags.txt | 1 - .../windows/directx/dxgiformat/platforms.txt | 1 + basis/windows/directx/dxgiformat/tags.txt | 1 - basis/windows/directx/dxgitype/platforms.txt | 1 + basis/windows/directx/dxgitype/tags.txt | 1 - basis/windows/directx/x3daudio/platforms.txt | 1 + basis/windows/directx/x3daudio/tags.txt | 1 - basis/windows/directx/xact3/platforms.txt | 1 + basis/windows/directx/xact3/tags.txt | 1 - basis/windows/directx/xapo/platforms.txt | 1 + basis/windows/directx/xapo/tags.txt | 1 - basis/windows/directx/xapofx/platforms.txt | 1 + basis/windows/directx/xapofx/tags.txt | 1 - basis/windows/directx/xaudio2/platforms.txt | 1 + basis/windows/directx/xaudio2/tags.txt | 1 - basis/windows/directx/xaudio2fx/platforms.txt | 1 + basis/windows/directx/xaudio2fx/tags.txt | 1 - basis/windows/directx/xinput/platforms.txt | 1 + basis/windows/directx/xinput/tags.txt | 1 - basis/windows/dragdrop-listener/platforms.txt | 1 + basis/windows/dragdrop-listener/tags.txt | 1 - basis/windows/dwmapi/platforms.txt | 1 + basis/windows/dwmapi/tags.txt | 1 - basis/windows/errors/platforms.txt | 1 + basis/windows/errors/tags.txt | 1 - basis/windows/fonts/platforms.txt | 1 + basis/windows/fonts/tags.txt | 1 - basis/windows/gdi32/platforms.txt | 1 + basis/windows/gdi32/tags.txt | 1 - basis/windows/kernel32/platforms.txt | 1 + basis/windows/kernel32/tags.txt | 1 - basis/windows/messages/platforms.txt | 1 + basis/windows/messages/tags.txt | 1 - basis/windows/nt/platforms.txt | 1 + basis/windows/nt/tags.txt | 1 - basis/windows/offscreen/platforms.txt | 1 + basis/windows/offscreen/tags.txt | 1 - basis/windows/ole32/platforms.txt | 1 + basis/windows/ole32/tags.txt | 1 - basis/windows/opengl32/platforms.txt | 1 + basis/windows/opengl32/tags.txt | 1 - basis/windows/platforms.txt | 1 + basis/windows/psapi/platforms.txt | 1 + basis/windows/psapi/tags.txt | 1 - basis/windows/shell32/platforms.txt | 1 + basis/windows/shell32/tags.txt | 1 - basis/windows/tags.txt | 1 - basis/windows/time/platforms.txt | 1 + basis/windows/time/tags.txt | 1 - basis/windows/types/platforms.txt | 1 + basis/windows/types/tags.txt | 1 - basis/windows/uniscribe/platforms.txt | 1 + basis/windows/uniscribe/tags.txt | 1 - basis/windows/user32/platforms.txt | 1 + basis/windows/user32/tags.txt | 1 - basis/windows/usp10/platforms.txt | 1 + basis/windows/usp10/tags.txt | 1 - basis/windows/winsock/platforms.txt | 1 + basis/windows/winsock/tags.txt | 1 - basis/x11/io/unix/platforms.txt | 1 + basis/x11/io/unix/tags.txt | 1 - basis/x11/windows/platforms.txt | 1 + basis/x11/windows/tags.txt | 1 - core/vocabs/loader/loader.factor | 11 +++- core/vocabs/loader/test/a/a.factor | 2 +- core/vocabs/loader/test/a/tags.txt | 2 +- core/vocabs/loader/test/b/tags.txt | 2 +- core/vocabs/loader/test/c/tags.txt | 2 +- core/vocabs/loader/test/d/tags.txt | 2 +- core/vocabs/loader/test/e/tags.txt | 2 +- core/vocabs/loader/test/f/tags.txt | 2 +- core/vocabs/loader/test/g/tags.txt | 2 +- core/vocabs/loader/test/h/tags.txt | 2 +- core/vocabs/loader/test/i/tags.txt | 2 +- core/vocabs/loader/test/j/tags.txt | 2 +- core/vocabs/loader/test/k/tags.txt | 2 +- core/vocabs/loader/test/l/tags.txt | 2 +- extra/couchdb/tags.txt | 2 +- extra/curses/ffi/platforms.txt | 1 + extra/curses/ffi/tags.txt | 1 - extra/curses/platforms.txt | 1 + extra/curses/tags.txt | 1 - extra/ecdsa/tags.txt | 2 +- extra/io/serial/tags.txt | 1 - extra/io/serial/unix/bsd/platforms.txt | 1 + extra/io/serial/unix/bsd/tags.txt | 1 - extra/io/serial/unix/linux/platforms.txt | 1 + extra/io/serial/unix/linux/tags.txt | 1 - extra/io/serial/unix/platforms.txt | 1 + extra/io/serial/unix/tags.txt | 1 - .../io/serial/unix/termios/bsd/platforms.txt | 1 + extra/io/serial/unix/termios/bsd/tags.txt | 1 - .../serial/unix/termios/linux/platforms.txt | 1 + extra/io/serial/unix/termios/linux/tags.txt | 1 - extra/io/serial/unix/termios/platforms.txt | 1 + extra/io/serial/unix/termios/tags.txt | 1 - extra/io/serial/windows/platforms.txt | 1 + extra/io/serial/windows/tags.txt | 1 - extra/libusb/platforms.txt | 1 + extra/libusb/tags.txt | 1 - extra/llvm/core/tags.txt | 2 +- extra/llvm/engine/tags.txt | 2 +- extra/llvm/invoker/tags.txt | 2 +- extra/llvm/jit/tags.txt | 2 +- extra/llvm/reader/tags.txt | 2 +- extra/llvm/tags.txt | 2 +- extra/llvm/types/tags.txt | 2 +- extra/llvm/wrappers/tags.txt | 2 +- extra/merger/platforms.txt | 1 + extra/merger/tags.txt | 2 - extra/openal/alut/macosx/platforms.txt | 1 + extra/openal/alut/macosx/tags.txt | 1 - extra/qtkit/platforms.txt | 1 + extra/qtkit/tags.txt | 1 - extra/webkit-demo/platforms.txt | 1 + extra/webkit-demo/tags.txt | 1 - 616 files changed, 400 insertions(+), 369 deletions(-) create mode 100644 basis/calendar/unix/platforms.txt delete mode 100644 basis/calendar/unix/tags.txt create mode 100644 basis/calendar/windows/platforms.txt delete mode 100755 basis/calendar/windows/tags.txt create mode 100644 basis/cocoa/application/platforms.txt delete mode 100644 basis/cocoa/application/tags.txt create mode 100644 basis/cocoa/callbacks/platforms.txt delete mode 100644 basis/cocoa/callbacks/tags.txt create mode 100644 basis/cocoa/dialogs/platforms.txt delete mode 100644 basis/cocoa/dialogs/tags.txt create mode 100644 basis/cocoa/enumeration/platforms.txt delete mode 100644 basis/cocoa/enumeration/tags.txt create mode 100644 basis/cocoa/messages/platforms.txt delete mode 100644 basis/cocoa/messages/tags.txt create mode 100644 basis/cocoa/nibs/platforms.txt delete mode 100644 basis/cocoa/nibs/tags.txt create mode 100644 basis/cocoa/pasteboard/platforms.txt delete mode 100644 basis/cocoa/pasteboard/tags.txt create mode 100644 basis/cocoa/platforms.txt create mode 100644 basis/cocoa/plists/platforms.txt delete mode 100644 basis/cocoa/plists/tags.txt create mode 100644 basis/cocoa/runtime/platforms.txt delete mode 100644 basis/cocoa/runtime/tags.txt create mode 100644 basis/cocoa/subclassing/platforms.txt delete mode 100644 basis/cocoa/subclassing/tags.txt create mode 100644 basis/cocoa/types/platforms.txt delete mode 100644 basis/cocoa/types/tags.txt create mode 100644 basis/cocoa/views/platforms.txt delete mode 100644 basis/cocoa/views/tags.txt create mode 100644 basis/cocoa/windows/platforms.txt delete mode 100644 basis/cocoa/windows/tags.txt create mode 100644 basis/core-foundation/arrays/platforms.txt create mode 100644 basis/core-foundation/attributed-strings/platforms.txt create mode 100644 basis/core-foundation/bundles/platforms.txt create mode 100644 basis/core-foundation/data/platforms.txt create mode 100644 basis/core-foundation/dictionaries/platforms.txt create mode 100644 basis/core-foundation/file-descriptors/platforms.txt create mode 100644 basis/core-foundation/fsevents/platforms.txt delete mode 100644 basis/core-foundation/fsevents/tags.txt create mode 100644 basis/core-foundation/numbers/platforms.txt delete mode 100644 basis/core-foundation/numbers/tags.txt create mode 100644 basis/core-foundation/platforms.txt create mode 100644 basis/core-foundation/run-loop/platforms.txt delete mode 100644 basis/core-foundation/run-loop/tags.txt create mode 100644 basis/core-foundation/strings/platforms.txt create mode 100644 basis/core-foundation/timers/platforms.txt create mode 100644 basis/core-foundation/urls/platforms.txt create mode 100644 basis/core-foundation/utilities/platforms.txt delete mode 100644 basis/core-foundation/utilities/tags.txt create mode 100644 basis/core-graphics/platforms.txt create mode 100644 basis/core-text/fonts/platforms.txt create mode 100644 basis/core-text/platforms.txt delete mode 100644 basis/cpu/ppc/assembler/backend/tags.txt delete mode 100644 basis/cpu/x86/assembler/syntax/tags.txt create mode 100644 basis/debugger/windows/platforms.txt delete mode 100644 basis/debugger/windows/tags.txt create mode 100644 basis/environment/unix/macosx/platforms.txt delete mode 100644 basis/environment/unix/macosx/tags.txt create mode 100644 basis/environment/unix/platforms.txt delete mode 100644 basis/environment/unix/tags.txt create mode 100644 basis/environment/winnt/platforms.txt delete mode 100644 basis/environment/winnt/tags.txt create mode 100644 basis/game/input/dinput/platforms.txt create mode 100644 basis/game/input/iokit/platforms.txt create mode 100644 basis/game/input/linux/platforms.txt create mode 100644 basis/game/input/xinput/platforms.txt create mode 100644 basis/io/backend/unix/bsd/platforms.txt delete mode 100644 basis/io/backend/unix/bsd/tags.txt create mode 100644 basis/io/backend/unix/freebsd/platforms.txt delete mode 100644 basis/io/backend/unix/freebsd/tags.txt create mode 100644 basis/io/backend/unix/linux/platforms.txt delete mode 100644 basis/io/backend/unix/linux/tags.txt create mode 100644 basis/io/backend/unix/macosx/platforms.txt delete mode 100644 basis/io/backend/unix/macosx/tags.txt create mode 100644 basis/io/backend/unix/multiplexers/epoll/platforms.txt delete mode 100644 basis/io/backend/unix/multiplexers/epoll/tags.txt create mode 100644 basis/io/backend/unix/multiplexers/kqueue/platforms.txt delete mode 100644 basis/io/backend/unix/multiplexers/kqueue/tags.txt create mode 100644 basis/io/backend/unix/multiplexers/platforms.txt create mode 100644 basis/io/backend/unix/multiplexers/run-loop/platforms.txt delete mode 100644 basis/io/backend/unix/multiplexers/run-loop/tags.txt create mode 100644 basis/io/backend/unix/multiplexers/select/platforms.txt delete mode 100644 basis/io/backend/unix/multiplexers/select/tags.txt delete mode 100755 basis/io/backend/unix/multiplexers/tags.txt create mode 100644 basis/io/backend/unix/netbsd/platforms.txt delete mode 100644 basis/io/backend/unix/netbsd/tags.txt create mode 100644 basis/io/backend/unix/openbsd/platforms.txt delete mode 100644 basis/io/backend/unix/openbsd/tags.txt create mode 100644 basis/io/backend/unix/platforms.txt delete mode 100644 basis/io/backend/unix/tags.txt create mode 100644 basis/io/backend/windows/nt/platforms.txt create mode 100644 basis/io/backend/windows/nt/privileges/platforms.txt delete mode 100644 basis/io/backend/windows/nt/privileges/tags.txt delete mode 100644 basis/io/backend/windows/nt/tags.txt create mode 100644 basis/io/backend/windows/platforms.txt create mode 100644 basis/io/backend/windows/privileges/platforms.txt delete mode 100644 basis/io/backend/windows/privileges/tags.txt delete mode 100755 basis/io/backend/windows/tags.txt create mode 100644 basis/io/directories/search/windows/platforms.txt delete mode 100644 basis/io/directories/search/windows/tags.txt create mode 100644 basis/io/directories/unix/linux/platforms.txt delete mode 100644 basis/io/directories/unix/linux/tags.txt create mode 100644 basis/io/directories/unix/platforms.txt delete mode 100644 basis/io/directories/unix/tags.txt create mode 100644 basis/io/directories/windows/platforms.txt delete mode 100644 basis/io/directories/windows/tags.txt create mode 100644 basis/io/files/info/unix/bsd/platforms.txt delete mode 100644 basis/io/files/info/unix/bsd/tags.txt create mode 100644 basis/io/files/info/unix/freebsd/platforms.txt delete mode 100644 basis/io/files/info/unix/freebsd/tags.txt create mode 100644 basis/io/files/info/unix/linux/platforms.txt delete mode 100644 basis/io/files/info/unix/linux/tags.txt create mode 100644 basis/io/files/info/unix/macosx/platforms.txt delete mode 100644 basis/io/files/info/unix/macosx/tags.txt create mode 100644 basis/io/files/info/unix/netbsd/platforms.txt delete mode 100644 basis/io/files/info/unix/netbsd/tags.txt create mode 100644 basis/io/files/info/unix/openbsd/platforms.txt delete mode 100644 basis/io/files/info/unix/openbsd/tags.txt create mode 100644 basis/io/files/info/unix/platforms.txt delete mode 100644 basis/io/files/info/unix/tags.txt create mode 100644 basis/io/files/info/windows/platforms.txt delete mode 100644 basis/io/files/info/windows/tags.txt create mode 100644 basis/io/files/links/unix/platforms.txt delete mode 100644 basis/io/files/links/unix/tags.txt create mode 100644 basis/io/files/unique/unix/platforms.txt delete mode 100644 basis/io/files/unique/unix/tags.txt create mode 100644 basis/io/files/unique/windows/platforms.txt delete mode 100644 basis/io/files/unique/windows/tags.txt create mode 100644 basis/io/files/unix/platforms.txt delete mode 100644 basis/io/files/unix/tags.txt create mode 100644 basis/io/files/windows/nt/platforms.txt delete mode 100644 basis/io/files/windows/nt/tags.txt create mode 100644 basis/io/files/windows/platforms.txt delete mode 100644 basis/io/files/windows/tags.txt create mode 100644 basis/io/launcher/unix/parser/platforms.txt delete mode 100644 basis/io/launcher/unix/parser/tags.txt create mode 100644 basis/io/launcher/unix/platforms.txt delete mode 100644 basis/io/launcher/unix/tags.txt create mode 100644 basis/io/launcher/windows/nt/platforms.txt delete mode 100644 basis/io/launcher/windows/nt/tags.txt create mode 100644 basis/io/launcher/windows/platforms.txt delete mode 100644 basis/io/launcher/windows/tags.txt create mode 100644 basis/io/mmap/unix/platforms.txt delete mode 100644 basis/io/mmap/unix/tags.txt create mode 100644 basis/io/mmap/windows/platforms.txt delete mode 100644 basis/io/mmap/windows/tags.txt create mode 100644 basis/io/monitors/linux/platforms.txt delete mode 100644 basis/io/monitors/linux/tags.txt create mode 100644 basis/io/monitors/macosx/platforms.txt delete mode 100644 basis/io/monitors/macosx/tags.txt create mode 100644 basis/io/monitors/windows/nt/platforms.txt delete mode 100644 basis/io/monitors/windows/nt/tags.txt create mode 100644 basis/io/pipes/unix/platforms.txt delete mode 100644 basis/io/pipes/unix/tags.txt create mode 100644 basis/io/pipes/windows/nt/platforms.txt delete mode 100644 basis/io/pipes/windows/nt/tags.txt create mode 100644 basis/io/sockets/secure/unix/platforms.txt delete mode 100644 basis/io/sockets/secure/unix/tags.txt create mode 100644 basis/io/sockets/unix/platforms.txt delete mode 100644 basis/io/sockets/unix/tags.txt create mode 100644 basis/io/sockets/windows/nt/platforms.txt delete mode 100644 basis/io/sockets/windows/nt/tags.txt create mode 100644 basis/io/sockets/windows/platforms.txt delete mode 100644 basis/io/sockets/windows/tags.txt create mode 100644 basis/iokit/hid/platforms.txt create mode 100644 basis/iokit/platforms.txt create mode 100644 basis/opengl/gl/macosx/platforms.txt delete mode 100644 basis/opengl/gl/macosx/tags.txt create mode 100644 basis/opengl/gl/unix/platforms.txt delete mode 100644 basis/opengl/gl/unix/tags.txt create mode 100644 basis/opengl/gl/windows/platforms.txt delete mode 100755 basis/opengl/gl/windows/tags.txt create mode 100644 basis/random/unix/platforms.txt delete mode 100644 basis/random/unix/tags.txt create mode 100644 basis/random/windows/platforms.txt delete mode 100755 basis/random/windows/tags.txt create mode 100644 basis/system-info/linux/platforms.txt delete mode 100644 basis/system-info/linux/tags.txt create mode 100644 basis/system-info/macosx/platforms.txt delete mode 100644 basis/system-info/macosx/tags.txt create mode 100644 basis/system-info/windows/ce/platforms.txt delete mode 100644 basis/system-info/windows/ce/tags.txt create mode 100644 basis/system-info/windows/nt/platforms.txt delete mode 100644 basis/system-info/windows/nt/tags.txt create mode 100644 basis/system-info/windows/platforms.txt delete mode 100755 basis/system-info/windows/tags.txt create mode 100644 basis/tools/cocoa/platforms.txt delete mode 100644 basis/tools/cocoa/tags.txt delete mode 100644 basis/tools/deploy/libraries/tags.txt create mode 100644 basis/tools/deploy/libraries/unix/platforms.txt delete mode 100644 basis/tools/deploy/libraries/unix/tags.txt create mode 100644 basis/tools/deploy/libraries/windows/platforms.txt delete mode 100644 basis/tools/deploy/libraries/windows/tags.txt create mode 100644 basis/tools/deploy/macosx/platforms.txt create mode 100644 basis/tools/deploy/test/14/platforms.txt delete mode 100644 basis/tools/deploy/test/14/tags.txt create mode 100644 basis/tools/deploy/unix/platforms.txt create mode 100644 basis/tools/deploy/windows/ico/platforms.txt delete mode 100644 basis/tools/deploy/windows/ico/tags.txt create mode 100644 basis/tools/deploy/windows/platforms.txt delete mode 100644 basis/tools/files/tags.txt create mode 100644 basis/tools/files/unix/platforms.txt delete mode 100644 basis/tools/files/unix/tags.txt create mode 100644 basis/tools/files/windows/platforms.txt delete mode 100644 basis/tools/files/windows/tags.txt create mode 100644 basis/tools/scaffold/windows/platforms.txt delete mode 100644 basis/tools/scaffold/windows/tags.txt create mode 100644 basis/ui/backend/cocoa/platforms.txt delete mode 100644 basis/ui/backend/cocoa/tags.txt create mode 100644 basis/ui/backend/cocoa/tools/platforms.txt delete mode 100644 basis/ui/backend/cocoa/tools/tags.txt create mode 100644 basis/ui/backend/cocoa/views/platforms.txt delete mode 100644 basis/ui/backend/cocoa/views/tags.txt create mode 100644 basis/ui/backend/windows/platforms.txt delete mode 100644 basis/ui/backend/windows/tags.txt create mode 100644 basis/ui/text/core-text/platforms.txt delete mode 100644 basis/ui/text/core-text/tags.txt create mode 100644 basis/ui/text/uniscribe/platforms.txt delete mode 100755 basis/ui/text/uniscribe/tags.txt create mode 100644 basis/unix/debugger/platforms.txt delete mode 100644 basis/unix/debugger/tags.txt create mode 100644 basis/unix/ffi/bsd/freebsd/platforms.txt delete mode 100644 basis/unix/ffi/bsd/freebsd/tags.txt create mode 100644 basis/unix/ffi/bsd/macosx/platforms.txt delete mode 100644 basis/unix/ffi/bsd/macosx/tags.txt create mode 100644 basis/unix/ffi/bsd/netbsd/platforms.txt delete mode 100644 basis/unix/ffi/bsd/netbsd/tags.txt create mode 100644 basis/unix/ffi/bsd/openbsd/platforms.txt delete mode 100644 basis/unix/ffi/bsd/openbsd/tags.txt create mode 100644 basis/unix/ffi/bsd/platforms.txt delete mode 100644 basis/unix/ffi/bsd/tags.txt create mode 100644 basis/unix/ffi/linux/platforms.txt delete mode 100644 basis/unix/ffi/linux/tags.txt create mode 100644 basis/unix/ffi/platforms.txt create mode 100644 basis/unix/ffi/solaris/platforms.txt delete mode 100644 basis/unix/ffi/solaris/tags.txt delete mode 100644 basis/unix/ffi/tags.txt create mode 100644 basis/unix/getfsstat/freebsd/platforms.txt delete mode 100644 basis/unix/getfsstat/freebsd/tags.txt create mode 100644 basis/unix/getfsstat/macosx/platforms.txt delete mode 100644 basis/unix/getfsstat/macosx/tags.txt create mode 100644 basis/unix/getfsstat/netbsd/platforms.txt delete mode 100644 basis/unix/getfsstat/netbsd/tags.txt create mode 100644 basis/unix/getfsstat/openbsd/platforms.txt delete mode 100644 basis/unix/getfsstat/openbsd/tags.txt create mode 100644 basis/unix/groups/platforms.txt delete mode 100644 basis/unix/groups/tags.txt create mode 100644 basis/unix/kqueue/freebsd/platforms.txt delete mode 100644 basis/unix/kqueue/freebsd/tags.txt create mode 100644 basis/unix/kqueue/macosx/platforms.txt delete mode 100644 basis/unix/kqueue/macosx/tags.txt create mode 100644 basis/unix/kqueue/netbsd/platforms.txt delete mode 100644 basis/unix/kqueue/netbsd/tags.txt create mode 100644 basis/unix/kqueue/openbsd/platforms.txt delete mode 100644 basis/unix/kqueue/openbsd/tags.txt create mode 100644 basis/unix/kqueue/platforms.txt delete mode 100644 basis/unix/kqueue/tags.txt create mode 100644 basis/unix/linux/epoll/platforms.txt delete mode 100644 basis/unix/linux/epoll/tags.txt create mode 100644 basis/unix/linux/inotify/platforms.txt delete mode 100644 basis/unix/linux/inotify/tags.txt create mode 100644 basis/unix/linux/platforms.txt delete mode 100644 basis/unix/linux/tags.txt create mode 100644 basis/unix/platforms.txt create mode 100644 basis/unix/process/platforms.txt delete mode 100644 basis/unix/process/tags.txt create mode 100644 basis/unix/stat/freebsd/platforms.txt delete mode 100644 basis/unix/stat/freebsd/tags.txt create mode 100644 basis/unix/stat/linux/platforms.txt delete mode 100644 basis/unix/stat/linux/tags.txt create mode 100644 basis/unix/stat/macosx/platforms.txt delete mode 100644 basis/unix/stat/macosx/tags.txt create mode 100644 basis/unix/stat/netbsd/platforms.txt delete mode 100644 basis/unix/stat/netbsd/tags.txt create mode 100644 basis/unix/stat/openbsd/platforms.txt delete mode 100644 basis/unix/stat/openbsd/tags.txt create mode 100644 basis/unix/stat/platforms.txt delete mode 100644 basis/unix/stat/tags.txt create mode 100644 basis/unix/statfs/freebsd/platforms.txt delete mode 100644 basis/unix/statfs/freebsd/tags.txt create mode 100644 basis/unix/statfs/linux/platforms.txt delete mode 100644 basis/unix/statfs/linux/tags.txt create mode 100644 basis/unix/statfs/macosx/platforms.txt delete mode 100644 basis/unix/statfs/macosx/tags.txt create mode 100644 basis/unix/statfs/openbsd/platforms.txt delete mode 100644 basis/unix/statfs/openbsd/tags.txt create mode 100644 basis/unix/statvfs/freebsd/platforms.txt delete mode 100644 basis/unix/statvfs/freebsd/tags.txt create mode 100644 basis/unix/statvfs/linux/platforms.txt delete mode 100644 basis/unix/statvfs/linux/tags.txt create mode 100644 basis/unix/statvfs/macosx/platforms.txt delete mode 100644 basis/unix/statvfs/macosx/tags.txt create mode 100644 basis/unix/statvfs/netbsd/platforms.txt delete mode 100644 basis/unix/statvfs/netbsd/tags.txt create mode 100644 basis/unix/statvfs/openbsd/platforms.txt delete mode 100644 basis/unix/statvfs/openbsd/tags.txt create mode 100644 basis/unix/statvfs/platforms.txt delete mode 100644 basis/unix/statvfs/tags.txt create mode 100644 basis/unix/time/platforms.txt delete mode 100644 basis/unix/time/tags.txt create mode 100644 basis/unix/types/freebsd/platforms.txt delete mode 100644 basis/unix/types/freebsd/tags.txt create mode 100644 basis/unix/types/linux/platforms.txt delete mode 100644 basis/unix/types/linux/tags.txt create mode 100644 basis/unix/types/macosx/platforms.txt delete mode 100644 basis/unix/types/macosx/tags.txt create mode 100644 basis/unix/types/netbsd/platforms.txt delete mode 100644 basis/unix/types/netbsd/tags.txt create mode 100644 basis/unix/types/openbsd/platforms.txt delete mode 100644 basis/unix/types/openbsd/tags.txt create mode 100644 basis/unix/types/platforms.txt delete mode 100644 basis/unix/types/tags.txt create mode 100644 basis/unix/users/bsd/platforms.txt delete mode 100644 basis/unix/users/bsd/tags.txt create mode 100644 basis/unix/users/platforms.txt delete mode 100644 basis/unix/users/tags.txt create mode 100644 basis/unix/utilities/platforms.txt delete mode 100644 basis/unix/utilities/tags.txt create mode 100644 basis/unix/utmpx/macosx/platforms.txt delete mode 100644 basis/unix/utmpx/macosx/tags.txt create mode 100644 basis/unix/utmpx/netbsd/platforms.txt delete mode 100644 basis/unix/utmpx/netbsd/tags.txt create mode 100644 basis/unix/utmpx/platforms.txt delete mode 100644 basis/unix/utmpx/tags.txt create mode 100644 basis/windows/advapi32/platforms.txt delete mode 100644 basis/windows/advapi32/tags.txt create mode 100644 basis/windows/ce/platforms.txt delete mode 100644 basis/windows/ce/tags.txt create mode 100644 basis/windows/com/platforms.txt create mode 100644 basis/windows/com/prettyprint/platforms.txt delete mode 100644 basis/windows/com/prettyprint/tags.txt create mode 100644 basis/windows/com/syntax/platforms.txt create mode 100644 basis/windows/com/wrapper/platforms.txt create mode 100644 basis/windows/directx/audiodefs/platforms.txt create mode 100644 basis/windows/directx/d2d1/platforms.txt create mode 100644 basis/windows/directx/d2dbasetypes/platforms.txt create mode 100644 basis/windows/directx/d2derr/platforms.txt create mode 100644 basis/windows/directx/d3d10/platforms.txt create mode 100644 basis/windows/directx/d3d10_1/platforms.txt create mode 100644 basis/windows/directx/d3d10_1shader/platforms.txt create mode 100644 basis/windows/directx/d3d10effect/platforms.txt create mode 100644 basis/windows/directx/d3d10misc/platforms.txt create mode 100644 basis/windows/directx/d3d10shader/platforms.txt create mode 100644 basis/windows/directx/d3d11/platforms.txt create mode 100644 basis/windows/directx/d3d11shader/platforms.txt create mode 100644 basis/windows/directx/d3d9/platforms.txt create mode 100644 basis/windows/directx/d3d9caps/platforms.txt create mode 100644 basis/windows/directx/d3d9types/platforms.txt create mode 100644 basis/windows/directx/d3dcommon/platforms.txt create mode 100644 basis/windows/directx/d3dcompiler/platforms.txt create mode 100644 basis/windows/directx/d3dcsx/platforms.txt create mode 100644 basis/windows/directx/d3dx10/platforms.txt create mode 100644 basis/windows/directx/d3dx10async/platforms.txt create mode 100644 basis/windows/directx/d3dx10core/platforms.txt create mode 100644 basis/windows/directx/d3dx10math/platforms.txt create mode 100644 basis/windows/directx/d3dx10mesh/platforms.txt create mode 100644 basis/windows/directx/d3dx10tex/platforms.txt create mode 100644 basis/windows/directx/d3dx11/platforms.txt create mode 100644 basis/windows/directx/d3dx11async/platforms.txt create mode 100644 basis/windows/directx/d3dx11core/platforms.txt create mode 100644 basis/windows/directx/d3dx11tex/platforms.txt create mode 100644 basis/windows/directx/d3dx9/platforms.txt create mode 100644 basis/windows/directx/d3dx9anim/platforms.txt create mode 100644 basis/windows/directx/d3dx9core/platforms.txt create mode 100644 basis/windows/directx/d3dx9effect/platforms.txt create mode 100644 basis/windows/directx/d3dx9math/platforms.txt create mode 100644 basis/windows/directx/d3dx9mesh/platforms.txt create mode 100644 basis/windows/directx/d3dx9shader/platforms.txt create mode 100644 basis/windows/directx/d3dx9shape/platforms.txt create mode 100644 basis/windows/directx/d3dx9tex/platforms.txt create mode 100644 basis/windows/directx/d3dx9xof/platforms.txt create mode 100644 basis/windows/directx/dcommon/platforms.txt create mode 100644 basis/windows/directx/dinput/constants/platforms.txt delete mode 100644 basis/windows/directx/dinput/constants/tags.txt create mode 100644 basis/windows/directx/dinput/platforms.txt create mode 100644 basis/windows/directx/dwrite/platforms.txt create mode 100644 basis/windows/directx/dxfile/platforms.txt create mode 100644 basis/windows/directx/dxgi/platforms.txt create mode 100644 basis/windows/directx/dxgiformat/platforms.txt create mode 100644 basis/windows/directx/dxgitype/platforms.txt create mode 100644 basis/windows/directx/x3daudio/platforms.txt create mode 100644 basis/windows/directx/xact3/platforms.txt create mode 100644 basis/windows/directx/xapo/platforms.txt create mode 100644 basis/windows/directx/xapofx/platforms.txt create mode 100644 basis/windows/directx/xaudio2/platforms.txt create mode 100644 basis/windows/directx/xaudio2fx/platforms.txt create mode 100644 basis/windows/directx/xinput/platforms.txt create mode 100644 basis/windows/dragdrop-listener/platforms.txt delete mode 100644 basis/windows/dragdrop-listener/tags.txt create mode 100644 basis/windows/dwmapi/platforms.txt create mode 100644 basis/windows/errors/platforms.txt delete mode 100644 basis/windows/errors/tags.txt create mode 100644 basis/windows/fonts/platforms.txt delete mode 100644 basis/windows/fonts/tags.txt create mode 100644 basis/windows/gdi32/platforms.txt create mode 100644 basis/windows/kernel32/platforms.txt delete mode 100644 basis/windows/kernel32/tags.txt create mode 100644 basis/windows/messages/platforms.txt delete mode 100644 basis/windows/messages/tags.txt create mode 100644 basis/windows/nt/platforms.txt delete mode 100644 basis/windows/nt/tags.txt create mode 100644 basis/windows/offscreen/platforms.txt delete mode 100755 basis/windows/offscreen/tags.txt create mode 100644 basis/windows/ole32/platforms.txt delete mode 100644 basis/windows/ole32/tags.txt create mode 100644 basis/windows/opengl32/platforms.txt delete mode 100644 basis/windows/opengl32/tags.txt create mode 100644 basis/windows/platforms.txt create mode 100644 basis/windows/psapi/platforms.txt create mode 100644 basis/windows/shell32/platforms.txt delete mode 100644 basis/windows/shell32/tags.txt create mode 100644 basis/windows/time/platforms.txt delete mode 100644 basis/windows/time/tags.txt create mode 100644 basis/windows/types/platforms.txt delete mode 100644 basis/windows/types/tags.txt create mode 100644 basis/windows/uniscribe/platforms.txt delete mode 100755 basis/windows/uniscribe/tags.txt create mode 100644 basis/windows/user32/platforms.txt delete mode 100644 basis/windows/user32/tags.txt create mode 100644 basis/windows/usp10/platforms.txt create mode 100644 basis/windows/winsock/platforms.txt delete mode 100644 basis/windows/winsock/tags.txt create mode 100644 basis/x11/io/unix/platforms.txt delete mode 100644 basis/x11/io/unix/tags.txt create mode 100644 basis/x11/windows/platforms.txt delete mode 100644 basis/x11/windows/tags.txt create mode 100644 extra/curses/ffi/platforms.txt delete mode 100644 extra/curses/ffi/tags.txt create mode 100644 extra/curses/platforms.txt delete mode 100644 extra/curses/tags.txt delete mode 100644 extra/io/serial/tags.txt create mode 100644 extra/io/serial/unix/bsd/platforms.txt delete mode 100644 extra/io/serial/unix/bsd/tags.txt create mode 100644 extra/io/serial/unix/linux/platforms.txt delete mode 100644 extra/io/serial/unix/linux/tags.txt create mode 100644 extra/io/serial/unix/platforms.txt delete mode 100644 extra/io/serial/unix/tags.txt create mode 100644 extra/io/serial/unix/termios/bsd/platforms.txt delete mode 100644 extra/io/serial/unix/termios/bsd/tags.txt create mode 100644 extra/io/serial/unix/termios/linux/platforms.txt delete mode 100644 extra/io/serial/unix/termios/linux/tags.txt create mode 100644 extra/io/serial/unix/termios/platforms.txt delete mode 100644 extra/io/serial/unix/termios/tags.txt create mode 100644 extra/io/serial/windows/platforms.txt delete mode 100644 extra/io/serial/windows/tags.txt create mode 100644 extra/libusb/platforms.txt create mode 100644 extra/merger/platforms.txt delete mode 100644 extra/merger/tags.txt create mode 100644 extra/openal/alut/macosx/platforms.txt delete mode 100644 extra/openal/alut/macosx/tags.txt create mode 100644 extra/qtkit/platforms.txt delete mode 100644 extra/qtkit/tags.txt create mode 100644 extra/webkit-demo/platforms.txt delete mode 100644 extra/webkit-demo/tags.txt diff --git a/basis/bootstrap/compiler/timing/tags.txt b/basis/bootstrap/compiler/timing/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/bootstrap/compiler/timing/tags.txt +++ b/basis/bootstrap/compiler/timing/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/calendar/unix/platforms.txt b/basis/calendar/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/calendar/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/calendar/unix/tags.txt b/basis/calendar/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/calendar/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/calendar/windows/platforms.txt b/basis/calendar/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/calendar/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/calendar/windows/tags.txt b/basis/calendar/windows/tags.txt deleted file mode 100755 index 6bf68304bb..0000000000 --- a/basis/calendar/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/application/platforms.txt b/basis/cocoa/application/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/application/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/application/tags.txt b/basis/cocoa/application/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/application/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/callbacks/platforms.txt b/basis/cocoa/callbacks/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/callbacks/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/callbacks/tags.txt b/basis/cocoa/callbacks/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/callbacks/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/dialogs/platforms.txt b/basis/cocoa/dialogs/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/dialogs/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/dialogs/tags.txt b/basis/cocoa/dialogs/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/dialogs/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/enumeration/platforms.txt b/basis/cocoa/enumeration/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/enumeration/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/enumeration/tags.txt b/basis/cocoa/enumeration/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/enumeration/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/messages/platforms.txt b/basis/cocoa/messages/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/messages/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/messages/tags.txt b/basis/cocoa/messages/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/messages/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/nibs/platforms.txt b/basis/cocoa/nibs/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/nibs/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/nibs/tags.txt b/basis/cocoa/nibs/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/nibs/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/pasteboard/platforms.txt b/basis/cocoa/pasteboard/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/pasteboard/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/pasteboard/tags.txt b/basis/cocoa/pasteboard/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/pasteboard/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/platforms.txt b/basis/cocoa/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/plists/platforms.txt b/basis/cocoa/plists/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/plists/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/plists/tags.txt b/basis/cocoa/plists/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/plists/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/runtime/platforms.txt b/basis/cocoa/runtime/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/runtime/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/runtime/tags.txt b/basis/cocoa/runtime/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/runtime/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/subclassing/platforms.txt b/basis/cocoa/subclassing/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/subclassing/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/subclassing/tags.txt b/basis/cocoa/subclassing/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/subclassing/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/tags.txt b/basis/cocoa/tags.txt index 86dd9eeb91..40fc52b29b 100644 --- a/basis/cocoa/tags.txt +++ b/basis/cocoa/tags.txt @@ -1,3 +1,2 @@ -unportable bindings ffi diff --git a/basis/cocoa/types/platforms.txt b/basis/cocoa/types/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/types/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/types/tags.txt b/basis/cocoa/types/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/types/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/views/platforms.txt b/basis/cocoa/views/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/views/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/views/tags.txt b/basis/cocoa/views/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/views/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cocoa/windows/platforms.txt b/basis/cocoa/windows/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/cocoa/windows/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/cocoa/windows/tags.txt b/basis/cocoa/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cocoa/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/core-foundation/arrays/platforms.txt b/basis/core-foundation/arrays/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/arrays/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/arrays/tags.txt b/basis/core-foundation/arrays/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-foundation/arrays/tags.txt +++ b/basis/core-foundation/arrays/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/core-foundation/attributed-strings/platforms.txt b/basis/core-foundation/attributed-strings/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/attributed-strings/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/attributed-strings/tags.txt b/basis/core-foundation/attributed-strings/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-foundation/attributed-strings/tags.txt +++ b/basis/core-foundation/attributed-strings/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/core-foundation/bundles/platforms.txt b/basis/core-foundation/bundles/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/bundles/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/bundles/tags.txt b/basis/core-foundation/bundles/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-foundation/bundles/tags.txt +++ b/basis/core-foundation/bundles/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/core-foundation/data/platforms.txt b/basis/core-foundation/data/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/data/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/data/tags.txt b/basis/core-foundation/data/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-foundation/data/tags.txt +++ b/basis/core-foundation/data/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/core-foundation/dictionaries/platforms.txt b/basis/core-foundation/dictionaries/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/dictionaries/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/dictionaries/tags.txt b/basis/core-foundation/dictionaries/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-foundation/dictionaries/tags.txt +++ b/basis/core-foundation/dictionaries/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/core-foundation/file-descriptors/platforms.txt b/basis/core-foundation/file-descriptors/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/file-descriptors/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/file-descriptors/tags.txt b/basis/core-foundation/file-descriptors/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-foundation/file-descriptors/tags.txt +++ b/basis/core-foundation/file-descriptors/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/core-foundation/fsevents/platforms.txt b/basis/core-foundation/fsevents/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/fsevents/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/fsevents/tags.txt b/basis/core-foundation/fsevents/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/core-foundation/fsevents/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/core-foundation/numbers/platforms.txt b/basis/core-foundation/numbers/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/numbers/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/numbers/tags.txt b/basis/core-foundation/numbers/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/core-foundation/numbers/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/core-foundation/platforms.txt b/basis/core-foundation/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/run-loop/platforms.txt b/basis/core-foundation/run-loop/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/run-loop/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/run-loop/tags.txt b/basis/core-foundation/run-loop/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/core-foundation/run-loop/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/core-foundation/strings/platforms.txt b/basis/core-foundation/strings/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/strings/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/strings/tags.txt b/basis/core-foundation/strings/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-foundation/strings/tags.txt +++ b/basis/core-foundation/strings/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/core-foundation/tags.txt b/basis/core-foundation/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-foundation/tags.txt +++ b/basis/core-foundation/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/core-foundation/timers/platforms.txt b/basis/core-foundation/timers/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/timers/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/timers/tags.txt b/basis/core-foundation/timers/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-foundation/timers/tags.txt +++ b/basis/core-foundation/timers/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/core-foundation/urls/platforms.txt b/basis/core-foundation/urls/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/urls/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/urls/tags.txt b/basis/core-foundation/urls/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-foundation/urls/tags.txt +++ b/basis/core-foundation/urls/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/core-foundation/utilities/platforms.txt b/basis/core-foundation/utilities/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-foundation/utilities/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-foundation/utilities/tags.txt b/basis/core-foundation/utilities/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/core-foundation/utilities/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/core-graphics/platforms.txt b/basis/core-graphics/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-graphics/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-graphics/tags.txt b/basis/core-graphics/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-graphics/tags.txt +++ b/basis/core-graphics/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/core-text/fonts/platforms.txt b/basis/core-text/fonts/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-text/fonts/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-text/fonts/tags.txt b/basis/core-text/fonts/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-text/fonts/tags.txt +++ b/basis/core-text/fonts/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/core-text/platforms.txt b/basis/core-text/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/core-text/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/core-text/tags.txt b/basis/core-text/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/core-text/tags.txt +++ b/basis/core-text/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/cpu/ppc/assembler/backend/tags.txt b/basis/cpu/ppc/assembler/backend/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cpu/ppc/assembler/backend/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cpu/ppc/linux/tags.txt b/basis/cpu/ppc/linux/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/cpu/ppc/linux/tags.txt +++ b/basis/cpu/ppc/linux/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/cpu/ppc/macosx/tags.txt b/basis/cpu/ppc/macosx/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/cpu/ppc/macosx/tags.txt +++ b/basis/cpu/ppc/macosx/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/cpu/ppc/tags.txt b/basis/cpu/ppc/tags.txt index 8e66660f70..6c8f59c757 100644 --- a/basis/cpu/ppc/tags.txt +++ b/basis/cpu/ppc/tags.txt @@ -1,2 +1,2 @@ -unportable compiler +untested diff --git a/basis/cpu/x86/32/tags.txt b/basis/cpu/x86/32/tags.txt index 8e66660f70..50dfc5156e 100644 --- a/basis/cpu/x86/32/tags.txt +++ b/basis/cpu/x86/32/tags.txt @@ -1,2 +1,2 @@ -unportable +untested compiler diff --git a/basis/cpu/x86/64/tags.txt b/basis/cpu/x86/64/tags.txt index 8e66660f70..50dfc5156e 100644 --- a/basis/cpu/x86/64/tags.txt +++ b/basis/cpu/x86/64/tags.txt @@ -1,2 +1,2 @@ -unportable +untested compiler diff --git a/basis/cpu/x86/64/unix/tags.txt b/basis/cpu/x86/64/unix/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/cpu/x86/64/unix/tags.txt +++ b/basis/cpu/x86/64/unix/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/cpu/x86/64/winnt/tags.txt b/basis/cpu/x86/64/winnt/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/cpu/x86/64/winnt/tags.txt +++ b/basis/cpu/x86/64/winnt/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/cpu/x86/assembler/syntax/tags.txt b/basis/cpu/x86/assembler/syntax/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/cpu/x86/assembler/syntax/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/cpu/x86/features/tags.txt b/basis/cpu/x86/features/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/cpu/x86/features/tags.txt +++ b/basis/cpu/x86/features/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/cpu/x86/tags.txt b/basis/cpu/x86/tags.txt index 8e66660f70..50dfc5156e 100644 --- a/basis/cpu/x86/tags.txt +++ b/basis/cpu/x86/tags.txt @@ -1,2 +1,2 @@ -unportable +untested compiler diff --git a/basis/debugger/windows/platforms.txt b/basis/debugger/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/debugger/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/debugger/windows/tags.txt b/basis/debugger/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/debugger/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/editors/editpadlite/tags.txt b/basis/editors/editpadlite/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/editpadlite/tags.txt +++ b/basis/editors/editpadlite/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/editpadpro/tags.txt b/basis/editors/editpadpro/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/editpadpro/tags.txt +++ b/basis/editors/editpadpro/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/editplus/tags.txt b/basis/editors/editplus/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/editplus/tags.txt +++ b/basis/editors/editplus/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/emacs/tags.txt b/basis/editors/emacs/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/emacs/tags.txt +++ b/basis/editors/emacs/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/emacs/windows/tags.txt b/basis/editors/emacs/windows/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/emacs/windows/tags.txt +++ b/basis/editors/emacs/windows/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/emeditor/tags.txt b/basis/editors/emeditor/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/emeditor/tags.txt +++ b/basis/editors/emeditor/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/etexteditor/tags.txt b/basis/editors/etexteditor/tags.txt index 6bf68304bb..5d77766703 100755 --- a/basis/editors/etexteditor/tags.txt +++ b/basis/editors/etexteditor/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/gedit/tags.txt b/basis/editors/gedit/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/gedit/tags.txt +++ b/basis/editors/gedit/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/gvim/tags.txt b/basis/editors/gvim/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/gvim/tags.txt +++ b/basis/editors/gvim/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/gvim/unix/tags.txt b/basis/editors/gvim/unix/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/gvim/unix/tags.txt +++ b/basis/editors/gvim/unix/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/gvim/windows/tags.txt b/basis/editors/gvim/windows/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/gvim/windows/tags.txt +++ b/basis/editors/gvim/windows/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/jedit/tags.txt b/basis/editors/jedit/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/jedit/tags.txt +++ b/basis/editors/jedit/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/macvim/tags.txt b/basis/editors/macvim/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/macvim/tags.txt +++ b/basis/editors/macvim/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/notepad/tags.txt b/basis/editors/notepad/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/notepad/tags.txt +++ b/basis/editors/notepad/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/notepad2/tags.txt b/basis/editors/notepad2/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/notepad2/tags.txt +++ b/basis/editors/notepad2/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/notepadpp/tags.txt b/basis/editors/notepadpp/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/notepadpp/tags.txt +++ b/basis/editors/notepadpp/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/scite/tags.txt b/basis/editors/scite/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/scite/tags.txt +++ b/basis/editors/scite/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/ted-notepad/tags.txt b/basis/editors/ted-notepad/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/ted-notepad/tags.txt +++ b/basis/editors/ted-notepad/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/textedit/tags.txt b/basis/editors/textedit/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/textedit/tags.txt +++ b/basis/editors/textedit/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/textmate/tags.txt b/basis/editors/textmate/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/textmate/tags.txt +++ b/basis/editors/textmate/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/textpad/tags.txt b/basis/editors/textpad/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/textpad/tags.txt +++ b/basis/editors/textpad/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/textwrangler/tags.txt b/basis/editors/textwrangler/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/textwrangler/tags.txt +++ b/basis/editors/textwrangler/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/ultraedit/tags.txt b/basis/editors/ultraedit/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/ultraedit/tags.txt +++ b/basis/editors/ultraedit/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/vim/generate-syntax/tags.txt b/basis/editors/vim/generate-syntax/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/vim/generate-syntax/tags.txt +++ b/basis/editors/vim/generate-syntax/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/vim/tags.txt b/basis/editors/vim/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/vim/tags.txt +++ b/basis/editors/vim/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/editors/wordpad/tags.txt b/basis/editors/wordpad/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/editors/wordpad/tags.txt +++ b/basis/editors/wordpad/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/environment/unix/macosx/platforms.txt b/basis/environment/unix/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/environment/unix/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/environment/unix/macosx/tags.txt b/basis/environment/unix/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/environment/unix/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/environment/unix/platforms.txt b/basis/environment/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/environment/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/environment/unix/tags.txt b/basis/environment/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/environment/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/environment/winnt/platforms.txt b/basis/environment/winnt/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/environment/winnt/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/environment/winnt/tags.txt b/basis/environment/winnt/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/environment/winnt/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/game/input/dinput/platforms.txt b/basis/game/input/dinput/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/game/input/dinput/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/game/input/dinput/tags.txt b/basis/game/input/dinput/tags.txt index 82506ff250..84d4140a70 100755 --- a/basis/game/input/dinput/tags.txt +++ b/basis/game/input/dinput/tags.txt @@ -1,2 +1 @@ -unportable games diff --git a/basis/game/input/iokit/platforms.txt b/basis/game/input/iokit/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/game/input/iokit/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/game/input/iokit/tags.txt b/basis/game/input/iokit/tags.txt index 82506ff250..84d4140a70 100755 --- a/basis/game/input/iokit/tags.txt +++ b/basis/game/input/iokit/tags.txt @@ -1,2 +1 @@ -unportable games diff --git a/basis/game/input/linux/platforms.txt b/basis/game/input/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/game/input/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/game/input/linux/tags.txt b/basis/game/input/linux/tags.txt index 82506ff250..84d4140a70 100644 --- a/basis/game/input/linux/tags.txt +++ b/basis/game/input/linux/tags.txt @@ -1,2 +1 @@ -unportable games diff --git a/basis/game/input/xinput/platforms.txt b/basis/game/input/xinput/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/game/input/xinput/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/game/input/xinput/tags.txt b/basis/game/input/xinput/tags.txt index 82506ff250..84d4140a70 100644 --- a/basis/game/input/xinput/tags.txt +++ b/basis/game/input/xinput/tags.txt @@ -1,2 +1 @@ -unportable games diff --git a/basis/io/backend/unix/bsd/platforms.txt b/basis/io/backend/unix/bsd/platforms.txt new file mode 100644 index 0000000000..df796f15d4 --- /dev/null +++ b/basis/io/backend/unix/bsd/platforms.txt @@ -0,0 +1 @@ +bsd diff --git a/basis/io/backend/unix/bsd/tags.txt b/basis/io/backend/unix/bsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/unix/bsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/unix/freebsd/platforms.txt b/basis/io/backend/unix/freebsd/platforms.txt new file mode 100644 index 0000000000..edfe86017d --- /dev/null +++ b/basis/io/backend/unix/freebsd/platforms.txt @@ -0,0 +1 @@ +freebsd diff --git a/basis/io/backend/unix/freebsd/tags.txt b/basis/io/backend/unix/freebsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/unix/freebsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/unix/linux/platforms.txt b/basis/io/backend/unix/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/io/backend/unix/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/io/backend/unix/linux/tags.txt b/basis/io/backend/unix/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/unix/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/unix/macosx/platforms.txt b/basis/io/backend/unix/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/io/backend/unix/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/io/backend/unix/macosx/tags.txt b/basis/io/backend/unix/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/unix/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/unix/multiplexers/epoll/platforms.txt b/basis/io/backend/unix/multiplexers/epoll/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/io/backend/unix/multiplexers/epoll/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/io/backend/unix/multiplexers/epoll/tags.txt b/basis/io/backend/unix/multiplexers/epoll/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/unix/multiplexers/epoll/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/unix/multiplexers/kqueue/platforms.txt b/basis/io/backend/unix/multiplexers/kqueue/platforms.txt new file mode 100644 index 0000000000..df796f15d4 --- /dev/null +++ b/basis/io/backend/unix/multiplexers/kqueue/platforms.txt @@ -0,0 +1 @@ +bsd diff --git a/basis/io/backend/unix/multiplexers/kqueue/tags.txt b/basis/io/backend/unix/multiplexers/kqueue/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/unix/multiplexers/kqueue/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/unix/multiplexers/platforms.txt b/basis/io/backend/unix/multiplexers/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/backend/unix/multiplexers/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/backend/unix/multiplexers/run-loop/platforms.txt b/basis/io/backend/unix/multiplexers/run-loop/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/io/backend/unix/multiplexers/run-loop/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/io/backend/unix/multiplexers/run-loop/tags.txt b/basis/io/backend/unix/multiplexers/run-loop/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/unix/multiplexers/run-loop/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/unix/multiplexers/select/platforms.txt b/basis/io/backend/unix/multiplexers/select/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/backend/unix/multiplexers/select/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/backend/unix/multiplexers/select/tags.txt b/basis/io/backend/unix/multiplexers/select/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/unix/multiplexers/select/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/unix/multiplexers/tags.txt b/basis/io/backend/unix/multiplexers/tags.txt deleted file mode 100755 index 6abe115b12..0000000000 --- a/basis/io/backend/unix/multiplexers/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/unix/netbsd/platforms.txt b/basis/io/backend/unix/netbsd/platforms.txt new file mode 100644 index 0000000000..dccfe71042 --- /dev/null +++ b/basis/io/backend/unix/netbsd/platforms.txt @@ -0,0 +1 @@ +netbsd diff --git a/basis/io/backend/unix/netbsd/tags.txt b/basis/io/backend/unix/netbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/unix/netbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/unix/openbsd/platforms.txt b/basis/io/backend/unix/openbsd/platforms.txt new file mode 100644 index 0000000000..389b028aca --- /dev/null +++ b/basis/io/backend/unix/openbsd/platforms.txt @@ -0,0 +1 @@ +openbsd diff --git a/basis/io/backend/unix/openbsd/tags.txt b/basis/io/backend/unix/openbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/unix/openbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/unix/platforms.txt b/basis/io/backend/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/backend/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/backend/unix/tags.txt b/basis/io/backend/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/windows/nt/platforms.txt b/basis/io/backend/windows/nt/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/io/backend/windows/nt/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/io/backend/windows/nt/privileges/platforms.txt b/basis/io/backend/windows/nt/privileges/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/io/backend/windows/nt/privileges/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/io/backend/windows/nt/privileges/tags.txt b/basis/io/backend/windows/nt/privileges/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/windows/nt/privileges/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/windows/nt/tags.txt b/basis/io/backend/windows/nt/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/windows/nt/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/windows/platforms.txt b/basis/io/backend/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/io/backend/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/io/backend/windows/privileges/platforms.txt b/basis/io/backend/windows/privileges/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/io/backend/windows/privileges/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/io/backend/windows/privileges/tags.txt b/basis/io/backend/windows/privileges/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/backend/windows/privileges/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/backend/windows/tags.txt b/basis/io/backend/windows/tags.txt deleted file mode 100755 index 6bf68304bb..0000000000 --- a/basis/io/backend/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/directories/search/windows/platforms.txt b/basis/io/directories/search/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/io/directories/search/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/io/directories/search/windows/tags.txt b/basis/io/directories/search/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/directories/search/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/directories/unix/linux/platforms.txt b/basis/io/directories/unix/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/io/directories/unix/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/io/directories/unix/linux/tags.txt b/basis/io/directories/unix/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/directories/unix/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/directories/unix/platforms.txt b/basis/io/directories/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/directories/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/directories/unix/tags.txt b/basis/io/directories/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/directories/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/directories/windows/platforms.txt b/basis/io/directories/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/io/directories/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/io/directories/windows/tags.txt b/basis/io/directories/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/directories/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/info/unix/bsd/platforms.txt b/basis/io/files/info/unix/bsd/platforms.txt new file mode 100644 index 0000000000..df796f15d4 --- /dev/null +++ b/basis/io/files/info/unix/bsd/platforms.txt @@ -0,0 +1 @@ +bsd diff --git a/basis/io/files/info/unix/bsd/tags.txt b/basis/io/files/info/unix/bsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/info/unix/bsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/info/unix/freebsd/platforms.txt b/basis/io/files/info/unix/freebsd/platforms.txt new file mode 100644 index 0000000000..edfe86017d --- /dev/null +++ b/basis/io/files/info/unix/freebsd/platforms.txt @@ -0,0 +1 @@ +freebsd diff --git a/basis/io/files/info/unix/freebsd/tags.txt b/basis/io/files/info/unix/freebsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/info/unix/freebsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/info/unix/linux/platforms.txt b/basis/io/files/info/unix/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/io/files/info/unix/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/io/files/info/unix/linux/tags.txt b/basis/io/files/info/unix/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/info/unix/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/info/unix/macosx/platforms.txt b/basis/io/files/info/unix/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/io/files/info/unix/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/io/files/info/unix/macosx/tags.txt b/basis/io/files/info/unix/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/info/unix/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/info/unix/netbsd/platforms.txt b/basis/io/files/info/unix/netbsd/platforms.txt new file mode 100644 index 0000000000..dccfe71042 --- /dev/null +++ b/basis/io/files/info/unix/netbsd/platforms.txt @@ -0,0 +1 @@ +netbsd diff --git a/basis/io/files/info/unix/netbsd/tags.txt b/basis/io/files/info/unix/netbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/info/unix/netbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/info/unix/openbsd/platforms.txt b/basis/io/files/info/unix/openbsd/platforms.txt new file mode 100644 index 0000000000..389b028aca --- /dev/null +++ b/basis/io/files/info/unix/openbsd/platforms.txt @@ -0,0 +1 @@ +openbsd diff --git a/basis/io/files/info/unix/openbsd/tags.txt b/basis/io/files/info/unix/openbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/info/unix/openbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/info/unix/platforms.txt b/basis/io/files/info/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/files/info/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/files/info/unix/tags.txt b/basis/io/files/info/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/info/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/info/windows/platforms.txt b/basis/io/files/info/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/io/files/info/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/io/files/info/windows/tags.txt b/basis/io/files/info/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/info/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/links/unix/platforms.txt b/basis/io/files/links/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/files/links/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/files/links/unix/tags.txt b/basis/io/files/links/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/links/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/unique/unix/platforms.txt b/basis/io/files/unique/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/files/unique/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/files/unique/unix/tags.txt b/basis/io/files/unique/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/unique/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/unique/windows/platforms.txt b/basis/io/files/unique/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/io/files/unique/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/io/files/unique/windows/tags.txt b/basis/io/files/unique/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/unique/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/unix/platforms.txt b/basis/io/files/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/files/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/files/unix/tags.txt b/basis/io/files/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/windows/nt/platforms.txt b/basis/io/files/windows/nt/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/io/files/windows/nt/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/io/files/windows/nt/tags.txt b/basis/io/files/windows/nt/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/windows/nt/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/files/windows/platforms.txt b/basis/io/files/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/io/files/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/io/files/windows/tags.txt b/basis/io/files/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/files/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/launcher/unix/parser/platforms.txt b/basis/io/launcher/unix/parser/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/launcher/unix/parser/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/launcher/unix/parser/tags.txt b/basis/io/launcher/unix/parser/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/launcher/unix/parser/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/launcher/unix/platforms.txt b/basis/io/launcher/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/launcher/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/launcher/unix/tags.txt b/basis/io/launcher/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/launcher/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/launcher/windows/nt/platforms.txt b/basis/io/launcher/windows/nt/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/io/launcher/windows/nt/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/io/launcher/windows/nt/tags.txt b/basis/io/launcher/windows/nt/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/launcher/windows/nt/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/launcher/windows/platforms.txt b/basis/io/launcher/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/io/launcher/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/io/launcher/windows/tags.txt b/basis/io/launcher/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/launcher/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/mmap/unix/platforms.txt b/basis/io/mmap/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/mmap/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/mmap/unix/tags.txt b/basis/io/mmap/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/mmap/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/mmap/windows/platforms.txt b/basis/io/mmap/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/io/mmap/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/io/mmap/windows/tags.txt b/basis/io/mmap/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/mmap/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/monitors/linux/platforms.txt b/basis/io/monitors/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/io/monitors/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/io/monitors/linux/tags.txt b/basis/io/monitors/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/monitors/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/monitors/macosx/platforms.txt b/basis/io/monitors/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/io/monitors/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/io/monitors/macosx/tags.txt b/basis/io/monitors/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/monitors/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/monitors/windows/nt/platforms.txt b/basis/io/monitors/windows/nt/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/io/monitors/windows/nt/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/io/monitors/windows/nt/tags.txt b/basis/io/monitors/windows/nt/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/monitors/windows/nt/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/pipes/unix/platforms.txt b/basis/io/pipes/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/pipes/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/pipes/unix/tags.txt b/basis/io/pipes/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/pipes/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/pipes/windows/nt/platforms.txt b/basis/io/pipes/windows/nt/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/io/pipes/windows/nt/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/io/pipes/windows/nt/tags.txt b/basis/io/pipes/windows/nt/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/pipes/windows/nt/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/sockets/secure/unix/platforms.txt b/basis/io/sockets/secure/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/sockets/secure/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/sockets/secure/unix/tags.txt b/basis/io/sockets/secure/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/sockets/secure/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/sockets/unix/platforms.txt b/basis/io/sockets/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/io/sockets/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/io/sockets/unix/tags.txt b/basis/io/sockets/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/sockets/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/sockets/windows/nt/platforms.txt b/basis/io/sockets/windows/nt/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/io/sockets/windows/nt/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/io/sockets/windows/nt/tags.txt b/basis/io/sockets/windows/nt/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/sockets/windows/nt/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/io/sockets/windows/platforms.txt b/basis/io/sockets/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/io/sockets/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/io/sockets/windows/tags.txt b/basis/io/sockets/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/io/sockets/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/iokit/hid/platforms.txt b/basis/iokit/hid/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/iokit/hid/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/iokit/hid/tags.txt b/basis/iokit/hid/tags.txt index bf2a35f15b..bb863cf9a0 100755 --- a/basis/iokit/hid/tags.txt +++ b/basis/iokit/hid/tags.txt @@ -1,2 +1 @@ bindings -unportable diff --git a/basis/iokit/platforms.txt b/basis/iokit/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/iokit/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/iokit/tags.txt b/basis/iokit/tags.txt index bf2a35f15b..bb863cf9a0 100755 --- a/basis/iokit/tags.txt +++ b/basis/iokit/tags.txt @@ -1,2 +1 @@ bindings -unportable diff --git a/basis/math/floats/env/ppc/tags.txt b/basis/math/floats/env/ppc/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/math/floats/env/ppc/tags.txt +++ b/basis/math/floats/env/ppc/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/math/floats/env/x86/32/tags.txt b/basis/math/floats/env/x86/32/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/math/floats/env/x86/32/tags.txt +++ b/basis/math/floats/env/x86/32/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/math/floats/env/x86/64/tags.txt b/basis/math/floats/env/x86/64/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/math/floats/env/x86/64/tags.txt +++ b/basis/math/floats/env/x86/64/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/math/floats/env/x86/tags.txt b/basis/math/floats/env/x86/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/math/floats/env/x86/tags.txt +++ b/basis/math/floats/env/x86/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/opengl/gl/macosx/platforms.txt b/basis/opengl/gl/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/opengl/gl/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/opengl/gl/macosx/tags.txt b/basis/opengl/gl/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/opengl/gl/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/opengl/gl/unix/platforms.txt b/basis/opengl/gl/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/opengl/gl/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/opengl/gl/unix/tags.txt b/basis/opengl/gl/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/opengl/gl/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/opengl/gl/windows/platforms.txt b/basis/opengl/gl/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/opengl/gl/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/opengl/gl/windows/tags.txt b/basis/opengl/gl/windows/tags.txt deleted file mode 100755 index 6bf68304bb..0000000000 --- a/basis/opengl/gl/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/random/unix/platforms.txt b/basis/random/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/random/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/random/unix/tags.txt b/basis/random/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/random/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/random/windows/platforms.txt b/basis/random/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/random/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/random/windows/tags.txt b/basis/random/windows/tags.txt deleted file mode 100755 index 6bf68304bb..0000000000 --- a/basis/random/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/system-info/linux/platforms.txt b/basis/system-info/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/system-info/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/system-info/linux/tags.txt b/basis/system-info/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/system-info/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/system-info/macosx/platforms.txt b/basis/system-info/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/system-info/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/system-info/macosx/tags.txt b/basis/system-info/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/system-info/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/system-info/windows/ce/platforms.txt b/basis/system-info/windows/ce/platforms.txt new file mode 100644 index 0000000000..cd0d980f6f --- /dev/null +++ b/basis/system-info/windows/ce/platforms.txt @@ -0,0 +1 @@ +wince diff --git a/basis/system-info/windows/ce/tags.txt b/basis/system-info/windows/ce/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/system-info/windows/ce/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/system-info/windows/nt/platforms.txt b/basis/system-info/windows/nt/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/system-info/windows/nt/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/system-info/windows/nt/tags.txt b/basis/system-info/windows/nt/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/system-info/windows/nt/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/system-info/windows/platforms.txt b/basis/system-info/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/system-info/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/system-info/windows/tags.txt b/basis/system-info/windows/tags.txt deleted file mode 100755 index 6bf68304bb..0000000000 --- a/basis/system-info/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/tools/cocoa/platforms.txt b/basis/tools/cocoa/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/tools/cocoa/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/tools/cocoa/tags.txt b/basis/tools/cocoa/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/tools/cocoa/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/tools/deploy/libraries/tags.txt b/basis/tools/deploy/libraries/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/tools/deploy/libraries/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/tools/deploy/libraries/unix/platforms.txt b/basis/tools/deploy/libraries/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/tools/deploy/libraries/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/tools/deploy/libraries/unix/tags.txt b/basis/tools/deploy/libraries/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/tools/deploy/libraries/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/tools/deploy/libraries/windows/platforms.txt b/basis/tools/deploy/libraries/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/tools/deploy/libraries/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/tools/deploy/libraries/windows/tags.txt b/basis/tools/deploy/libraries/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/tools/deploy/libraries/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/tools/deploy/macosx/platforms.txt b/basis/tools/deploy/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/tools/deploy/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/tools/deploy/macosx/tags.txt b/basis/tools/deploy/macosx/tags.txt index 660d511420..ef1aab0d0e 100644 --- a/basis/tools/deploy/macosx/tags.txt +++ b/basis/tools/deploy/macosx/tags.txt @@ -1,2 +1 @@ -unportable tools diff --git a/basis/tools/deploy/test/14/platforms.txt b/basis/tools/deploy/test/14/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/tools/deploy/test/14/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/tools/deploy/test/14/tags.txt b/basis/tools/deploy/test/14/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/tools/deploy/test/14/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/tools/deploy/unix/platforms.txt b/basis/tools/deploy/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/tools/deploy/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/tools/deploy/unix/tags.txt b/basis/tools/deploy/unix/tags.txt index 660d511420..ef1aab0d0e 100644 --- a/basis/tools/deploy/unix/tags.txt +++ b/basis/tools/deploy/unix/tags.txt @@ -1,2 +1 @@ -unportable tools diff --git a/basis/tools/deploy/windows/ico/platforms.txt b/basis/tools/deploy/windows/ico/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/tools/deploy/windows/ico/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/tools/deploy/windows/ico/tags.txt b/basis/tools/deploy/windows/ico/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/tools/deploy/windows/ico/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/tools/deploy/windows/platforms.txt b/basis/tools/deploy/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/tools/deploy/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/tools/deploy/windows/tags.txt b/basis/tools/deploy/windows/tags.txt index 660d511420..ef1aab0d0e 100755 --- a/basis/tools/deploy/windows/tags.txt +++ b/basis/tools/deploy/windows/tags.txt @@ -1,2 +1 @@ -unportable tools diff --git a/basis/tools/disassembler/gdb/tags.txt b/basis/tools/disassembler/gdb/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/tools/disassembler/gdb/tags.txt +++ b/basis/tools/disassembler/gdb/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/tools/disassembler/udis/tags.txt b/basis/tools/disassembler/udis/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/tools/disassembler/udis/tags.txt +++ b/basis/tools/disassembler/udis/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/tools/files/tags.txt b/basis/tools/files/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/tools/files/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/tools/files/unix/platforms.txt b/basis/tools/files/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/tools/files/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/tools/files/unix/tags.txt b/basis/tools/files/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/tools/files/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/tools/files/windows/platforms.txt b/basis/tools/files/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/tools/files/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/tools/files/windows/tags.txt b/basis/tools/files/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/tools/files/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/tools/scaffold/scaffold.factor b/basis/tools/scaffold/scaffold.factor index 936d388b01..a8565fccf9 100644 --- a/basis/tools/scaffold/scaffold.factor +++ b/basis/tools/scaffold/scaffold.factor @@ -2,11 +2,11 @@ ! See http://factorcode.org/license.txt for BSD license. USING: assocs io.files io.pathnames io.directories io.encodings.utf8 hashtables kernel namespaces sequences -vocabs.loader io combinators calendar accessors math.parser -io.streams.string ui.tools.operations quotations strings arrays -prettyprint words vocabs sorting sets classes math alien urls -splitting ascii combinators.short-circuit alarms words.symbol -system summary ; +vocabs.loader vocabs.metadata io combinators calendar accessors +math.parser io.streams.string ui.tools.operations quotations +strings arrays prettyprint words vocabs sorting sets classes +math alien urls splitting ascii combinators.short-circuit alarms +words.symbol system summary ; IN: tools.scaffold SYMBOL: developer-name @@ -15,7 +15,6 @@ SYMBOL: using ERROR: not-a-vocab-root string ; ERROR: vocab-name-contains-separator path ; ERROR: vocab-name-contains-dot path ; -ERROR: no-vocab vocab ; ERROR: bad-developer-name name ; M: bad-developer-name summary @@ -40,9 +39,6 @@ M: bad-developer-name summary : check-root ( string -- string ) dup vocab-root? [ not-a-vocab-root ] unless ; -: check-vocab ( vocab -- vocab ) - dup find-vocab-root [ no-vocab ] unless ; - : check-vocab-root/vocab ( vocab-root string -- vocab-root string ) [ check-root ] [ check-vocab-name ] bi* ; diff --git a/basis/tools/scaffold/windows/platforms.txt b/basis/tools/scaffold/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/tools/scaffold/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/tools/scaffold/windows/tags.txt b/basis/tools/scaffold/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/tools/scaffold/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/ui/backend/cocoa/platforms.txt b/basis/ui/backend/cocoa/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/ui/backend/cocoa/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/ui/backend/cocoa/tags.txt b/basis/ui/backend/cocoa/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/ui/backend/cocoa/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/ui/backend/cocoa/tools/platforms.txt b/basis/ui/backend/cocoa/tools/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/ui/backend/cocoa/tools/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/ui/backend/cocoa/tools/tags.txt b/basis/ui/backend/cocoa/tools/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/ui/backend/cocoa/tools/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/ui/backend/cocoa/views/platforms.txt b/basis/ui/backend/cocoa/views/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/ui/backend/cocoa/views/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/ui/backend/cocoa/views/tags.txt b/basis/ui/backend/cocoa/views/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/ui/backend/cocoa/views/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/ui/backend/windows/platforms.txt b/basis/ui/backend/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/ui/backend/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/ui/backend/windows/tags.txt b/basis/ui/backend/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/ui/backend/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/ui/backend/x11/tags.txt b/basis/ui/backend/x11/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/ui/backend/x11/tags.txt +++ b/basis/ui/backend/x11/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/ui/text/core-text/platforms.txt b/basis/ui/text/core-text/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/ui/text/core-text/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/ui/text/core-text/tags.txt b/basis/ui/text/core-text/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/ui/text/core-text/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/ui/text/pango/tags.txt b/basis/ui/text/pango/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/ui/text/pango/tags.txt +++ b/basis/ui/text/pango/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/ui/text/uniscribe/platforms.txt b/basis/ui/text/uniscribe/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/ui/text/uniscribe/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/ui/text/uniscribe/tags.txt b/basis/ui/text/uniscribe/tags.txt deleted file mode 100755 index 6abe115b12..0000000000 --- a/basis/ui/text/uniscribe/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/debugger/platforms.txt b/basis/unix/debugger/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/unix/debugger/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/unix/debugger/tags.txt b/basis/unix/debugger/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/debugger/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/ffi/bsd/freebsd/platforms.txt b/basis/unix/ffi/bsd/freebsd/platforms.txt new file mode 100644 index 0000000000..edfe86017d --- /dev/null +++ b/basis/unix/ffi/bsd/freebsd/platforms.txt @@ -0,0 +1 @@ +freebsd diff --git a/basis/unix/ffi/bsd/freebsd/tags.txt b/basis/unix/ffi/bsd/freebsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/ffi/bsd/freebsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/ffi/bsd/macosx/platforms.txt b/basis/unix/ffi/bsd/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/unix/ffi/bsd/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/unix/ffi/bsd/macosx/tags.txt b/basis/unix/ffi/bsd/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/ffi/bsd/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/ffi/bsd/netbsd/platforms.txt b/basis/unix/ffi/bsd/netbsd/platforms.txt new file mode 100644 index 0000000000..dccfe71042 --- /dev/null +++ b/basis/unix/ffi/bsd/netbsd/platforms.txt @@ -0,0 +1 @@ +netbsd diff --git a/basis/unix/ffi/bsd/netbsd/tags.txt b/basis/unix/ffi/bsd/netbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/ffi/bsd/netbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/ffi/bsd/openbsd/platforms.txt b/basis/unix/ffi/bsd/openbsd/platforms.txt new file mode 100644 index 0000000000..389b028aca --- /dev/null +++ b/basis/unix/ffi/bsd/openbsd/platforms.txt @@ -0,0 +1 @@ +openbsd diff --git a/basis/unix/ffi/bsd/openbsd/tags.txt b/basis/unix/ffi/bsd/openbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/ffi/bsd/openbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/ffi/bsd/platforms.txt b/basis/unix/ffi/bsd/platforms.txt new file mode 100644 index 0000000000..df796f15d4 --- /dev/null +++ b/basis/unix/ffi/bsd/platforms.txt @@ -0,0 +1 @@ +bsd diff --git a/basis/unix/ffi/bsd/tags.txt b/basis/unix/ffi/bsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/ffi/bsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/ffi/linux/platforms.txt b/basis/unix/ffi/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/unix/ffi/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/unix/ffi/linux/tags.txt b/basis/unix/ffi/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/ffi/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/ffi/platforms.txt b/basis/unix/ffi/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/unix/ffi/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/unix/ffi/solaris/platforms.txt b/basis/unix/ffi/solaris/platforms.txt new file mode 100644 index 0000000000..613a93b535 --- /dev/null +++ b/basis/unix/ffi/solaris/platforms.txt @@ -0,0 +1 @@ +solaris diff --git a/basis/unix/ffi/solaris/tags.txt b/basis/unix/ffi/solaris/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/ffi/solaris/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/ffi/tags.txt b/basis/unix/ffi/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/ffi/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/getfsstat/freebsd/platforms.txt b/basis/unix/getfsstat/freebsd/platforms.txt new file mode 100644 index 0000000000..edfe86017d --- /dev/null +++ b/basis/unix/getfsstat/freebsd/platforms.txt @@ -0,0 +1 @@ +freebsd diff --git a/basis/unix/getfsstat/freebsd/tags.txt b/basis/unix/getfsstat/freebsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/getfsstat/freebsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/getfsstat/macosx/platforms.txt b/basis/unix/getfsstat/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/unix/getfsstat/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/unix/getfsstat/macosx/tags.txt b/basis/unix/getfsstat/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/getfsstat/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/getfsstat/netbsd/platforms.txt b/basis/unix/getfsstat/netbsd/platforms.txt new file mode 100644 index 0000000000..dccfe71042 --- /dev/null +++ b/basis/unix/getfsstat/netbsd/platforms.txt @@ -0,0 +1 @@ +netbsd diff --git a/basis/unix/getfsstat/netbsd/tags.txt b/basis/unix/getfsstat/netbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/getfsstat/netbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/getfsstat/openbsd/platforms.txt b/basis/unix/getfsstat/openbsd/platforms.txt new file mode 100644 index 0000000000..389b028aca --- /dev/null +++ b/basis/unix/getfsstat/openbsd/platforms.txt @@ -0,0 +1 @@ +openbsd diff --git a/basis/unix/getfsstat/openbsd/tags.txt b/basis/unix/getfsstat/openbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/getfsstat/openbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/groups/platforms.txt b/basis/unix/groups/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/unix/groups/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/unix/groups/tags.txt b/basis/unix/groups/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/groups/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/kqueue/freebsd/platforms.txt b/basis/unix/kqueue/freebsd/platforms.txt new file mode 100644 index 0000000000..edfe86017d --- /dev/null +++ b/basis/unix/kqueue/freebsd/platforms.txt @@ -0,0 +1 @@ +freebsd diff --git a/basis/unix/kqueue/freebsd/tags.txt b/basis/unix/kqueue/freebsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/kqueue/freebsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/kqueue/macosx/platforms.txt b/basis/unix/kqueue/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/unix/kqueue/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/unix/kqueue/macosx/tags.txt b/basis/unix/kqueue/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/kqueue/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/kqueue/netbsd/platforms.txt b/basis/unix/kqueue/netbsd/platforms.txt new file mode 100644 index 0000000000..dccfe71042 --- /dev/null +++ b/basis/unix/kqueue/netbsd/platforms.txt @@ -0,0 +1 @@ +netbsd diff --git a/basis/unix/kqueue/netbsd/tags.txt b/basis/unix/kqueue/netbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/kqueue/netbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/kqueue/openbsd/platforms.txt b/basis/unix/kqueue/openbsd/platforms.txt new file mode 100644 index 0000000000..389b028aca --- /dev/null +++ b/basis/unix/kqueue/openbsd/platforms.txt @@ -0,0 +1 @@ +openbsd diff --git a/basis/unix/kqueue/openbsd/tags.txt b/basis/unix/kqueue/openbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/kqueue/openbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/kqueue/platforms.txt b/basis/unix/kqueue/platforms.txt new file mode 100644 index 0000000000..df796f15d4 --- /dev/null +++ b/basis/unix/kqueue/platforms.txt @@ -0,0 +1 @@ +bsd diff --git a/basis/unix/kqueue/tags.txt b/basis/unix/kqueue/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/kqueue/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/linux/epoll/platforms.txt b/basis/unix/linux/epoll/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/unix/linux/epoll/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/unix/linux/epoll/tags.txt b/basis/unix/linux/epoll/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/linux/epoll/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/linux/inotify/platforms.txt b/basis/unix/linux/inotify/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/unix/linux/inotify/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/unix/linux/inotify/tags.txt b/basis/unix/linux/inotify/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/linux/inotify/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/linux/platforms.txt b/basis/unix/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/unix/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/unix/linux/tags.txt b/basis/unix/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/platforms.txt b/basis/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/unix/process/platforms.txt b/basis/unix/process/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/unix/process/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/unix/process/tags.txt b/basis/unix/process/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/process/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/stat/freebsd/platforms.txt b/basis/unix/stat/freebsd/platforms.txt new file mode 100644 index 0000000000..edfe86017d --- /dev/null +++ b/basis/unix/stat/freebsd/platforms.txt @@ -0,0 +1 @@ +freebsd diff --git a/basis/unix/stat/freebsd/tags.txt b/basis/unix/stat/freebsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/stat/freebsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/stat/linux/32/tags.txt b/basis/unix/stat/linux/32/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/unix/stat/linux/32/tags.txt +++ b/basis/unix/stat/linux/32/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/unix/stat/linux/64/tags.txt b/basis/unix/stat/linux/64/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/unix/stat/linux/64/tags.txt +++ b/basis/unix/stat/linux/64/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/unix/stat/linux/platforms.txt b/basis/unix/stat/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/unix/stat/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/unix/stat/linux/tags.txt b/basis/unix/stat/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/stat/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/stat/macosx/platforms.txt b/basis/unix/stat/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/unix/stat/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/unix/stat/macosx/tags.txt b/basis/unix/stat/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/stat/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/stat/netbsd/32/tags.txt b/basis/unix/stat/netbsd/32/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/unix/stat/netbsd/32/tags.txt +++ b/basis/unix/stat/netbsd/32/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/unix/stat/netbsd/64/tags.txt b/basis/unix/stat/netbsd/64/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/unix/stat/netbsd/64/tags.txt +++ b/basis/unix/stat/netbsd/64/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/unix/stat/netbsd/platforms.txt b/basis/unix/stat/netbsd/platforms.txt new file mode 100644 index 0000000000..dccfe71042 --- /dev/null +++ b/basis/unix/stat/netbsd/platforms.txt @@ -0,0 +1 @@ +netbsd diff --git a/basis/unix/stat/netbsd/tags.txt b/basis/unix/stat/netbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/stat/netbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/stat/openbsd/platforms.txt b/basis/unix/stat/openbsd/platforms.txt new file mode 100644 index 0000000000..389b028aca --- /dev/null +++ b/basis/unix/stat/openbsd/platforms.txt @@ -0,0 +1 @@ +openbsd diff --git a/basis/unix/stat/openbsd/tags.txt b/basis/unix/stat/openbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/stat/openbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/stat/platforms.txt b/basis/unix/stat/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/unix/stat/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/unix/stat/tags.txt b/basis/unix/stat/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/stat/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/statfs/freebsd/platforms.txt b/basis/unix/statfs/freebsd/platforms.txt new file mode 100644 index 0000000000..edfe86017d --- /dev/null +++ b/basis/unix/statfs/freebsd/platforms.txt @@ -0,0 +1 @@ +freebsd diff --git a/basis/unix/statfs/freebsd/tags.txt b/basis/unix/statfs/freebsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/statfs/freebsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/statfs/linux/platforms.txt b/basis/unix/statfs/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/unix/statfs/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/unix/statfs/linux/tags.txt b/basis/unix/statfs/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/statfs/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/statfs/macosx/platforms.txt b/basis/unix/statfs/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/unix/statfs/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/unix/statfs/macosx/tags.txt b/basis/unix/statfs/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/statfs/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/statfs/openbsd/platforms.txt b/basis/unix/statfs/openbsd/platforms.txt new file mode 100644 index 0000000000..389b028aca --- /dev/null +++ b/basis/unix/statfs/openbsd/platforms.txt @@ -0,0 +1 @@ +openbsd diff --git a/basis/unix/statfs/openbsd/tags.txt b/basis/unix/statfs/openbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/statfs/openbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/statvfs/freebsd/platforms.txt b/basis/unix/statvfs/freebsd/platforms.txt new file mode 100644 index 0000000000..edfe86017d --- /dev/null +++ b/basis/unix/statvfs/freebsd/platforms.txt @@ -0,0 +1 @@ +freebsd diff --git a/basis/unix/statvfs/freebsd/tags.txt b/basis/unix/statvfs/freebsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/statvfs/freebsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/statvfs/linux/platforms.txt b/basis/unix/statvfs/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/unix/statvfs/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/unix/statvfs/linux/tags.txt b/basis/unix/statvfs/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/statvfs/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/statvfs/macosx/platforms.txt b/basis/unix/statvfs/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/unix/statvfs/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/unix/statvfs/macosx/tags.txt b/basis/unix/statvfs/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/statvfs/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/statvfs/netbsd/platforms.txt b/basis/unix/statvfs/netbsd/platforms.txt new file mode 100644 index 0000000000..dccfe71042 --- /dev/null +++ b/basis/unix/statvfs/netbsd/platforms.txt @@ -0,0 +1 @@ +netbsd diff --git a/basis/unix/statvfs/netbsd/tags.txt b/basis/unix/statvfs/netbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/statvfs/netbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/statvfs/openbsd/platforms.txt b/basis/unix/statvfs/openbsd/platforms.txt new file mode 100644 index 0000000000..389b028aca --- /dev/null +++ b/basis/unix/statvfs/openbsd/platforms.txt @@ -0,0 +1 @@ +openbsd diff --git a/basis/unix/statvfs/openbsd/tags.txt b/basis/unix/statvfs/openbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/statvfs/openbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/statvfs/platforms.txt b/basis/unix/statvfs/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/unix/statvfs/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/unix/statvfs/tags.txt b/basis/unix/statvfs/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/statvfs/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/tags.txt b/basis/unix/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/unix/tags.txt +++ b/basis/unix/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/unix/time/platforms.txt b/basis/unix/time/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/unix/time/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/unix/time/tags.txt b/basis/unix/time/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/time/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/types/freebsd/platforms.txt b/basis/unix/types/freebsd/platforms.txt new file mode 100644 index 0000000000..edfe86017d --- /dev/null +++ b/basis/unix/types/freebsd/platforms.txt @@ -0,0 +1 @@ +freebsd diff --git a/basis/unix/types/freebsd/tags.txt b/basis/unix/types/freebsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/types/freebsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/types/linux/platforms.txt b/basis/unix/types/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/basis/unix/types/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/basis/unix/types/linux/tags.txt b/basis/unix/types/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/types/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/types/macosx/platforms.txt b/basis/unix/types/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/unix/types/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/unix/types/macosx/tags.txt b/basis/unix/types/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/types/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/types/netbsd/32/tags.txt b/basis/unix/types/netbsd/32/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/unix/types/netbsd/32/tags.txt +++ b/basis/unix/types/netbsd/32/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/unix/types/netbsd/64/tags.txt b/basis/unix/types/netbsd/64/tags.txt index 6bf68304bb..5d77766703 100644 --- a/basis/unix/types/netbsd/64/tags.txt +++ b/basis/unix/types/netbsd/64/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/basis/unix/types/netbsd/platforms.txt b/basis/unix/types/netbsd/platforms.txt new file mode 100644 index 0000000000..dccfe71042 --- /dev/null +++ b/basis/unix/types/netbsd/platforms.txt @@ -0,0 +1 @@ +netbsd diff --git a/basis/unix/types/netbsd/tags.txt b/basis/unix/types/netbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/types/netbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/types/openbsd/platforms.txt b/basis/unix/types/openbsd/platforms.txt new file mode 100644 index 0000000000..389b028aca --- /dev/null +++ b/basis/unix/types/openbsd/platforms.txt @@ -0,0 +1 @@ +openbsd diff --git a/basis/unix/types/openbsd/tags.txt b/basis/unix/types/openbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/types/openbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/types/platforms.txt b/basis/unix/types/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/unix/types/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/unix/types/tags.txt b/basis/unix/types/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/types/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/users/bsd/platforms.txt b/basis/unix/users/bsd/platforms.txt new file mode 100644 index 0000000000..df796f15d4 --- /dev/null +++ b/basis/unix/users/bsd/platforms.txt @@ -0,0 +1 @@ +bsd diff --git a/basis/unix/users/bsd/tags.txt b/basis/unix/users/bsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/users/bsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/users/platforms.txt b/basis/unix/users/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/unix/users/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/unix/users/tags.txt b/basis/unix/users/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/users/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/utilities/platforms.txt b/basis/unix/utilities/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/unix/utilities/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/unix/utilities/tags.txt b/basis/unix/utilities/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/utilities/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/utmpx/macosx/platforms.txt b/basis/unix/utmpx/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/basis/unix/utmpx/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/basis/unix/utmpx/macosx/tags.txt b/basis/unix/utmpx/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/utmpx/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/utmpx/netbsd/platforms.txt b/basis/unix/utmpx/netbsd/platforms.txt new file mode 100644 index 0000000000..dccfe71042 --- /dev/null +++ b/basis/unix/utmpx/netbsd/platforms.txt @@ -0,0 +1 @@ +netbsd diff --git a/basis/unix/utmpx/netbsd/tags.txt b/basis/unix/utmpx/netbsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/utmpx/netbsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/unix/utmpx/platforms.txt b/basis/unix/utmpx/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/unix/utmpx/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/unix/utmpx/tags.txt b/basis/unix/utmpx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/unix/utmpx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/vocabs/metadata/authors.txt b/basis/vocabs/metadata/authors.txt index d4f5d6b3ae..1ad6ff84f7 100644 --- a/basis/vocabs/metadata/authors.txt +++ b/basis/vocabs/metadata/authors.txt @@ -1 +1,2 @@ -Slava Pestov \ No newline at end of file +Slava Pestov +Joe Groff \ No newline at end of file diff --git a/basis/vocabs/metadata/metadata.factor b/basis/vocabs/metadata/metadata.factor index 04a0ea7546..10e4eac2a2 100644 --- a/basis/vocabs/metadata/metadata.factor +++ b/basis/vocabs/metadata/metadata.factor @@ -1,23 +1,26 @@ -! Copyright (C) 2009 Slava Pestov. +! Copyright (C) 2009, 2010 Slava Pestov, Joe Groff. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors arrays assocs io.encodings.utf8 io.files -io.pathnames kernel make math.parser memoize sequences sets -sorting summary vocabs vocabs.loader ; +USING: accessors arrays assocs io.directories io.encodings.utf8 +io.files io.pathnames kernel make math.parser memoize sequences +sets sorting summary vocabs vocabs.loader words system +classes.algebra combinators.short-circuit fry continuations +namespaces ; IN: vocabs.metadata +: check-vocab ( vocab -- vocab ) + dup find-vocab-root [ no-vocab ] unless ; + MEMO: vocab-file-contents ( vocab name -- seq ) vocab-append-path dup [ dup exists? [ utf8 file-lines ] [ drop f ] if ] when ; +: ?delete-file ( pathname -- ) '[ _ delete-file ] ignore-errors ; + : set-vocab-file-contents ( seq vocab name -- ) dupd vocab-append-path [ - utf8 set-file-lines + swap [ ?delete-file ] [ swap utf8 set-file-lines ] if-empty \ vocab-file-contents reset-memoized - ] [ - "The " swap vocab-name - " vocabulary was not loaded from the file system" - 3append throw - ] ?if ; + ] [ vocab-name no-vocab ] ?if ; : vocab-windows-icon-path ( vocab -- string ) vocab-dir "icon.ico" append-path ; @@ -72,6 +75,9 @@ M: vocab-link summary vocab-summary ; : add-vocab-tags ( tags vocab -- ) [ vocab-tags append prune ] keep set-vocab-tags ; +: remove-vocab-tags ( tags vocab -- ) + [ vocab-tags swap diff ] keep set-vocab-tags ; + : vocab-authors-path ( vocab -- string ) vocab-dir "authors.txt" append-path ; @@ -81,5 +87,32 @@ M: vocab-link summary vocab-summary ; : set-vocab-authors ( authors vocab -- ) dup vocab-authors-path set-vocab-file-contents ; +: vocab-platforms-path ( vocab -- string ) + vocab-dir "platforms.txt" append-path ; + +ERROR: bad-platform name ; + +: vocab-platforms ( vocab -- platforms ) + dup vocab-platforms-path vocab-file-contents + [ dup "system" lookup [ ] [ bad-platform ] ?if ] map ; + +: set-vocab-platforms ( platforms vocab -- ) + [ [ name>> ] map ] dip + dup vocab-platforms-path set-vocab-file-contents ; + +: supported-platform? ( vocab -- ? ) + vocab-platforms [ t ] [ [ os swap class<= ] any? ] if-empty ; + : unportable? ( vocab -- ? ) - vocab-tags "unportable" swap member? ; + { + [ vocab-tags "untested" swap member? ] + [ supported-platform? not ] + } 1|| ; + +ERROR: unsupported-platform vocab ; + +M: unsupported-platform summary + drop "Current operating system not supported by this vocabulary" ; + +[ dup supported-platform? [ drop ] [ vocab-name unsupported-platform ] if ] +check-vocab-hook set-global diff --git a/basis/windows/advapi32/platforms.txt b/basis/windows/advapi32/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/advapi32/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/advapi32/tags.txt b/basis/windows/advapi32/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/advapi32/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/ce/platforms.txt b/basis/windows/ce/platforms.txt new file mode 100644 index 0000000000..cd0d980f6f --- /dev/null +++ b/basis/windows/ce/platforms.txt @@ -0,0 +1 @@ +wince diff --git a/basis/windows/ce/tags.txt b/basis/windows/ce/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/ce/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/com/platforms.txt b/basis/windows/com/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/com/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/com/prettyprint/platforms.txt b/basis/windows/com/prettyprint/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/com/prettyprint/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/com/prettyprint/tags.txt b/basis/windows/com/prettyprint/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/com/prettyprint/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/com/syntax/platforms.txt b/basis/windows/com/syntax/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/com/syntax/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/com/syntax/tags.txt b/basis/windows/com/syntax/tags.txt index 2320bdd648..bb863cf9a0 100755 --- a/basis/windows/com/syntax/tags.txt +++ b/basis/windows/com/syntax/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/com/tags.txt b/basis/windows/com/tags.txt index 86dd9eeb91..40fc52b29b 100755 --- a/basis/windows/com/tags.txt +++ b/basis/windows/com/tags.txt @@ -1,3 +1,2 @@ -unportable bindings ffi diff --git a/basis/windows/com/wrapper/platforms.txt b/basis/windows/com/wrapper/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/com/wrapper/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/com/wrapper/tags.txt b/basis/windows/com/wrapper/tags.txt index 2320bdd648..bb863cf9a0 100755 --- a/basis/windows/com/wrapper/tags.txt +++ b/basis/windows/com/wrapper/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/audiodefs/platforms.txt b/basis/windows/directx/audiodefs/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/audiodefs/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/audiodefs/tags.txt b/basis/windows/directx/audiodefs/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/audiodefs/tags.txt +++ b/basis/windows/directx/audiodefs/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d2d1/platforms.txt b/basis/windows/directx/d2d1/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d2d1/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d2d1/tags.txt b/basis/windows/directx/d2d1/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d2d1/tags.txt +++ b/basis/windows/directx/d2d1/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d2dbasetypes/platforms.txt b/basis/windows/directx/d2dbasetypes/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d2dbasetypes/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d2dbasetypes/tags.txt b/basis/windows/directx/d2dbasetypes/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d2dbasetypes/tags.txt +++ b/basis/windows/directx/d2dbasetypes/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d2derr/platforms.txt b/basis/windows/directx/d2derr/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d2derr/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d2derr/tags.txt b/basis/windows/directx/d2derr/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d2derr/tags.txt +++ b/basis/windows/directx/d2derr/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3d10/platforms.txt b/basis/windows/directx/d3d10/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3d10/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3d10/tags.txt b/basis/windows/directx/d3d10/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3d10/tags.txt +++ b/basis/windows/directx/d3d10/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3d10_1/platforms.txt b/basis/windows/directx/d3d10_1/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3d10_1/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3d10_1/tags.txt b/basis/windows/directx/d3d10_1/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3d10_1/tags.txt +++ b/basis/windows/directx/d3d10_1/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3d10_1shader/platforms.txt b/basis/windows/directx/d3d10_1shader/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3d10_1shader/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3d10_1shader/tags.txt b/basis/windows/directx/d3d10_1shader/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3d10_1shader/tags.txt +++ b/basis/windows/directx/d3d10_1shader/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3d10effect/platforms.txt b/basis/windows/directx/d3d10effect/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3d10effect/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3d10effect/tags.txt b/basis/windows/directx/d3d10effect/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3d10effect/tags.txt +++ b/basis/windows/directx/d3d10effect/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3d10misc/platforms.txt b/basis/windows/directx/d3d10misc/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3d10misc/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3d10misc/tags.txt b/basis/windows/directx/d3d10misc/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3d10misc/tags.txt +++ b/basis/windows/directx/d3d10misc/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3d10shader/platforms.txt b/basis/windows/directx/d3d10shader/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3d10shader/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3d10shader/tags.txt b/basis/windows/directx/d3d10shader/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3d10shader/tags.txt +++ b/basis/windows/directx/d3d10shader/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3d11/platforms.txt b/basis/windows/directx/d3d11/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3d11/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3d11/tags.txt b/basis/windows/directx/d3d11/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3d11/tags.txt +++ b/basis/windows/directx/d3d11/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3d11shader/platforms.txt b/basis/windows/directx/d3d11shader/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3d11shader/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3d11shader/tags.txt b/basis/windows/directx/d3d11shader/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3d11shader/tags.txt +++ b/basis/windows/directx/d3d11shader/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3d9/platforms.txt b/basis/windows/directx/d3d9/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3d9/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3d9/tags.txt b/basis/windows/directx/d3d9/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3d9/tags.txt +++ b/basis/windows/directx/d3d9/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3d9caps/platforms.txt b/basis/windows/directx/d3d9caps/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3d9caps/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3d9caps/tags.txt b/basis/windows/directx/d3d9caps/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3d9caps/tags.txt +++ b/basis/windows/directx/d3d9caps/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3d9types/platforms.txt b/basis/windows/directx/d3d9types/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3d9types/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3d9types/tags.txt b/basis/windows/directx/d3d9types/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3d9types/tags.txt +++ b/basis/windows/directx/d3d9types/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dcommon/platforms.txt b/basis/windows/directx/d3dcommon/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dcommon/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dcommon/tags.txt b/basis/windows/directx/d3dcommon/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dcommon/tags.txt +++ b/basis/windows/directx/d3dcommon/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dcompiler/platforms.txt b/basis/windows/directx/d3dcompiler/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dcompiler/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dcompiler/tags.txt b/basis/windows/directx/d3dcompiler/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dcompiler/tags.txt +++ b/basis/windows/directx/d3dcompiler/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dcsx/platforms.txt b/basis/windows/directx/d3dcsx/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dcsx/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dcsx/tags.txt b/basis/windows/directx/d3dcsx/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dcsx/tags.txt +++ b/basis/windows/directx/d3dcsx/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx10/platforms.txt b/basis/windows/directx/d3dx10/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx10/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx10/tags.txt b/basis/windows/directx/d3dx10/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx10/tags.txt +++ b/basis/windows/directx/d3dx10/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx10async/platforms.txt b/basis/windows/directx/d3dx10async/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx10async/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx10async/tags.txt b/basis/windows/directx/d3dx10async/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx10async/tags.txt +++ b/basis/windows/directx/d3dx10async/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx10core/platforms.txt b/basis/windows/directx/d3dx10core/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx10core/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx10core/tags.txt b/basis/windows/directx/d3dx10core/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx10core/tags.txt +++ b/basis/windows/directx/d3dx10core/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx10math/platforms.txt b/basis/windows/directx/d3dx10math/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx10math/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx10math/tags.txt b/basis/windows/directx/d3dx10math/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx10math/tags.txt +++ b/basis/windows/directx/d3dx10math/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx10mesh/platforms.txt b/basis/windows/directx/d3dx10mesh/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx10mesh/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx10mesh/tags.txt b/basis/windows/directx/d3dx10mesh/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx10mesh/tags.txt +++ b/basis/windows/directx/d3dx10mesh/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx10tex/platforms.txt b/basis/windows/directx/d3dx10tex/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx10tex/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx10tex/tags.txt b/basis/windows/directx/d3dx10tex/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx10tex/tags.txt +++ b/basis/windows/directx/d3dx10tex/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx11/platforms.txt b/basis/windows/directx/d3dx11/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx11/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx11/tags.txt b/basis/windows/directx/d3dx11/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx11/tags.txt +++ b/basis/windows/directx/d3dx11/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx11async/platforms.txt b/basis/windows/directx/d3dx11async/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx11async/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx11async/tags.txt b/basis/windows/directx/d3dx11async/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx11async/tags.txt +++ b/basis/windows/directx/d3dx11async/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx11core/platforms.txt b/basis/windows/directx/d3dx11core/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx11core/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx11core/tags.txt b/basis/windows/directx/d3dx11core/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx11core/tags.txt +++ b/basis/windows/directx/d3dx11core/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx11tex/platforms.txt b/basis/windows/directx/d3dx11tex/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx11tex/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx11tex/tags.txt b/basis/windows/directx/d3dx11tex/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx11tex/tags.txt +++ b/basis/windows/directx/d3dx11tex/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx9/platforms.txt b/basis/windows/directx/d3dx9/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx9/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx9/tags.txt b/basis/windows/directx/d3dx9/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx9/tags.txt +++ b/basis/windows/directx/d3dx9/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx9anim/platforms.txt b/basis/windows/directx/d3dx9anim/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx9anim/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx9anim/tags.txt b/basis/windows/directx/d3dx9anim/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx9anim/tags.txt +++ b/basis/windows/directx/d3dx9anim/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx9core/platforms.txt b/basis/windows/directx/d3dx9core/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx9core/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx9core/tags.txt b/basis/windows/directx/d3dx9core/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx9core/tags.txt +++ b/basis/windows/directx/d3dx9core/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx9effect/platforms.txt b/basis/windows/directx/d3dx9effect/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx9effect/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx9effect/tags.txt b/basis/windows/directx/d3dx9effect/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx9effect/tags.txt +++ b/basis/windows/directx/d3dx9effect/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx9math/platforms.txt b/basis/windows/directx/d3dx9math/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx9math/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx9math/tags.txt b/basis/windows/directx/d3dx9math/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx9math/tags.txt +++ b/basis/windows/directx/d3dx9math/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx9mesh/platforms.txt b/basis/windows/directx/d3dx9mesh/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx9mesh/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx9mesh/tags.txt b/basis/windows/directx/d3dx9mesh/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx9mesh/tags.txt +++ b/basis/windows/directx/d3dx9mesh/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx9shader/platforms.txt b/basis/windows/directx/d3dx9shader/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx9shader/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx9shader/tags.txt b/basis/windows/directx/d3dx9shader/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx9shader/tags.txt +++ b/basis/windows/directx/d3dx9shader/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx9shape/platforms.txt b/basis/windows/directx/d3dx9shape/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx9shape/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx9shape/tags.txt b/basis/windows/directx/d3dx9shape/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx9shape/tags.txt +++ b/basis/windows/directx/d3dx9shape/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx9tex/platforms.txt b/basis/windows/directx/d3dx9tex/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx9tex/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx9tex/tags.txt b/basis/windows/directx/d3dx9tex/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx9tex/tags.txt +++ b/basis/windows/directx/d3dx9tex/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/d3dx9xof/platforms.txt b/basis/windows/directx/d3dx9xof/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/d3dx9xof/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/d3dx9xof/tags.txt b/basis/windows/directx/d3dx9xof/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/d3dx9xof/tags.txt +++ b/basis/windows/directx/d3dx9xof/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/dcommon/platforms.txt b/basis/windows/directx/dcommon/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/dcommon/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/dcommon/tags.txt b/basis/windows/directx/dcommon/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/dcommon/tags.txt +++ b/basis/windows/directx/dcommon/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/dinput/constants/platforms.txt b/basis/windows/directx/dinput/constants/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/dinput/constants/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/dinput/constants/tags.txt b/basis/windows/directx/dinput/constants/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/directx/dinput/constants/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/directx/dinput/platforms.txt b/basis/windows/directx/dinput/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/dinput/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/dinput/tags.txt b/basis/windows/directx/dinput/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/dinput/tags.txt +++ b/basis/windows/directx/dinput/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/dwrite/platforms.txt b/basis/windows/directx/dwrite/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/dwrite/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/dwrite/tags.txt b/basis/windows/directx/dwrite/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/dwrite/tags.txt +++ b/basis/windows/directx/dwrite/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/dxfile/platforms.txt b/basis/windows/directx/dxfile/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/dxfile/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/dxfile/tags.txt b/basis/windows/directx/dxfile/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/dxfile/tags.txt +++ b/basis/windows/directx/dxfile/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/dxgi/platforms.txt b/basis/windows/directx/dxgi/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/dxgi/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/dxgi/tags.txt b/basis/windows/directx/dxgi/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/dxgi/tags.txt +++ b/basis/windows/directx/dxgi/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/dxgiformat/platforms.txt b/basis/windows/directx/dxgiformat/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/dxgiformat/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/dxgiformat/tags.txt b/basis/windows/directx/dxgiformat/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/dxgiformat/tags.txt +++ b/basis/windows/directx/dxgiformat/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/dxgitype/platforms.txt b/basis/windows/directx/dxgitype/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/dxgitype/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/dxgitype/tags.txt b/basis/windows/directx/dxgitype/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/dxgitype/tags.txt +++ b/basis/windows/directx/dxgitype/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/x3daudio/platforms.txt b/basis/windows/directx/x3daudio/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/x3daudio/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/x3daudio/tags.txt b/basis/windows/directx/x3daudio/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/x3daudio/tags.txt +++ b/basis/windows/directx/x3daudio/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/xact3/platforms.txt b/basis/windows/directx/xact3/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/xact3/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/xact3/tags.txt b/basis/windows/directx/xact3/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/xact3/tags.txt +++ b/basis/windows/directx/xact3/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/xapo/platforms.txt b/basis/windows/directx/xapo/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/xapo/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/xapo/tags.txt b/basis/windows/directx/xapo/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/xapo/tags.txt +++ b/basis/windows/directx/xapo/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/xapofx/platforms.txt b/basis/windows/directx/xapofx/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/xapofx/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/xapofx/tags.txt b/basis/windows/directx/xapofx/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/xapofx/tags.txt +++ b/basis/windows/directx/xapofx/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/xaudio2/platforms.txt b/basis/windows/directx/xaudio2/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/xaudio2/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/xaudio2/tags.txt b/basis/windows/directx/xaudio2/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/xaudio2/tags.txt +++ b/basis/windows/directx/xaudio2/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/xaudio2fx/platforms.txt b/basis/windows/directx/xaudio2fx/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/xaudio2fx/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/xaudio2fx/tags.txt b/basis/windows/directx/xaudio2fx/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/xaudio2fx/tags.txt +++ b/basis/windows/directx/xaudio2fx/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/directx/xinput/platforms.txt b/basis/windows/directx/xinput/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/directx/xinput/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/directx/xinput/tags.txt b/basis/windows/directx/xinput/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/directx/xinput/tags.txt +++ b/basis/windows/directx/xinput/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/dragdrop-listener/platforms.txt b/basis/windows/dragdrop-listener/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/dragdrop-listener/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/dragdrop-listener/tags.txt b/basis/windows/dragdrop-listener/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/dragdrop-listener/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/dwmapi/platforms.txt b/basis/windows/dwmapi/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/dwmapi/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/dwmapi/tags.txt b/basis/windows/dwmapi/tags.txt index 43bc035447..8e1a55995e 100755 --- a/basis/windows/dwmapi/tags.txt +++ b/basis/windows/dwmapi/tags.txt @@ -1,2 +1 @@ windows -unportable diff --git a/basis/windows/errors/platforms.txt b/basis/windows/errors/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/errors/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/errors/tags.txt b/basis/windows/errors/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/errors/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/fonts/platforms.txt b/basis/windows/fonts/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/fonts/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/fonts/tags.txt b/basis/windows/fonts/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/fonts/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/gdi32/platforms.txt b/basis/windows/gdi32/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/gdi32/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/gdi32/tags.txt b/basis/windows/gdi32/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/gdi32/tags.txt +++ b/basis/windows/gdi32/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/kernel32/platforms.txt b/basis/windows/kernel32/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/kernel32/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/kernel32/tags.txt b/basis/windows/kernel32/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/kernel32/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/messages/platforms.txt b/basis/windows/messages/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/messages/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/messages/tags.txt b/basis/windows/messages/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/messages/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/nt/platforms.txt b/basis/windows/nt/platforms.txt new file mode 100644 index 0000000000..205e64323d --- /dev/null +++ b/basis/windows/nt/platforms.txt @@ -0,0 +1 @@ +winnt diff --git a/basis/windows/nt/tags.txt b/basis/windows/nt/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/nt/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/offscreen/platforms.txt b/basis/windows/offscreen/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/offscreen/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/offscreen/tags.txt b/basis/windows/offscreen/tags.txt deleted file mode 100755 index 6abe115b12..0000000000 --- a/basis/windows/offscreen/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/ole32/platforms.txt b/basis/windows/ole32/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/ole32/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/ole32/tags.txt b/basis/windows/ole32/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/ole32/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/opengl32/platforms.txt b/basis/windows/opengl32/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/opengl32/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/opengl32/tags.txt b/basis/windows/opengl32/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/opengl32/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/platforms.txt b/basis/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/psapi/platforms.txt b/basis/windows/psapi/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/psapi/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/psapi/tags.txt b/basis/windows/psapi/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/psapi/tags.txt +++ b/basis/windows/psapi/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/shell32/platforms.txt b/basis/windows/shell32/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/shell32/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/shell32/tags.txt b/basis/windows/shell32/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/shell32/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/tags.txt b/basis/windows/tags.txt index 2320bdd648..bb863cf9a0 100755 --- a/basis/windows/tags.txt +++ b/basis/windows/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/time/platforms.txt b/basis/windows/time/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/time/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/time/tags.txt b/basis/windows/time/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/time/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/types/platforms.txt b/basis/windows/types/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/types/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/types/tags.txt b/basis/windows/types/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/types/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/uniscribe/platforms.txt b/basis/windows/uniscribe/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/uniscribe/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/uniscribe/tags.txt b/basis/windows/uniscribe/tags.txt deleted file mode 100755 index 6abe115b12..0000000000 --- a/basis/windows/uniscribe/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/user32/platforms.txt b/basis/windows/user32/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/user32/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/user32/tags.txt b/basis/windows/user32/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/user32/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/windows/usp10/platforms.txt b/basis/windows/usp10/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/usp10/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/usp10/tags.txt b/basis/windows/usp10/tags.txt index 2320bdd648..bb863cf9a0 100644 --- a/basis/windows/usp10/tags.txt +++ b/basis/windows/usp10/tags.txt @@ -1,2 +1 @@ -unportable bindings diff --git a/basis/windows/winsock/platforms.txt b/basis/windows/winsock/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/basis/windows/winsock/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/basis/windows/winsock/tags.txt b/basis/windows/winsock/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/windows/winsock/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/x11/io/unix/platforms.txt b/basis/x11/io/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/x11/io/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/x11/io/unix/tags.txt b/basis/x11/io/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/x11/io/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/basis/x11/windows/platforms.txt b/basis/x11/windows/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/basis/x11/windows/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/basis/x11/windows/tags.txt b/basis/x11/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/basis/x11/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/core/vocabs/loader/loader.factor b/core/vocabs/loader/loader.factor index 2c0f67641d..67d7d7677d 100644 --- a/core/vocabs/loader/loader.factor +++ b/core/vocabs/loader/loader.factor @@ -99,6 +99,11 @@ PRIVATE> SYMBOL: blacklist +! Defined by vocabs.metadata +SYMBOL: check-vocab-hook + +check-vocab-hook [ [ drop ] ] initialize + diff --git a/core/vocabs/loader/test/a/a.factor b/core/vocabs/loader/test/a/a.factor index 03a2f8a091..18ed045936 100644 --- a/core/vocabs/loader/test/a/a.factor +++ b/core/vocabs/loader/test/a/a.factor @@ -3,7 +3,7 @@ IN: vocabs.loader.test.a << global [ "count-me" inc ] bind >> -: v-l-t-a-hello 4 ; +: v-l-t-a-hello ( -- a ) 4 ; : byebye v-l-t-a-hello ; diff --git a/core/vocabs/loader/test/a/tags.txt b/core/vocabs/loader/test/a/tags.txt index 6bf68304bb..5d77766703 100644 --- a/core/vocabs/loader/test/a/tags.txt +++ b/core/vocabs/loader/test/a/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/core/vocabs/loader/test/b/tags.txt b/core/vocabs/loader/test/b/tags.txt index 6bf68304bb..5d77766703 100644 --- a/core/vocabs/loader/test/b/tags.txt +++ b/core/vocabs/loader/test/b/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/core/vocabs/loader/test/c/tags.txt b/core/vocabs/loader/test/c/tags.txt index 6bf68304bb..5d77766703 100644 --- a/core/vocabs/loader/test/c/tags.txt +++ b/core/vocabs/loader/test/c/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/core/vocabs/loader/test/d/tags.txt b/core/vocabs/loader/test/d/tags.txt index 6bf68304bb..5d77766703 100644 --- a/core/vocabs/loader/test/d/tags.txt +++ b/core/vocabs/loader/test/d/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/core/vocabs/loader/test/e/tags.txt b/core/vocabs/loader/test/e/tags.txt index 6bf68304bb..5d77766703 100644 --- a/core/vocabs/loader/test/e/tags.txt +++ b/core/vocabs/loader/test/e/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/core/vocabs/loader/test/f/tags.txt b/core/vocabs/loader/test/f/tags.txt index 6bf68304bb..5d77766703 100644 --- a/core/vocabs/loader/test/f/tags.txt +++ b/core/vocabs/loader/test/f/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/core/vocabs/loader/test/g/tags.txt b/core/vocabs/loader/test/g/tags.txt index 6bf68304bb..5d77766703 100644 --- a/core/vocabs/loader/test/g/tags.txt +++ b/core/vocabs/loader/test/g/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/core/vocabs/loader/test/h/tags.txt b/core/vocabs/loader/test/h/tags.txt index 6bf68304bb..5d77766703 100644 --- a/core/vocabs/loader/test/h/tags.txt +++ b/core/vocabs/loader/test/h/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/core/vocabs/loader/test/i/tags.txt b/core/vocabs/loader/test/i/tags.txt index 6bf68304bb..5d77766703 100644 --- a/core/vocabs/loader/test/i/tags.txt +++ b/core/vocabs/loader/test/i/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/core/vocabs/loader/test/j/tags.txt b/core/vocabs/loader/test/j/tags.txt index 6bf68304bb..5d77766703 100644 --- a/core/vocabs/loader/test/j/tags.txt +++ b/core/vocabs/loader/test/j/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/core/vocabs/loader/test/k/tags.txt b/core/vocabs/loader/test/k/tags.txt index 6bf68304bb..5d77766703 100644 --- a/core/vocabs/loader/test/k/tags.txt +++ b/core/vocabs/loader/test/k/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/core/vocabs/loader/test/l/tags.txt b/core/vocabs/loader/test/l/tags.txt index 6bf68304bb..5d77766703 100644 --- a/core/vocabs/loader/test/l/tags.txt +++ b/core/vocabs/loader/test/l/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/extra/couchdb/tags.txt b/extra/couchdb/tags.txt index 6bf68304bb..5d77766703 100644 --- a/extra/couchdb/tags.txt +++ b/extra/couchdb/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/extra/curses/ffi/platforms.txt b/extra/curses/ffi/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/extra/curses/ffi/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/extra/curses/ffi/tags.txt b/extra/curses/ffi/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/curses/ffi/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/extra/curses/platforms.txt b/extra/curses/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/extra/curses/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/extra/curses/tags.txt b/extra/curses/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/curses/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/extra/ecdsa/tags.txt b/extra/ecdsa/tags.txt index 6bf68304bb..5d77766703 100644 --- a/extra/ecdsa/tags.txt +++ b/extra/ecdsa/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/extra/io/serial/tags.txt b/extra/io/serial/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/io/serial/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/extra/io/serial/unix/bsd/platforms.txt b/extra/io/serial/unix/bsd/platforms.txt new file mode 100644 index 0000000000..df796f15d4 --- /dev/null +++ b/extra/io/serial/unix/bsd/platforms.txt @@ -0,0 +1 @@ +bsd diff --git a/extra/io/serial/unix/bsd/tags.txt b/extra/io/serial/unix/bsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/io/serial/unix/bsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/extra/io/serial/unix/linux/platforms.txt b/extra/io/serial/unix/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/extra/io/serial/unix/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/extra/io/serial/unix/linux/tags.txt b/extra/io/serial/unix/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/io/serial/unix/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/extra/io/serial/unix/platforms.txt b/extra/io/serial/unix/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/extra/io/serial/unix/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/extra/io/serial/unix/tags.txt b/extra/io/serial/unix/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/io/serial/unix/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/extra/io/serial/unix/termios/bsd/platforms.txt b/extra/io/serial/unix/termios/bsd/platforms.txt new file mode 100644 index 0000000000..df796f15d4 --- /dev/null +++ b/extra/io/serial/unix/termios/bsd/platforms.txt @@ -0,0 +1 @@ +bsd diff --git a/extra/io/serial/unix/termios/bsd/tags.txt b/extra/io/serial/unix/termios/bsd/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/io/serial/unix/termios/bsd/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/extra/io/serial/unix/termios/linux/platforms.txt b/extra/io/serial/unix/termios/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/extra/io/serial/unix/termios/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/extra/io/serial/unix/termios/linux/tags.txt b/extra/io/serial/unix/termios/linux/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/io/serial/unix/termios/linux/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/extra/io/serial/unix/termios/platforms.txt b/extra/io/serial/unix/termios/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/extra/io/serial/unix/termios/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/extra/io/serial/unix/termios/tags.txt b/extra/io/serial/unix/termios/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/io/serial/unix/termios/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/extra/io/serial/windows/platforms.txt b/extra/io/serial/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/extra/io/serial/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/extra/io/serial/windows/tags.txt b/extra/io/serial/windows/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/io/serial/windows/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/extra/libusb/platforms.txt b/extra/libusb/platforms.txt new file mode 100644 index 0000000000..509143d863 --- /dev/null +++ b/extra/libusb/platforms.txt @@ -0,0 +1 @@ +unix diff --git a/extra/libusb/tags.txt b/extra/libusb/tags.txt index bf2a35f15b..bb863cf9a0 100644 --- a/extra/libusb/tags.txt +++ b/extra/libusb/tags.txt @@ -1,2 +1 @@ bindings -unportable diff --git a/extra/llvm/core/tags.txt b/extra/llvm/core/tags.txt index 6bf68304bb..5d77766703 100644 --- a/extra/llvm/core/tags.txt +++ b/extra/llvm/core/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/extra/llvm/engine/tags.txt b/extra/llvm/engine/tags.txt index 6bf68304bb..5d77766703 100644 --- a/extra/llvm/engine/tags.txt +++ b/extra/llvm/engine/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/extra/llvm/invoker/tags.txt b/extra/llvm/invoker/tags.txt index 6bf68304bb..5d77766703 100644 --- a/extra/llvm/invoker/tags.txt +++ b/extra/llvm/invoker/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/extra/llvm/jit/tags.txt b/extra/llvm/jit/tags.txt index 6bf68304bb..5d77766703 100644 --- a/extra/llvm/jit/tags.txt +++ b/extra/llvm/jit/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/extra/llvm/reader/tags.txt b/extra/llvm/reader/tags.txt index 6bf68304bb..5d77766703 100644 --- a/extra/llvm/reader/tags.txt +++ b/extra/llvm/reader/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/extra/llvm/tags.txt b/extra/llvm/tags.txt index bf2a35f15b..a9d28becd8 100644 --- a/extra/llvm/tags.txt +++ b/extra/llvm/tags.txt @@ -1,2 +1,2 @@ bindings -unportable +untested diff --git a/extra/llvm/types/tags.txt b/extra/llvm/types/tags.txt index 6bf68304bb..5d77766703 100644 --- a/extra/llvm/types/tags.txt +++ b/extra/llvm/types/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/extra/llvm/wrappers/tags.txt b/extra/llvm/wrappers/tags.txt index 6bf68304bb..5d77766703 100644 --- a/extra/llvm/wrappers/tags.txt +++ b/extra/llvm/wrappers/tags.txt @@ -1 +1 @@ -unportable +untested diff --git a/extra/merger/platforms.txt b/extra/merger/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/extra/merger/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/extra/merger/tags.txt b/extra/merger/tags.txt deleted file mode 100644 index c80b8b4fe1..0000000000 --- a/extra/merger/tags.txt +++ /dev/null @@ -1,2 +0,0 @@ -unportable - diff --git a/extra/openal/alut/macosx/platforms.txt b/extra/openal/alut/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/extra/openal/alut/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/extra/openal/alut/macosx/tags.txt b/extra/openal/alut/macosx/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/openal/alut/macosx/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/extra/qtkit/platforms.txt b/extra/qtkit/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/extra/qtkit/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/extra/qtkit/tags.txt b/extra/qtkit/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/qtkit/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable diff --git a/extra/webkit-demo/platforms.txt b/extra/webkit-demo/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/extra/webkit-demo/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/extra/webkit-demo/tags.txt b/extra/webkit-demo/tags.txt deleted file mode 100644 index 6bf68304bb..0000000000 --- a/extra/webkit-demo/tags.txt +++ /dev/null @@ -1 +0,0 @@ -unportable From c3f4bcb616140027d10326794ce5eb3aa4235785 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 20 Feb 2010 13:31:09 +1300 Subject: [PATCH 60/62] Fix load errors exposed by platforms.txt change --- basis/cocoa/callbacks/callbacks.factor | 4 ++-- basis/io/backend/unix/multiplexers/select/select.factor | 7 ++++--- basis/unix/utmpx/macosx/macosx.factor | 2 +- basis/unix/utmpx/utmpx.factor | 6 ++++-- extra/io/serial/unix/unix.factor | 4 ++-- extra/qtkit/qtkit.factor | 5 +++-- 6 files changed, 16 insertions(+), 12 deletions(-) diff --git a/basis/cocoa/callbacks/callbacks.factor b/basis/cocoa/callbacks/callbacks.factor index e1ec43f1dc..87b5f628a9 100644 --- a/basis/cocoa/callbacks/callbacks.factor +++ b/basis/cocoa/callbacks/callbacks.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2005, 2006 Kevin Reid. ! See http://factorcode.org/license.txt for BSD license. -USING: assocs kernel namespaces cocoa cocoa.classes -cocoa.subclassing debugger ; +USING: alien.c-types assocs kernel namespaces cocoa +cocoa.classes cocoa.runtime cocoa.subclassing debugger ; IN: cocoa.callbacks SYMBOL: callbacks diff --git a/basis/io/backend/unix/multiplexers/select/select.factor b/basis/io/backend/unix/multiplexers/select/select.factor index f2d1a3a3b7..5a3dab4dcc 100644 --- a/basis/io/backend/unix/multiplexers/select/select.factor +++ b/basis/io/backend/unix/multiplexers/select/select.factor @@ -1,8 +1,9 @@ ! Copyright (C) 2004, 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: alien.c-types kernel bit-arrays sequences assocs unix -math namespaces accessors math.order locals unix.time fry -io.ports io.backend.unix io.backend.unix.multiplexers ; +USING: alien.c-types kernel bit-arrays sequences assocs math +namespaces accessors math.order locals fry io.ports +io.backend.unix io.backend.unix.multiplexers unix unix.ffi +unix.time ; IN: io.backend.unix.multiplexers.select TUPLE: select-mx < mx read-fdset write-fdset ; diff --git a/basis/unix/utmpx/macosx/macosx.factor b/basis/unix/utmpx/macosx/macosx.factor index 92a0d9e3a4..faae29ffa4 100644 --- a/basis/unix/utmpx/macosx/macosx.factor +++ b/basis/unix/utmpx/macosx/macosx.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2008 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. -USING: alien.syntax unix.bsd.macosx ; +USING: alien.syntax unix.ffi.bsd.macosx ; IN: unix.utmpx.macosx ! empty diff --git a/basis/unix/utmpx/utmpx.factor b/basis/unix/utmpx/utmpx.factor index 6083776fc6..78556ab225 100644 --- a/basis/unix/utmpx/utmpx.factor +++ b/basis/unix/utmpx/utmpx.factor @@ -2,8 +2,8 @@ ! See http://factorcode.org/license.txt for BSD license. USING: alien.c-types alien.data alien.syntax combinators continuations io.encodings.string io.encodings.utf8 kernel -sequences strings unix calendar system accessors unix.time -calendar.unix vocabs.loader classes.struct ; +sequences strings calendar system accessors unix unix.time +unix.ffi calendar.unix vocabs.loader classes.struct ; IN: unix.utmpx CONSTANT: EMPTY 0 @@ -19,6 +19,8 @@ CONSTANT: ACCOUNTING 9 CONSTANT: SIGNATURE 10 CONSTANT: SHUTDOWN_TIME 11 +C-TYPE: utmpx + FUNCTION: void setutxent ( ) ; FUNCTION: void endutxent ( ) ; FUNCTION: utmpx* getutxent ( ) ; diff --git a/extra/io/serial/unix/unix.factor b/extra/io/serial/unix/unix.factor index 8ee115ca45..6c0de55ec8 100644 --- a/extra/io/serial/unix/unix.factor +++ b/extra/io/serial/unix/unix.factor @@ -2,8 +2,8 @@ ! See http://factorcode.org/license.txt for BSD license. USING: accessors alien.c-types alien.syntax alien.data classes.struct combinators io.ports io.streams.duplex -system kernel math math.bitwise vocabs.loader unix io.serial -io.serial.unix.termios io.backend.unix ; +system kernel math math.bitwise vocabs.loader io.serial +io.serial.unix.termios io.backend.unix unix unix.ffi ; IN: io.serial.unix << { diff --git a/extra/qtkit/qtkit.factor b/extra/qtkit/qtkit.factor index b573cd51ab..919e0d2d29 100644 --- a/extra/qtkit/qtkit.factor +++ b/extra/qtkit/qtkit.factor @@ -1,5 +1,6 @@ -USING: classes.struct cocoa cocoa.application cocoa.classes -cocoa.enumeration cocoa.plists core-foundation.strings kernel ; +USING: alien.c-types classes.struct cocoa cocoa.application +cocoa.classes cocoa.enumeration cocoa.plists core-foundation +core-foundation.strings kernel ; IN: qtkit STRUCT: QTTime From 1915b7e955787ea49a62f8dbe6acc7d7e241dcd5 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 20 Feb 2010 13:31:51 +1300 Subject: [PATCH 61/62] vocabs.loader.test.a: fix --- core/vocabs/loader/test/a/a.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/vocabs/loader/test/a/a.factor b/core/vocabs/loader/test/a/a.factor index 18ed045936..b1fa5aaed8 100644 --- a/core/vocabs/loader/test/a/a.factor +++ b/core/vocabs/loader/test/a/a.factor @@ -5,6 +5,6 @@ IN: vocabs.loader.test.a : v-l-t-a-hello ( -- a ) 4 ; -: byebye v-l-t-a-hello ; +: byebye ( -- a ) v-l-t-a-hello ; [ this is an error From 6e516789d5c8f9072347c846fd1e8ea8cbd75924 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 20 Feb 2010 13:41:33 +1300 Subject: [PATCH 62/62] continuations: add a throw-continue word for resumable errors, and change vocabs.metadata to throw a resumable error if the current platform is not supported --- basis/vocabs/metadata/metadata.factor | 17 +++++++++++------ core/compiler/units/units.factor | 3 +-- core/continuations/continuations-docs.factor | 12 ++++++++++-- core/continuations/continuations.factor | 3 +++ 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/basis/vocabs/metadata/metadata.factor b/basis/vocabs/metadata/metadata.factor index 10e4eac2a2..09ca012fcc 100644 --- a/basis/vocabs/metadata/metadata.factor +++ b/basis/vocabs/metadata/metadata.factor @@ -100,19 +100,24 @@ ERROR: bad-platform name ; [ [ name>> ] map ] dip dup vocab-platforms-path set-vocab-file-contents ; -: supported-platform? ( vocab -- ? ) - vocab-platforms [ t ] [ [ os swap class<= ] any? ] if-empty ; +: supported-platform? ( platforms -- ? ) + [ t ] [ [ os swap class<= ] any? ] if-empty ; : unportable? ( vocab -- ? ) { [ vocab-tags "untested" swap member? ] - [ supported-platform? not ] + [ vocab-platforms supported-platform? not ] } 1|| ; -ERROR: unsupported-platform vocab ; +TUPLE: unsupported-platform vocab requires ; + +: unsupported-platform ( vocab requires -- ) + \ unsupported-platform boa throw-continue ; M: unsupported-platform summary drop "Current operating system not supported by this vocabulary" ; -[ dup supported-platform? [ drop ] [ vocab-name unsupported-platform ] if ] -check-vocab-hook set-global +[ + dup vocab-platforms dup supported-platform? + [ 2drop ] [ [ vocab-name ] dip unsupported-platform ] if +] check-vocab-hook set-global diff --git a/core/compiler/units/units.factor b/core/compiler/units/units.factor index 9582ebadb6..b024ed2c65 100644 --- a/core/compiler/units/units.factor +++ b/core/compiler/units/units.factor @@ -12,8 +12,7 @@ SYMBOL: new-definitions TUPLE: redefine-error def ; : redefine-error ( definition -- ) - \ redefine-error boa - { { "Continue" t } } throw-restarts drop ; + \ redefine-error boa throw-continue ; condition ( error restarts cc -- condition ) : rethrow-restarts ( error restarts -- restart ) [ rethrow ] callcc1 2nip ; +: throw-continue ( error -- ) + { { "Continue" t } } throw-restarts drop ; + TUPLE: restart name obj continuation ; C: restart