diff --git a/extra/farkup/authors.txt b/basis/farkup/authors.txt
similarity index 100%
rename from extra/farkup/authors.txt
rename to basis/farkup/authors.txt
diff --git a/extra/farkup/farkup-docs.factor b/basis/farkup/farkup-docs.factor
similarity index 100%
rename from extra/farkup/farkup-docs.factor
rename to basis/farkup/farkup-docs.factor
diff --git a/extra/farkup/farkup-tests.factor b/basis/farkup/farkup-tests.factor
similarity index 98%
rename from extra/farkup/farkup-tests.factor
rename to basis/farkup/farkup-tests.factor
index 005e875d89..0f96934798 100644
--- a/extra/farkup/farkup-tests.factor
+++ b/basis/farkup/farkup-tests.factor
@@ -88,6 +88,8 @@ IN: farkup.tests
[ ] [ "[{}]" convert-farkup drop ] unit-test
+[ "
hello\n
" ] [ "[{hello}]" convert-farkup ] unit-test
+
[
"Feature comparison:\n
a | Factor | Java | Lisp |
Coolness | Yes | No | No |
Badass | Yes | No | No |
Enterprise | Yes | Yes | No |
Kosher | Yes | No | Yes |
"
] [ "Feature comparison:\n|a|Factor|Java|Lisp|\n|Coolness|Yes|No|No|\n|Badass|Yes|No|No|\n|Enterprise|Yes|Yes|No|\n|Kosher|Yes|No|Yes|\n" convert-farkup ] unit-test
diff --git a/extra/farkup/farkup.factor b/basis/farkup/farkup.factor
similarity index 100%
rename from extra/farkup/farkup.factor
rename to basis/farkup/farkup.factor
diff --git a/extra/farkup/summary.txt b/basis/farkup/summary.txt
similarity index 100%
rename from extra/farkup/summary.txt
rename to basis/farkup/summary.txt
diff --git a/extra/farkup/tags.txt b/basis/farkup/tags.txt
similarity index 100%
rename from extra/farkup/tags.txt
rename to basis/farkup/tags.txt
diff --git a/extra/furnace/actions/actions-tests.factor b/basis/furnace/actions/actions-tests.factor
similarity index 100%
rename from extra/furnace/actions/actions-tests.factor
rename to basis/furnace/actions/actions-tests.factor
diff --git a/extra/furnace/actions/actions.factor b/basis/furnace/actions/actions.factor
similarity index 100%
rename from extra/furnace/actions/actions.factor
rename to basis/furnace/actions/actions.factor
diff --git a/extra/furnace/alloy/alloy.factor b/basis/furnace/alloy/alloy.factor
similarity index 100%
rename from extra/furnace/alloy/alloy.factor
rename to basis/furnace/alloy/alloy.factor
diff --git a/extra/furnace/auth/auth-tests.factor b/basis/furnace/auth/auth-tests.factor
similarity index 100%
rename from extra/furnace/auth/auth-tests.factor
rename to basis/furnace/auth/auth-tests.factor
diff --git a/extra/furnace/auth/auth.factor b/basis/furnace/auth/auth.factor
similarity index 100%
rename from extra/furnace/auth/auth.factor
rename to basis/furnace/auth/auth.factor
diff --git a/extra/furnace/auth/basic/basic.factor b/basis/furnace/auth/basic/basic.factor
similarity index 100%
rename from extra/furnace/auth/basic/basic.factor
rename to basis/furnace/auth/basic/basic.factor
diff --git a/extra/furnace/auth/boilerplate.xml b/basis/furnace/auth/boilerplate.xml
similarity index 100%
rename from extra/furnace/auth/boilerplate.xml
rename to basis/furnace/auth/boilerplate.xml
diff --git a/extra/furnace/auth/features/deactivate-user/deactivate-user.factor b/basis/furnace/auth/features/deactivate-user/deactivate-user.factor
similarity index 100%
rename from extra/furnace/auth/features/deactivate-user/deactivate-user.factor
rename to basis/furnace/auth/features/deactivate-user/deactivate-user.factor
diff --git a/extra/furnace/auth/features/edit-profile/edit-profile-tests.factor b/basis/furnace/auth/features/edit-profile/edit-profile-tests.factor
similarity index 100%
rename from extra/furnace/auth/features/edit-profile/edit-profile-tests.factor
rename to basis/furnace/auth/features/edit-profile/edit-profile-tests.factor
diff --git a/extra/furnace/auth/features/edit-profile/edit-profile.factor b/basis/furnace/auth/features/edit-profile/edit-profile.factor
similarity index 100%
rename from extra/furnace/auth/features/edit-profile/edit-profile.factor
rename to basis/furnace/auth/features/edit-profile/edit-profile.factor
diff --git a/extra/furnace/auth/features/edit-profile/edit-profile.xml b/basis/furnace/auth/features/edit-profile/edit-profile.xml
similarity index 100%
rename from extra/furnace/auth/features/edit-profile/edit-profile.xml
rename to basis/furnace/auth/features/edit-profile/edit-profile.xml
diff --git a/extra/furnace/auth/features/recover-password/recover-1.xml b/basis/furnace/auth/features/recover-password/recover-1.xml
similarity index 100%
rename from extra/furnace/auth/features/recover-password/recover-1.xml
rename to basis/furnace/auth/features/recover-password/recover-1.xml
diff --git a/extra/furnace/auth/features/recover-password/recover-2.xml b/basis/furnace/auth/features/recover-password/recover-2.xml
similarity index 100%
rename from extra/furnace/auth/features/recover-password/recover-2.xml
rename to basis/furnace/auth/features/recover-password/recover-2.xml
diff --git a/extra/furnace/auth/features/recover-password/recover-3.xml b/basis/furnace/auth/features/recover-password/recover-3.xml
similarity index 100%
rename from extra/furnace/auth/features/recover-password/recover-3.xml
rename to basis/furnace/auth/features/recover-password/recover-3.xml
diff --git a/extra/furnace/auth/features/recover-password/recover-4.xml b/basis/furnace/auth/features/recover-password/recover-4.xml
similarity index 100%
rename from extra/furnace/auth/features/recover-password/recover-4.xml
rename to basis/furnace/auth/features/recover-password/recover-4.xml
diff --git a/extra/furnace/auth/features/recover-password/recover-password-tests.factor b/basis/furnace/auth/features/recover-password/recover-password-tests.factor
similarity index 100%
rename from extra/furnace/auth/features/recover-password/recover-password-tests.factor
rename to basis/furnace/auth/features/recover-password/recover-password-tests.factor
diff --git a/extra/furnace/auth/features/recover-password/recover-password.factor b/basis/furnace/auth/features/recover-password/recover-password.factor
similarity index 100%
rename from extra/furnace/auth/features/recover-password/recover-password.factor
rename to basis/furnace/auth/features/recover-password/recover-password.factor
diff --git a/extra/furnace/auth/features/registration/register.xml b/basis/furnace/auth/features/registration/register.xml
similarity index 100%
rename from extra/furnace/auth/features/registration/register.xml
rename to basis/furnace/auth/features/registration/register.xml
diff --git a/extra/furnace/auth/features/registration/registration-tests.factor b/basis/furnace/auth/features/registration/registration-tests.factor
similarity index 100%
rename from extra/furnace/auth/features/registration/registration-tests.factor
rename to basis/furnace/auth/features/registration/registration-tests.factor
diff --git a/extra/furnace/auth/features/registration/registration.factor b/basis/furnace/auth/features/registration/registration.factor
similarity index 100%
rename from extra/furnace/auth/features/registration/registration.factor
rename to basis/furnace/auth/features/registration/registration.factor
diff --git a/extra/furnace/auth/login/login-tests.factor b/basis/furnace/auth/login/login-tests.factor
similarity index 100%
rename from extra/furnace/auth/login/login-tests.factor
rename to basis/furnace/auth/login/login-tests.factor
diff --git a/extra/furnace/auth/login/login.factor b/basis/furnace/auth/login/login.factor
similarity index 100%
rename from extra/furnace/auth/login/login.factor
rename to basis/furnace/auth/login/login.factor
diff --git a/extra/furnace/auth/login/login.xml b/basis/furnace/auth/login/login.xml
similarity index 100%
rename from extra/furnace/auth/login/login.xml
rename to basis/furnace/auth/login/login.xml
diff --git a/extra/furnace/auth/login/permits/permits.factor b/basis/furnace/auth/login/permits/permits.factor
similarity index 100%
rename from extra/furnace/auth/login/permits/permits.factor
rename to basis/furnace/auth/login/permits/permits.factor
diff --git a/extra/furnace/auth/providers/assoc/assoc-tests.factor b/basis/furnace/auth/providers/assoc/assoc-tests.factor
similarity index 100%
rename from extra/furnace/auth/providers/assoc/assoc-tests.factor
rename to basis/furnace/auth/providers/assoc/assoc-tests.factor
diff --git a/extra/furnace/auth/providers/assoc/assoc.factor b/basis/furnace/auth/providers/assoc/assoc.factor
similarity index 100%
rename from extra/furnace/auth/providers/assoc/assoc.factor
rename to basis/furnace/auth/providers/assoc/assoc.factor
diff --git a/extra/furnace/auth/providers/db/db-tests.factor b/basis/furnace/auth/providers/db/db-tests.factor
similarity index 100%
rename from extra/furnace/auth/providers/db/db-tests.factor
rename to basis/furnace/auth/providers/db/db-tests.factor
diff --git a/extra/furnace/auth/providers/db/db.factor b/basis/furnace/auth/providers/db/db.factor
similarity index 100%
rename from extra/furnace/auth/providers/db/db.factor
rename to basis/furnace/auth/providers/db/db.factor
diff --git a/extra/furnace/auth/providers/null/null.factor b/basis/furnace/auth/providers/null/null.factor
similarity index 100%
rename from extra/furnace/auth/providers/null/null.factor
rename to basis/furnace/auth/providers/null/null.factor
diff --git a/extra/furnace/auth/providers/providers.factor b/basis/furnace/auth/providers/providers.factor
similarity index 100%
rename from extra/furnace/auth/providers/providers.factor
rename to basis/furnace/auth/providers/providers.factor
diff --git a/extra/furnace/boilerplate/boilerplate.factor b/basis/furnace/boilerplate/boilerplate.factor
similarity index 100%
rename from extra/furnace/boilerplate/boilerplate.factor
rename to basis/furnace/boilerplate/boilerplate.factor
diff --git a/extra/furnace/cache/cache.factor b/basis/furnace/cache/cache.factor
similarity index 81%
rename from extra/furnace/cache/cache.factor
rename to basis/furnace/cache/cache.factor
index 68786a55ab..a5308c171e 100644
--- a/extra/furnace/cache/cache.factor
+++ b/basis/furnace/cache/cache.factor
@@ -1,7 +1,7 @@
! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: kernel accessors math.intervals
-calendar alarms fry
+system calendar alarms fry
random db db.tuples db.types
http.server.filters ;
IN: furnace.cache
@@ -14,7 +14,7 @@ TUPLE: server-state id expires ;
server-state f
{
{ "id" "ID" +random-id+ system-random-generator }
- { "expires" "EXPIRES" TIMESTAMP +not-null+ }
+ { "expires" "EXPIRES" BIG-INTEGER +not-null+ }
} define-persistent
: get-state ( id class -- state )
@@ -22,7 +22,7 @@ server-state f
: expire-state ( class -- )
new
- -1.0/0.0 now [a,b] >>expires
+ -1.0/0.0 millis [a,b] >>expires
delete-tuples ;
TUPLE: server-state-manager < filter-responder timeout ;
@@ -33,4 +33,4 @@ TUPLE: server-state-manager < filter-responder timeout ;
20 minutes >>timeout ; inline
: touch-state ( state manager -- )
- timeout>> hence >>expires drop ;
+ timeout>> hence timestamp>millis >>expires drop ;
diff --git a/extra/furnace/conversations/conversations.factor b/basis/furnace/conversations/conversations.factor
similarity index 100%
rename from extra/furnace/conversations/conversations.factor
rename to basis/furnace/conversations/conversations.factor
diff --git a/extra/furnace/db/db-tests.factor b/basis/furnace/db/db-tests.factor
similarity index 100%
rename from extra/furnace/db/db-tests.factor
rename to basis/furnace/db/db-tests.factor
diff --git a/extra/furnace/db/db.factor b/basis/furnace/db/db.factor
similarity index 100%
rename from extra/furnace/db/db.factor
rename to basis/furnace/db/db.factor
diff --git a/extra/furnace/furnace-tests.factor b/basis/furnace/furnace-tests.factor
similarity index 100%
rename from extra/furnace/furnace-tests.factor
rename to basis/furnace/furnace-tests.factor
diff --git a/extra/furnace/furnace.factor b/basis/furnace/furnace.factor
similarity index 100%
rename from extra/furnace/furnace.factor
rename to basis/furnace/furnace.factor
diff --git a/extra/furnace/json/json.factor b/basis/furnace/json/json.factor
similarity index 100%
rename from extra/furnace/json/json.factor
rename to basis/furnace/json/json.factor
diff --git a/extra/furnace/redirection/redirection.factor b/basis/furnace/redirection/redirection.factor
similarity index 100%
rename from extra/furnace/redirection/redirection.factor
rename to basis/furnace/redirection/redirection.factor
diff --git a/extra/furnace/referrer/referrer.factor b/basis/furnace/referrer/referrer.factor
similarity index 67%
rename from extra/furnace/referrer/referrer.factor
rename to basis/furnace/referrer/referrer.factor
index 56777676fc..4cfd4bb6c6 100644
--- a/extra/furnace/referrer/referrer.factor
+++ b/basis/furnace/referrer/referrer.factor
@@ -1,6 +1,7 @@
-USING: accessors kernel
-http.server http.server.filters http.server.responses
-furnace ;
+! Copyright (C) 2008 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors kernel http.server http.server.filters
+http.server.responses furnace ;
IN: furnace.referrer
TUPLE: referrer-check < filter-responder quot ;
diff --git a/extra/furnace/scopes/scopes.factor b/basis/furnace/scopes/scopes.factor
similarity index 100%
rename from extra/furnace/scopes/scopes.factor
rename to basis/furnace/scopes/scopes.factor
diff --git a/extra/furnace/sessions/authors.txt b/basis/furnace/sessions/authors.txt
similarity index 100%
rename from extra/furnace/sessions/authors.txt
rename to basis/furnace/sessions/authors.txt
diff --git a/extra/furnace/sessions/sessions-tests.factor b/basis/furnace/sessions/sessions-tests.factor
similarity index 100%
rename from extra/furnace/sessions/sessions-tests.factor
rename to basis/furnace/sessions/sessions-tests.factor
diff --git a/extra/furnace/sessions/sessions.factor b/basis/furnace/sessions/sessions.factor
similarity index 100%
rename from extra/furnace/sessions/sessions.factor
rename to basis/furnace/sessions/sessions.factor
diff --git a/extra/furnace/syndication/syndication.factor b/basis/furnace/syndication/syndication.factor
similarity index 100%
rename from extra/furnace/syndication/syndication.factor
rename to basis/furnace/syndication/syndication.factor
diff --git a/extra/furnace/utilities/utilities.factor b/basis/furnace/utilities/utilities.factor
similarity index 100%
rename from extra/furnace/utilities/utilities.factor
rename to basis/furnace/utilities/utilities.factor
diff --git a/extra/globs/authors.txt b/basis/globs/authors.txt
similarity index 100%
rename from extra/globs/authors.txt
rename to basis/globs/authors.txt
diff --git a/extra/globs/globs-tests.factor b/basis/globs/globs-tests.factor
similarity index 100%
rename from extra/globs/globs-tests.factor
rename to basis/globs/globs-tests.factor
diff --git a/extra/globs/globs.factor b/basis/globs/globs.factor
similarity index 100%
rename from extra/globs/globs.factor
rename to basis/globs/globs.factor
diff --git a/extra/globs/summary.txt b/basis/globs/summary.txt
similarity index 100%
rename from extra/globs/summary.txt
rename to basis/globs/summary.txt
diff --git a/extra/html/components/components-tests.factor b/basis/html/components/components-tests.factor
similarity index 100%
rename from extra/html/components/components-tests.factor
rename to basis/html/components/components-tests.factor
diff --git a/extra/html/components/components.factor b/basis/html/components/components.factor
similarity index 100%
rename from extra/html/components/components.factor
rename to basis/html/components/components.factor
diff --git a/extra/html/elements/authors.txt b/basis/html/elements/authors.txt
similarity index 100%
rename from extra/html/elements/authors.txt
rename to basis/html/elements/authors.txt
diff --git a/extra/html/elements/elements-tests.factor b/basis/html/elements/elements-tests.factor
similarity index 100%
rename from extra/html/elements/elements-tests.factor
rename to basis/html/elements/elements-tests.factor
diff --git a/extra/html/elements/elements.factor b/basis/html/elements/elements.factor
similarity index 100%
rename from extra/html/elements/elements.factor
rename to basis/html/elements/elements.factor
diff --git a/extra/html/forms/forms-tests.factor b/basis/html/forms/forms-tests.factor
similarity index 100%
rename from extra/html/forms/forms-tests.factor
rename to basis/html/forms/forms-tests.factor
diff --git a/extra/html/forms/forms.factor b/basis/html/forms/forms.factor
similarity index 100%
rename from extra/html/forms/forms.factor
rename to basis/html/forms/forms.factor
diff --git a/extra/html/parser/analyzer/analyzer.factor b/basis/html/parser/analyzer/analyzer.factor
similarity index 100%
rename from extra/html/parser/analyzer/analyzer.factor
rename to basis/html/parser/analyzer/analyzer.factor
diff --git a/extra/html/parser/analyzer/authors.txt b/basis/html/parser/analyzer/authors.txt
similarity index 100%
rename from extra/html/parser/analyzer/authors.txt
rename to basis/html/parser/analyzer/authors.txt
diff --git a/extra/html/parser/authors.txt b/basis/html/parser/authors.txt
similarity index 100%
rename from extra/html/parser/authors.txt
rename to basis/html/parser/authors.txt
diff --git a/extra/html/parser/parser-tests.factor b/basis/html/parser/parser-tests.factor
similarity index 100%
rename from extra/html/parser/parser-tests.factor
rename to basis/html/parser/parser-tests.factor
diff --git a/extra/html/parser/parser.factor b/basis/html/parser/parser.factor
similarity index 100%
rename from extra/html/parser/parser.factor
rename to basis/html/parser/parser.factor
diff --git a/extra/html/parser/printer/authors.txt b/basis/html/parser/printer/authors.txt
similarity index 100%
rename from extra/html/parser/printer/authors.txt
rename to basis/html/parser/printer/authors.txt
diff --git a/extra/html/parser/printer/printer.factor b/basis/html/parser/printer/printer.factor
similarity index 100%
rename from extra/html/parser/printer/printer.factor
rename to basis/html/parser/printer/printer.factor
diff --git a/extra/html/parser/utils/authors.txt b/basis/html/parser/utils/authors.txt
similarity index 100%
rename from extra/html/parser/utils/authors.txt
rename to basis/html/parser/utils/authors.txt
diff --git a/extra/html/parser/utils/utils-tests.factor b/basis/html/parser/utils/utils-tests.factor
similarity index 100%
rename from extra/html/parser/utils/utils-tests.factor
rename to basis/html/parser/utils/utils-tests.factor
diff --git a/extra/html/parser/utils/utils.factor b/basis/html/parser/utils/utils.factor
similarity index 100%
rename from extra/html/parser/utils/utils.factor
rename to basis/html/parser/utils/utils.factor
diff --git a/extra/html/streams/authors.txt b/basis/html/streams/authors.txt
similarity index 100%
rename from extra/html/streams/authors.txt
rename to basis/html/streams/authors.txt
diff --git a/extra/html/streams/streams-tests.factor b/basis/html/streams/streams-tests.factor
similarity index 100%
rename from extra/html/streams/streams-tests.factor
rename to basis/html/streams/streams-tests.factor
diff --git a/extra/html/streams/streams.factor b/basis/html/streams/streams.factor
similarity index 100%
rename from extra/html/streams/streams.factor
rename to basis/html/streams/streams.factor
diff --git a/extra/html/streams/summary.txt b/basis/html/streams/summary.txt
similarity index 100%
rename from extra/html/streams/summary.txt
rename to basis/html/streams/summary.txt
diff --git a/extra/html/streams/tags.txt b/basis/html/streams/tags.txt
similarity index 100%
rename from extra/html/streams/tags.txt
rename to basis/html/streams/tags.txt
diff --git a/extra/html/templates/chloe/chloe-tests.factor b/basis/html/templates/chloe/chloe-tests.factor
similarity index 98%
rename from extra/html/templates/chloe/chloe-tests.factor
rename to basis/html/templates/chloe/chloe-tests.factor
index 4048836cfe..0305b738af 100644
--- a/extra/html/templates/chloe/chloe-tests.factor
+++ b/basis/html/templates/chloe/chloe-tests.factor
@@ -26,7 +26,7 @@ IN: html.templates.chloe.tests
"?>" split1 nip ; inline
: test-template ( name -- template )
- "resource:extra/html/templates/chloe/test/"
+ "resource:basis/html/templates/chloe/test/"
prepend ;
[ "Hello world" ] [
diff --git a/extra/html/templates/chloe/chloe.factor b/basis/html/templates/chloe/chloe.factor
similarity index 100%
rename from extra/html/templates/chloe/chloe.factor
rename to basis/html/templates/chloe/chloe.factor
diff --git a/extra/html/templates/chloe/syntax/syntax.factor b/basis/html/templates/chloe/syntax/syntax.factor
similarity index 100%
rename from extra/html/templates/chloe/syntax/syntax.factor
rename to basis/html/templates/chloe/syntax/syntax.factor
diff --git a/extra/html/templates/chloe/test/test1.xml b/basis/html/templates/chloe/test/test1.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test1.xml
rename to basis/html/templates/chloe/test/test1.xml
diff --git a/extra/html/templates/chloe/test/test10.xml b/basis/html/templates/chloe/test/test10.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test10.xml
rename to basis/html/templates/chloe/test/test10.xml
diff --git a/extra/html/templates/chloe/test/test11.xml b/basis/html/templates/chloe/test/test11.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test11.xml
rename to basis/html/templates/chloe/test/test11.xml
diff --git a/extra/html/templates/chloe/test/test12.xml b/basis/html/templates/chloe/test/test12.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test12.xml
rename to basis/html/templates/chloe/test/test12.xml
diff --git a/extra/html/templates/chloe/test/test2.xml b/basis/html/templates/chloe/test/test2.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test2.xml
rename to basis/html/templates/chloe/test/test2.xml
diff --git a/extra/html/templates/chloe/test/test3-aux.xml b/basis/html/templates/chloe/test/test3-aux.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test3-aux.xml
rename to basis/html/templates/chloe/test/test3-aux.xml
diff --git a/extra/html/templates/chloe/test/test3.xml b/basis/html/templates/chloe/test/test3.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test3.xml
rename to basis/html/templates/chloe/test/test3.xml
diff --git a/extra/html/templates/chloe/test/test4.xml b/basis/html/templates/chloe/test/test4.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test4.xml
rename to basis/html/templates/chloe/test/test4.xml
diff --git a/extra/html/templates/chloe/test/test5.xml b/basis/html/templates/chloe/test/test5.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test5.xml
rename to basis/html/templates/chloe/test/test5.xml
diff --git a/extra/html/templates/chloe/test/test6.xml b/basis/html/templates/chloe/test/test6.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test6.xml
rename to basis/html/templates/chloe/test/test6.xml
diff --git a/extra/html/templates/chloe/test/test7.xml b/basis/html/templates/chloe/test/test7.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test7.xml
rename to basis/html/templates/chloe/test/test7.xml
diff --git a/extra/html/templates/chloe/test/test8.xml b/basis/html/templates/chloe/test/test8.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test8.xml
rename to basis/html/templates/chloe/test/test8.xml
diff --git a/extra/html/templates/chloe/test/test9.xml b/basis/html/templates/chloe/test/test9.xml
similarity index 100%
rename from extra/html/templates/chloe/test/test9.xml
rename to basis/html/templates/chloe/test/test9.xml
diff --git a/extra/html/templates/fhtml/authors.txt b/basis/html/templates/fhtml/authors.txt
similarity index 100%
rename from extra/html/templates/fhtml/authors.txt
rename to basis/html/templates/fhtml/authors.txt
diff --git a/extra/html/templates/fhtml/fhtml-tests.factor b/basis/html/templates/fhtml/fhtml-tests.factor
similarity index 91%
rename from extra/html/templates/fhtml/fhtml-tests.factor
rename to basis/html/templates/fhtml/fhtml-tests.factor
index 43ea28fa55..b863087a92 100755
--- a/extra/html/templates/fhtml/fhtml-tests.factor
+++ b/basis/html/templates/fhtml/fhtml-tests.factor
@@ -4,7 +4,7 @@ tools.test sequences parser ;
IN: html.templates.fhtml.tests
: test-template ( path -- ? )
- "resource:extra/html/templates/fhtml/test/"
+ "resource:basis/html/templates/fhtml/test/"
prepend
[
".fhtml" append [ call-template ] with-string-writer
diff --git a/extra/html/templates/fhtml/fhtml.factor b/basis/html/templates/fhtml/fhtml.factor
similarity index 100%
rename from extra/html/templates/fhtml/fhtml.factor
rename to basis/html/templates/fhtml/fhtml.factor
diff --git a/extra/html/templates/fhtml/test/bug.fhtml b/basis/html/templates/fhtml/test/bug.fhtml
similarity index 100%
rename from extra/html/templates/fhtml/test/bug.fhtml
rename to basis/html/templates/fhtml/test/bug.fhtml
diff --git a/extra/html/templates/fhtml/test/bug.html b/basis/html/templates/fhtml/test/bug.html
similarity index 100%
rename from extra/html/templates/fhtml/test/bug.html
rename to basis/html/templates/fhtml/test/bug.html
diff --git a/extra/html/templates/fhtml/test/example.fhtml b/basis/html/templates/fhtml/test/example.fhtml
similarity index 100%
rename from extra/html/templates/fhtml/test/example.fhtml
rename to basis/html/templates/fhtml/test/example.fhtml
diff --git a/extra/html/templates/fhtml/test/example.html b/basis/html/templates/fhtml/test/example.html
similarity index 100%
rename from extra/html/templates/fhtml/test/example.html
rename to basis/html/templates/fhtml/test/example.html
diff --git a/extra/html/templates/fhtml/test/stack.fhtml b/basis/html/templates/fhtml/test/stack.fhtml
similarity index 100%
rename from extra/html/templates/fhtml/test/stack.fhtml
rename to basis/html/templates/fhtml/test/stack.fhtml
diff --git a/extra/html/templates/fhtml/test/stack.html b/basis/html/templates/fhtml/test/stack.html
similarity index 100%
rename from extra/html/templates/fhtml/test/stack.html
rename to basis/html/templates/fhtml/test/stack.html
diff --git a/extra/html/templates/templates.factor b/basis/html/templates/templates.factor
similarity index 100%
rename from extra/html/templates/templates.factor
rename to basis/html/templates/templates.factor
diff --git a/extra/http/authors.txt b/basis/http/authors.txt
similarity index 100%
rename from extra/http/authors.txt
rename to basis/http/authors.txt
diff --git a/extra/http/client/authors.txt b/basis/http/client/authors.txt
similarity index 100%
rename from extra/http/client/authors.txt
rename to basis/http/client/authors.txt
diff --git a/extra/http/client/client-tests.factor b/basis/http/client/client-tests.factor
similarity index 100%
rename from extra/http/client/client-tests.factor
rename to basis/http/client/client-tests.factor
diff --git a/extra/http/client/client.factor b/basis/http/client/client.factor
similarity index 98%
rename from extra/http/client/client.factor
rename to basis/http/client/client.factor
index 10b9206a51..ea1cfd9a4b 100755
--- a/extra/http/client/client.factor
+++ b/basis/http/client/client.factor
@@ -95,7 +95,7 @@ DEFER: (http-request)
SYMBOL: redirects
: redirect-url ( request url -- request )
- '[ , >url ensure-port derive-url ensure-port ] change-url ;
+ '[ , >url derive-url ensure-port ] change-url ;
: do-redirect ( response data -- response data )
over code>> 300 399 between? [
diff --git a/extra/http/client/summary.txt b/basis/http/client/summary.txt
similarity index 100%
rename from extra/http/client/summary.txt
rename to basis/http/client/summary.txt
diff --git a/extra/http/client/tags.txt b/basis/http/client/tags.txt
similarity index 100%
rename from extra/http/client/tags.txt
rename to basis/http/client/tags.txt
diff --git a/extra/http/http-tests.factor b/basis/http/http-tests.factor
similarity index 93%
rename from extra/http/http-tests.factor
rename to basis/http/http-tests.factor
index bbf8161dd7..40154e94ef 100755
--- a/extra/http/http-tests.factor
+++ b/basis/http/http-tests.factor
@@ -202,7 +202,7 @@ test-db [
add-quit-action
- "resource:extra/http/test" >>default
+ "resource:basis/http/test" >>default
"nested" add-responder
[ URL" redirect-loop" ] >>display
@@ -214,7 +214,7 @@ test-db [
] unit-test
[ t ] [
- "resource:extra/http/test/foo.html" ascii file-contents
+ "resource:basis/http/test/foo.html" ascii file-contents
"http://localhost:1237/nested/foo.html" http-get nip =
] unit-test
@@ -225,6 +225,28 @@ test-db [
"http://localhost:1237/quit" http-get nip
] unit-test
+! HTTP client redirect bug
+[ ] [
+ [
+
+ add-quit-action
+ [ "quit" ] >>display
+ "redirect" add-responder
+ main-responder set
+
+ test-httpd
+ ] with-scope
+] unit-test
+
+[ "Goodbye" ] [
+ "http://localhost:1237/redirect" http-get nip
+] unit-test
+
+
+[ ] [
+ [ "http://localhost:1237/quit" http-get 2drop ] ignore-errors
+] unit-test
+
! Dispatcher bugs
[ ] [
[
diff --git a/extra/http/http.factor b/basis/http/http.factor
similarity index 100%
rename from extra/http/http.factor
rename to basis/http/http.factor
diff --git a/extra/http/parsers/parsers.factor b/basis/http/parsers/parsers.factor
similarity index 97%
rename from extra/http/parsers/parsers.factor
rename to basis/http/parsers/parsers.factor
index 746741c894..2a31373951 100644
--- a/extra/http/parsers/parsers.factor
+++ b/basis/http/parsers/parsers.factor
@@ -1,3 +1,5 @@
+! Copyright (C) 2008 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
USING: combinators.short-circuit math math.order math.parser kernel
sequences sequences.deep peg peg.parsers assocs arrays
hashtables strings unicode.case namespaces ascii ;
diff --git a/extra/http/server/authors.txt b/basis/http/server/authors.txt
similarity index 100%
rename from extra/http/server/authors.txt
rename to basis/http/server/authors.txt
diff --git a/extra/http/server/cgi/cgi.factor b/basis/http/server/cgi/cgi.factor
similarity index 100%
rename from extra/http/server/cgi/cgi.factor
rename to basis/http/server/cgi/cgi.factor
diff --git a/extra/http/server/dispatchers/dispatchers-tests.factor b/basis/http/server/dispatchers/dispatchers-tests.factor
similarity index 100%
rename from extra/http/server/dispatchers/dispatchers-tests.factor
rename to basis/http/server/dispatchers/dispatchers-tests.factor
diff --git a/extra/http/server/dispatchers/dispatchers.factor b/basis/http/server/dispatchers/dispatchers.factor
similarity index 100%
rename from extra/http/server/dispatchers/dispatchers.factor
rename to basis/http/server/dispatchers/dispatchers.factor
diff --git a/extra/http/server/filters/filters.factor b/basis/http/server/filters/filters.factor
similarity index 100%
rename from extra/http/server/filters/filters.factor
rename to basis/http/server/filters/filters.factor
diff --git a/extra/http/server/redirection/redirection-tests.factor b/basis/http/server/redirection/redirection-tests.factor
similarity index 100%
rename from extra/http/server/redirection/redirection-tests.factor
rename to basis/http/server/redirection/redirection-tests.factor
diff --git a/extra/http/server/redirection/redirection.factor b/basis/http/server/redirection/redirection.factor
similarity index 100%
rename from extra/http/server/redirection/redirection.factor
rename to basis/http/server/redirection/redirection.factor
diff --git a/extra/http/server/responses/responses.factor b/basis/http/server/responses/responses.factor
similarity index 100%
rename from extra/http/server/responses/responses.factor
rename to basis/http/server/responses/responses.factor
diff --git a/extra/http/server/server-tests.factor b/basis/http/server/server-tests.factor
similarity index 100%
rename from extra/http/server/server-tests.factor
rename to basis/http/server/server-tests.factor
diff --git a/extra/http/server/server.factor b/basis/http/server/server.factor
similarity index 100%
rename from extra/http/server/server.factor
rename to basis/http/server/server.factor
diff --git a/extra/http/server/static/static.factor b/basis/http/server/static/static.factor
similarity index 100%
rename from extra/http/server/static/static.factor
rename to basis/http/server/static/static.factor
diff --git a/extra/http/server/summary.txt b/basis/http/server/summary.txt
similarity index 100%
rename from extra/http/server/summary.txt
rename to basis/http/server/summary.txt
diff --git a/extra/http/server/tags.txt b/basis/http/server/tags.txt
similarity index 100%
rename from extra/http/server/tags.txt
rename to basis/http/server/tags.txt
diff --git a/extra/http/summary.txt b/basis/http/summary.txt
similarity index 100%
rename from extra/http/summary.txt
rename to basis/http/summary.txt
diff --git a/extra/http/tags.txt b/basis/http/tags.txt
similarity index 100%
rename from extra/http/tags.txt
rename to basis/http/tags.txt
diff --git a/extra/http/test/foo.html b/basis/http/test/foo.html
similarity index 100%
rename from extra/http/test/foo.html
rename to basis/http/test/foo.html
diff --git a/extra/json/authors.txt b/basis/json/authors.txt
similarity index 100%
rename from extra/json/authors.txt
rename to basis/json/authors.txt
diff --git a/extra/json/reader/authors.txt b/basis/json/reader/authors.txt
similarity index 100%
rename from extra/json/reader/authors.txt
rename to basis/json/reader/authors.txt
diff --git a/extra/json/reader/reader-docs.factor b/basis/json/reader/reader-docs.factor
similarity index 100%
rename from extra/json/reader/reader-docs.factor
rename to basis/json/reader/reader-docs.factor
diff --git a/extra/json/reader/reader-tests.factor b/basis/json/reader/reader-tests.factor
similarity index 100%
rename from extra/json/reader/reader-tests.factor
rename to basis/json/reader/reader-tests.factor
diff --git a/extra/json/reader/reader.factor b/basis/json/reader/reader.factor
similarity index 100%
rename from extra/json/reader/reader.factor
rename to basis/json/reader/reader.factor
diff --git a/extra/json/reader/summary.txt b/basis/json/reader/summary.txt
similarity index 100%
rename from extra/json/reader/summary.txt
rename to basis/json/reader/summary.txt
diff --git a/extra/json/summary.txt b/basis/json/summary.txt
similarity index 100%
rename from extra/json/summary.txt
rename to basis/json/summary.txt
diff --git a/extra/json/writer/authors.txt b/basis/json/writer/authors.txt
similarity index 100%
rename from extra/json/writer/authors.txt
rename to basis/json/writer/authors.txt
diff --git a/extra/json/writer/summary.txt b/basis/json/writer/summary.txt
similarity index 100%
rename from extra/json/writer/summary.txt
rename to basis/json/writer/summary.txt
diff --git a/extra/json/writer/writer-docs.factor b/basis/json/writer/writer-docs.factor
similarity index 100%
rename from extra/json/writer/writer-docs.factor
rename to basis/json/writer/writer-docs.factor
diff --git a/extra/json/writer/writer.factor b/basis/json/writer/writer.factor
similarity index 100%
rename from extra/json/writer/writer.factor
rename to basis/json/writer/writer.factor
diff --git a/basis/openssl/test/errors.txt b/basis/openssl/test/errors.txt
deleted file mode 100644
index e965047ad7..0000000000
--- a/basis/openssl/test/errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-Hello
diff --git a/extra/peg/ebnf/authors.txt b/basis/peg/ebnf/authors.txt
similarity index 100%
rename from extra/peg/ebnf/authors.txt
rename to basis/peg/ebnf/authors.txt
diff --git a/extra/peg/ebnf/ebnf-tests.factor b/basis/peg/ebnf/ebnf-tests.factor
similarity index 100%
rename from extra/peg/ebnf/ebnf-tests.factor
rename to basis/peg/ebnf/ebnf-tests.factor
diff --git a/extra/peg/ebnf/ebnf.factor b/basis/peg/ebnf/ebnf.factor
similarity index 100%
rename from extra/peg/ebnf/ebnf.factor
rename to basis/peg/ebnf/ebnf.factor
diff --git a/extra/peg/ebnf/summary.txt b/basis/peg/ebnf/summary.txt
similarity index 100%
rename from extra/peg/ebnf/summary.txt
rename to basis/peg/ebnf/summary.txt
diff --git a/extra/peg/ebnf/tags.txt b/basis/peg/ebnf/tags.txt
similarity index 100%
rename from extra/peg/ebnf/tags.txt
rename to basis/peg/ebnf/tags.txt
diff --git a/extra/peg/peg.factor b/basis/peg/peg.factor
similarity index 100%
rename from extra/peg/peg.factor
rename to basis/peg/peg.factor
diff --git a/extra/syndication/authors.txt b/basis/syndication/authors.txt
similarity index 100%
rename from extra/syndication/authors.txt
rename to basis/syndication/authors.txt
diff --git a/extra/syndication/readme.txt b/basis/syndication/readme.txt
similarity index 100%
rename from extra/syndication/readme.txt
rename to basis/syndication/readme.txt
diff --git a/extra/syndication/summary.txt b/basis/syndication/summary.txt
similarity index 100%
rename from extra/syndication/summary.txt
rename to basis/syndication/summary.txt
diff --git a/extra/syndication/syndication-tests.factor b/basis/syndication/syndication-tests.factor
similarity index 100%
rename from extra/syndication/syndication-tests.factor
rename to basis/syndication/syndication-tests.factor
diff --git a/extra/syndication/syndication.factor b/basis/syndication/syndication.factor
similarity index 100%
rename from extra/syndication/syndication.factor
rename to basis/syndication/syndication.factor
diff --git a/extra/syndication/tags.txt b/basis/syndication/tags.txt
similarity index 100%
rename from extra/syndication/tags.txt
rename to basis/syndication/tags.txt
diff --git a/extra/syndication/test/atom.xml b/basis/syndication/test/atom.xml
similarity index 100%
rename from extra/syndication/test/atom.xml
rename to basis/syndication/test/atom.xml
diff --git a/extra/syndication/test/rss1.xml b/basis/syndication/test/rss1.xml
similarity index 100%
rename from extra/syndication/test/rss1.xml
rename to basis/syndication/test/rss1.xml
diff --git a/basis/tools/scaffold/scaffold-docs.factor b/basis/tools/scaffold/scaffold-docs.factor
new file mode 100644
index 0000000000..e22e10f8c9
--- /dev/null
+++ b/basis/tools/scaffold/scaffold-docs.factor
@@ -0,0 +1,47 @@
+! Copyright (C) 2008 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: help.markup help.syntax kernel strings words ;
+IN: tools.scaffold
+
+HELP: developer-name
+{ $description "Set this symbol to hold your name so that the scaffold tools can generate the correct file header for copyright. Setting this variable in your .factor-boot-rc file is recommended." }
+{ $unchecked-example "USING: namespaces tools.scaffold ;\n\"Stacky Guy\" developer-name set-global" } ;
+
+HELP: help.
+{ $values
+ { "word" word } }
+{ $description "Prints out scaffold help markup for a given word." } ;
+
+HELP: scaffold-help
+{ $values
+ { "vocab-root" "a vocabulary root string" } { "string" string } }
+{ $description "Takes an existing vocabulary and creates a help file with scaffolded help for each word. This word only works if no help file yet exists." } ;
+
+HELP: scaffold-undocumented
+{ $values
+ { "string" string } }
+{ $description "Prints scaffolding documenation for undocumented words in a vocabuary except for automatically generated class predicates." } ;
+
+{ scaffold-help scaffold-undocumented } related-words
+
+HELP: scaffold-vocab
+{ $values
+ { "vocab-root" "a vocabulary root string" } { "string" string } }
+{ $description "Creates a direcory in the given root for a new vocabulary and adds a main .factor file, a tests file, and an authors.txt file." } ;
+
+HELP: using
+{ $description "Stores the vocabularies that are pulled into the documentation file from looking up the stack effect types." } ;
+
+ARTICLE: "tools.scaffold" "Scaffold tool"
+"Scaffold setup:"
+{ $subsection developer-name }
+"Generate new vocabs:"
+{ $subsection scaffold-vocab }
+"Generate help scaffolding:"
+{ $subsection scaffold-help }
+{ $subsection scaffold-undocumented }
+{ $subsection help. }
+"Types that are unrecognized by the scaffold generator will be of type " { $link null } ". The developer should change these to strings that describe the stack effect names instead."
+;
+
+ABOUT: "tools.scaffold"
diff --git a/basis/tools/scaffold/scaffold.factor b/basis/tools/scaffold/scaffold.factor
index 1c1a48ff9d..69eac5dc15 100644
--- a/basis/tools/scaffold/scaffold.factor
+++ b/basis/tools/scaffold/scaffold.factor
@@ -4,19 +4,21 @@ USING: assocs io.files hashtables kernel namespaces sequences
vocabs.loader io combinators io.encodings.utf8 calendar accessors
math.parser io.streams.string ui.tools.operations quotations
strings arrays prettyprint words vocabs sorting sets cords
-sequences.lib combinators.lib ;
+classes sequences.lib combinators.lib ;
IN: tools.scaffold
SYMBOL: developer-name
SYMBOL: using
ERROR: not-a-vocab-root string ;
+ERROR: vocab-name-contains-separator path ;
+ERROR: vocab-name-contains-dot path ;
+ERROR: no-vocab vocab ;
+> using get conjoin ;
+ vocabulary>> using get [ conjoin ] [ drop ] if* ;
: ($values.) ( array -- )
[
@@ -140,18 +142,26 @@ ERROR: vocab-name-contains-dot path ;
: $description. ( word -- )
drop
- "{ $description } ;" print ;
+ "{ $description \"\" } ;" print ;
: help-header. ( word -- )
"HELP: " write name>> print ;
-: help. ( word -- )
+: (help.) ( word -- )
[ help-header. ] [ $values. ] [ $description. ] tri ;
+: interesting-words ( vocab -- array )
+ words
+ [ [ "help" word-prop ] [ predicate? ] bi or not ] filter
+ natural-sort ;
+
+: interesting-words. ( vocab -- )
+ interesting-words [ (help.) nl ] each ;
+
: help-file-string ( str1 -- str2 )
[
[ "IN: " write print nl ]
- [ words natural-sort [ help. nl ] each ]
+ [ interesting-words. ]
[ "ARTICLE: " write unparse dup write bl print ";" print nl ]
[ "ABOUT: " write unparse print ] quad
] with-string-writer ;
@@ -178,12 +188,33 @@ ERROR: vocab-name-contains-dot path ;
: prepare-scaffold ( vocab-root string -- string path )
check-scaffold [ vocab>scaffold-path ] keep ;
+: with-scaffold ( quot -- )
+ [ H{ } clone using ] dip with-variable ; inline
+
+: check-vocab ( vocab -- vocab )
+ dup find-vocab-root [ no-vocab ] unless ;
+PRIVATE>
+
+: link-vocab ( vocab -- )
+ check-vocab
+ "Edit documentation: " write
+ [ find-vocab-root ] keep
+ [ append-path ] keep "-docs.factor" append append-path
+ . ;
+
+: help. ( word -- )
+ [ (help.) ] [ nl vocabulary>> link-vocab ] bi ;
+
: scaffold-help ( vocab-root string -- )
- H{ } clone using [
+ [
+ check-vocab
prepare-scaffold
[ "-docs.factor" scaffold-path ] dip
swap [ set-scaffold-help-file ] [ 2drop ] if
- ] with-variable ;
+ ] with-scaffold ;
+
+: scaffold-undocumented ( string -- )
+ [ interesting-words. ] [ link-vocab ] bi ;
: scaffold-vocab ( vocab-root string -- )
prepare-scaffold
@@ -192,4 +223,5 @@ ERROR: vocab-name-contains-dot path ;
[ scaffold-main ]
[ scaffold-tests ]
[ drop scaffold-authors ]
+ [ nip require ]
} 2cleave ;
diff --git a/basis/tools/vocabs/vocabs.factor b/basis/tools/vocabs/vocabs.factor
index 08eb3d7c32..cc49d283b4 100755
--- a/basis/tools/vocabs/vocabs.factor
+++ b/basis/tools/vocabs/vocabs.factor
@@ -190,7 +190,7 @@ M: vocab-link summary vocab-summary ;
vocab-dir "tags.txt" append-path ;
: vocab-tags ( vocab -- tags )
- dup vocab-tags-path vocab-file-contents ;
+ dup vocab-tags-path vocab-file-contents harvest ;
: set-vocab-tags ( tags vocab -- )
dup vocab-tags-path set-vocab-file-contents ;
@@ -202,7 +202,7 @@ M: vocab-link summary vocab-summary ;
vocab-dir "authors.txt" append-path ;
: vocab-authors ( vocab -- authors )
- dup vocab-authors-path vocab-file-contents ;
+ dup vocab-authors-path vocab-file-contents harvest ;
: set-vocab-authors ( authors vocab -- )
dup vocab-authors-path set-vocab-file-contents ;
diff --git a/basis/windows/dinput/constants/constants.factor b/basis/windows/dinput/constants/constants.factor
index b918ec121b..6c55ff0e67 100755
--- a/basis/windows/dinput/constants/constants.factor
+++ b/basis/windows/dinput/constants/constants.factor
@@ -22,7 +22,7 @@ SYMBOLS:
: (offsetof) ( field struct -- offset )
[ (field-spec-of) offset>> ] [ drop 0 ] if* ;
: (sizeof) ( field struct -- size )
- [ (field-spec-of) class>> "[" split1 drop heap-size ] [ drop 1 ] if* ;
+ [ (field-spec-of) type>> "[" split1 drop heap-size ] [ drop 1 ] if* ;
: (flag) ( thing -- integer )
{
diff --git a/extra/xmode/README.txt b/basis/xmode/README.txt
similarity index 100%
rename from extra/xmode/README.txt
rename to basis/xmode/README.txt
diff --git a/extra/xmode/authors.txt b/basis/xmode/authors.txt
similarity index 100%
rename from extra/xmode/authors.txt
rename to basis/xmode/authors.txt
diff --git a/extra/xmode/catalog/authors.txt b/basis/xmode/catalog/authors.txt
similarity index 100%
rename from extra/xmode/catalog/authors.txt
rename to basis/xmode/catalog/authors.txt
diff --git a/extra/xmode/catalog/catalog-tests.factor b/basis/xmode/catalog/catalog-tests.factor
similarity index 100%
rename from extra/xmode/catalog/catalog-tests.factor
rename to basis/xmode/catalog/catalog-tests.factor
diff --git a/extra/xmode/catalog/catalog.factor b/basis/xmode/catalog/catalog.factor
similarity index 97%
rename from extra/xmode/catalog/catalog.factor
rename to basis/xmode/catalog/catalog.factor
index 26147c7867..16da4be1d3 100755
--- a/extra/xmode/catalog/catalog.factor
+++ b/basis/xmode/catalog/catalog.factor
@@ -24,7 +24,7 @@ TAGS>
] keep ;
MEMO: modes ( -- modes )
- "resource:extra/xmode/modes/catalog"
+ "resource:basis/xmode/modes/catalog"
file>xml parse-modes-tag ;
MEMO: mode-names ( -- modes )
@@ -36,7 +36,7 @@ MEMO: mode-names ( -- modes )
MEMO: (load-mode) ( name -- rule-sets )
modes at [
file>>
- "resource:extra/xmode/modes/" prepend
+ "resource:basis/xmode/modes/" prepend
utf8 parse-mode
] [
"text" (load-mode)
diff --git a/extra/xmode/code2html/authors.txt b/basis/xmode/code2html/authors.txt
similarity index 100%
rename from extra/xmode/code2html/authors.txt
rename to basis/xmode/code2html/authors.txt
diff --git a/extra/xmode/code2html/code2html.factor b/basis/xmode/code2html/code2html.factor
similarity index 95%
rename from extra/xmode/code2html/code2html.factor
rename to basis/xmode/code2html/code2html.factor
index 028d9b62ba..032b2b25f0 100755
--- a/extra/xmode/code2html/code2html.factor
+++ b/basis/xmode/code2html/code2html.factor
@@ -20,7 +20,7 @@ IN: xmode.code2html
: default-stylesheet ( -- )
;
diff --git a/extra/xmode/code2html/responder/responder.factor b/basis/xmode/code2html/responder/responder.factor
similarity index 100%
rename from extra/xmode/code2html/responder/responder.factor
rename to basis/xmode/code2html/responder/responder.factor
diff --git a/extra/xmode/code2html/stylesheet.css b/basis/xmode/code2html/stylesheet.css
similarity index 100%
rename from extra/xmode/code2html/stylesheet.css
rename to basis/xmode/code2html/stylesheet.css
diff --git a/extra/xmode/keyword-map/authors.txt b/basis/xmode/keyword-map/authors.txt
similarity index 100%
rename from extra/xmode/keyword-map/authors.txt
rename to basis/xmode/keyword-map/authors.txt
diff --git a/extra/xmode/keyword-map/keyword-map-tests.factor b/basis/xmode/keyword-map/keyword-map-tests.factor
similarity index 100%
rename from extra/xmode/keyword-map/keyword-map-tests.factor
rename to basis/xmode/keyword-map/keyword-map-tests.factor
diff --git a/extra/xmode/keyword-map/keyword-map.factor b/basis/xmode/keyword-map/keyword-map.factor
similarity index 100%
rename from extra/xmode/keyword-map/keyword-map.factor
rename to basis/xmode/keyword-map/keyword-map.factor
diff --git a/extra/xmode/loader/authors.txt b/basis/xmode/loader/authors.txt
similarity index 100%
rename from extra/xmode/loader/authors.txt
rename to basis/xmode/loader/authors.txt
diff --git a/extra/xmode/loader/loader.factor b/basis/xmode/loader/loader.factor
similarity index 100%
rename from extra/xmode/loader/loader.factor
rename to basis/xmode/loader/loader.factor
diff --git a/extra/xmode/loader/syntax/authors.txt b/basis/xmode/loader/syntax/authors.txt
similarity index 100%
rename from extra/xmode/loader/syntax/authors.txt
rename to basis/xmode/loader/syntax/authors.txt
diff --git a/extra/xmode/loader/syntax/syntax.factor b/basis/xmode/loader/syntax/syntax.factor
similarity index 100%
rename from extra/xmode/loader/syntax/syntax.factor
rename to basis/xmode/loader/syntax/syntax.factor
diff --git a/extra/xmode/marker/authors.txt b/basis/xmode/marker/authors.txt
similarity index 100%
rename from extra/xmode/marker/authors.txt
rename to basis/xmode/marker/authors.txt
diff --git a/extra/xmode/marker/context/authors.txt b/basis/xmode/marker/context/authors.txt
similarity index 100%
rename from extra/xmode/marker/context/authors.txt
rename to basis/xmode/marker/context/authors.txt
diff --git a/extra/xmode/marker/context/context.factor b/basis/xmode/marker/context/context.factor
similarity index 100%
rename from extra/xmode/marker/context/context.factor
rename to basis/xmode/marker/context/context.factor
diff --git a/extra/xmode/marker/marker-tests.factor b/basis/xmode/marker/marker-tests.factor
similarity index 100%
rename from extra/xmode/marker/marker-tests.factor
rename to basis/xmode/marker/marker-tests.factor
diff --git a/extra/xmode/marker/marker.factor b/basis/xmode/marker/marker.factor
similarity index 100%
rename from extra/xmode/marker/marker.factor
rename to basis/xmode/marker/marker.factor
diff --git a/extra/xmode/marker/state/authors.txt b/basis/xmode/marker/state/authors.txt
similarity index 100%
rename from extra/xmode/marker/state/authors.txt
rename to basis/xmode/marker/state/authors.txt
diff --git a/extra/xmode/marker/state/state.factor b/basis/xmode/marker/state/state.factor
similarity index 100%
rename from extra/xmode/marker/state/state.factor
rename to basis/xmode/marker/state/state.factor
diff --git a/extra/xmode/modes/actionscript.xml b/basis/xmode/modes/actionscript.xml
similarity index 100%
rename from extra/xmode/modes/actionscript.xml
rename to basis/xmode/modes/actionscript.xml
diff --git a/extra/xmode/modes/ada95.xml b/basis/xmode/modes/ada95.xml
similarity index 100%
rename from extra/xmode/modes/ada95.xml
rename to basis/xmode/modes/ada95.xml
diff --git a/extra/xmode/modes/antlr.xml b/basis/xmode/modes/antlr.xml
similarity index 100%
rename from extra/xmode/modes/antlr.xml
rename to basis/xmode/modes/antlr.xml
diff --git a/extra/xmode/modes/apacheconf.xml b/basis/xmode/modes/apacheconf.xml
similarity index 100%
rename from extra/xmode/modes/apacheconf.xml
rename to basis/xmode/modes/apacheconf.xml
diff --git a/extra/xmode/modes/apdl.xml b/basis/xmode/modes/apdl.xml
similarity index 100%
rename from extra/xmode/modes/apdl.xml
rename to basis/xmode/modes/apdl.xml
diff --git a/extra/xmode/modes/applescript.xml b/basis/xmode/modes/applescript.xml
similarity index 100%
rename from extra/xmode/modes/applescript.xml
rename to basis/xmode/modes/applescript.xml
diff --git a/extra/xmode/modes/asp.xml b/basis/xmode/modes/asp.xml
similarity index 100%
rename from extra/xmode/modes/asp.xml
rename to basis/xmode/modes/asp.xml
diff --git a/extra/xmode/modes/aspect-j.xml b/basis/xmode/modes/aspect-j.xml
similarity index 100%
rename from extra/xmode/modes/aspect-j.xml
rename to basis/xmode/modes/aspect-j.xml
diff --git a/extra/xmode/modes/assembly-m68k.xml b/basis/xmode/modes/assembly-m68k.xml
similarity index 100%
rename from extra/xmode/modes/assembly-m68k.xml
rename to basis/xmode/modes/assembly-m68k.xml
diff --git a/extra/xmode/modes/assembly-macro32.xml b/basis/xmode/modes/assembly-macro32.xml
similarity index 100%
rename from extra/xmode/modes/assembly-macro32.xml
rename to basis/xmode/modes/assembly-macro32.xml
diff --git a/extra/xmode/modes/assembly-mcs51.xml b/basis/xmode/modes/assembly-mcs51.xml
similarity index 100%
rename from extra/xmode/modes/assembly-mcs51.xml
rename to basis/xmode/modes/assembly-mcs51.xml
diff --git a/extra/xmode/modes/assembly-parrot.xml b/basis/xmode/modes/assembly-parrot.xml
similarity index 100%
rename from extra/xmode/modes/assembly-parrot.xml
rename to basis/xmode/modes/assembly-parrot.xml
diff --git a/extra/xmode/modes/assembly-r2000.xml b/basis/xmode/modes/assembly-r2000.xml
similarity index 100%
rename from extra/xmode/modes/assembly-r2000.xml
rename to basis/xmode/modes/assembly-r2000.xml
diff --git a/extra/xmode/modes/assembly-x86.xml b/basis/xmode/modes/assembly-x86.xml
similarity index 100%
rename from extra/xmode/modes/assembly-x86.xml
rename to basis/xmode/modes/assembly-x86.xml
diff --git a/extra/xmode/modes/awk.xml b/basis/xmode/modes/awk.xml
similarity index 100%
rename from extra/xmode/modes/awk.xml
rename to basis/xmode/modes/awk.xml
diff --git a/extra/xmode/modes/b.xml b/basis/xmode/modes/b.xml
similarity index 100%
rename from extra/xmode/modes/b.xml
rename to basis/xmode/modes/b.xml
diff --git a/extra/xmode/modes/batch.xml b/basis/xmode/modes/batch.xml
similarity index 100%
rename from extra/xmode/modes/batch.xml
rename to basis/xmode/modes/batch.xml
diff --git a/extra/xmode/modes/bbj.xml b/basis/xmode/modes/bbj.xml
similarity index 100%
rename from extra/xmode/modes/bbj.xml
rename to basis/xmode/modes/bbj.xml
diff --git a/extra/xmode/modes/bcel.xml b/basis/xmode/modes/bcel.xml
similarity index 100%
rename from extra/xmode/modes/bcel.xml
rename to basis/xmode/modes/bcel.xml
diff --git a/extra/xmode/modes/bibtex.xml b/basis/xmode/modes/bibtex.xml
similarity index 100%
rename from extra/xmode/modes/bibtex.xml
rename to basis/xmode/modes/bibtex.xml
diff --git a/extra/xmode/modes/c.xml b/basis/xmode/modes/c.xml
similarity index 100%
rename from extra/xmode/modes/c.xml
rename to basis/xmode/modes/c.xml
diff --git a/extra/xmode/modes/catalog b/basis/xmode/modes/catalog
similarity index 100%
rename from extra/xmode/modes/catalog
rename to basis/xmode/modes/catalog
diff --git a/extra/xmode/modes/chill.xml b/basis/xmode/modes/chill.xml
similarity index 100%
rename from extra/xmode/modes/chill.xml
rename to basis/xmode/modes/chill.xml
diff --git a/extra/xmode/modes/cil.xml b/basis/xmode/modes/cil.xml
similarity index 100%
rename from extra/xmode/modes/cil.xml
rename to basis/xmode/modes/cil.xml
diff --git a/extra/xmode/modes/clips.xml b/basis/xmode/modes/clips.xml
similarity index 100%
rename from extra/xmode/modes/clips.xml
rename to basis/xmode/modes/clips.xml
diff --git a/extra/xmode/modes/cobol.xml b/basis/xmode/modes/cobol.xml
similarity index 100%
rename from extra/xmode/modes/cobol.xml
rename to basis/xmode/modes/cobol.xml
diff --git a/extra/xmode/modes/coldfusion.xml b/basis/xmode/modes/coldfusion.xml
similarity index 100%
rename from extra/xmode/modes/coldfusion.xml
rename to basis/xmode/modes/coldfusion.xml
diff --git a/extra/xmode/modes/cplusplus.xml b/basis/xmode/modes/cplusplus.xml
similarity index 100%
rename from extra/xmode/modes/cplusplus.xml
rename to basis/xmode/modes/cplusplus.xml
diff --git a/extra/xmode/modes/csharp.xml b/basis/xmode/modes/csharp.xml
similarity index 100%
rename from extra/xmode/modes/csharp.xml
rename to basis/xmode/modes/csharp.xml
diff --git a/extra/xmode/modes/css.xml b/basis/xmode/modes/css.xml
similarity index 100%
rename from extra/xmode/modes/css.xml
rename to basis/xmode/modes/css.xml
diff --git a/extra/xmode/modes/csv.xml b/basis/xmode/modes/csv.xml
similarity index 100%
rename from extra/xmode/modes/csv.xml
rename to basis/xmode/modes/csv.xml
diff --git a/extra/xmode/modes/cvs-commit.xml b/basis/xmode/modes/cvs-commit.xml
similarity index 100%
rename from extra/xmode/modes/cvs-commit.xml
rename to basis/xmode/modes/cvs-commit.xml
diff --git a/extra/xmode/modes/d.xml b/basis/xmode/modes/d.xml
similarity index 100%
rename from extra/xmode/modes/d.xml
rename to basis/xmode/modes/d.xml
diff --git a/extra/xmode/modes/django.xml b/basis/xmode/modes/django.xml
similarity index 100%
rename from extra/xmode/modes/django.xml
rename to basis/xmode/modes/django.xml
diff --git a/extra/xmode/modes/doxygen.xml b/basis/xmode/modes/doxygen.xml
similarity index 100%
rename from extra/xmode/modes/doxygen.xml
rename to basis/xmode/modes/doxygen.xml
diff --git a/extra/xmode/modes/dsssl.xml b/basis/xmode/modes/dsssl.xml
similarity index 100%
rename from extra/xmode/modes/dsssl.xml
rename to basis/xmode/modes/dsssl.xml
diff --git a/extra/xmode/modes/eiffel.xml b/basis/xmode/modes/eiffel.xml
similarity index 100%
rename from extra/xmode/modes/eiffel.xml
rename to basis/xmode/modes/eiffel.xml
diff --git a/extra/xmode/modes/embperl.xml b/basis/xmode/modes/embperl.xml
similarity index 100%
rename from extra/xmode/modes/embperl.xml
rename to basis/xmode/modes/embperl.xml
diff --git a/extra/xmode/modes/erlang.xml b/basis/xmode/modes/erlang.xml
similarity index 100%
rename from extra/xmode/modes/erlang.xml
rename to basis/xmode/modes/erlang.xml
diff --git a/extra/xmode/modes/factor.xml b/basis/xmode/modes/factor.xml
similarity index 100%
rename from extra/xmode/modes/factor.xml
rename to basis/xmode/modes/factor.xml
diff --git a/extra/xmode/modes/fhtml.xml b/basis/xmode/modes/fhtml.xml
similarity index 100%
rename from extra/xmode/modes/fhtml.xml
rename to basis/xmode/modes/fhtml.xml
diff --git a/extra/xmode/modes/forth.xml b/basis/xmode/modes/forth.xml
similarity index 100%
rename from extra/xmode/modes/forth.xml
rename to basis/xmode/modes/forth.xml
diff --git a/extra/xmode/modes/fortran.xml b/basis/xmode/modes/fortran.xml
similarity index 100%
rename from extra/xmode/modes/fortran.xml
rename to basis/xmode/modes/fortran.xml
diff --git a/extra/xmode/modes/foxpro.xml b/basis/xmode/modes/foxpro.xml
similarity index 100%
rename from extra/xmode/modes/foxpro.xml
rename to basis/xmode/modes/foxpro.xml
diff --git a/extra/xmode/modes/freemarker.xml b/basis/xmode/modes/freemarker.xml
similarity index 100%
rename from extra/xmode/modes/freemarker.xml
rename to basis/xmode/modes/freemarker.xml
diff --git a/extra/xmode/modes/gettext.xml b/basis/xmode/modes/gettext.xml
similarity index 100%
rename from extra/xmode/modes/gettext.xml
rename to basis/xmode/modes/gettext.xml
diff --git a/extra/xmode/modes/gnuplot.xml b/basis/xmode/modes/gnuplot.xml
similarity index 100%
rename from extra/xmode/modes/gnuplot.xml
rename to basis/xmode/modes/gnuplot.xml
diff --git a/extra/xmode/modes/groovy.xml b/basis/xmode/modes/groovy.xml
similarity index 100%
rename from extra/xmode/modes/groovy.xml
rename to basis/xmode/modes/groovy.xml
diff --git a/extra/xmode/modes/haskell.xml b/basis/xmode/modes/haskell.xml
similarity index 100%
rename from extra/xmode/modes/haskell.xml
rename to basis/xmode/modes/haskell.xml
diff --git a/extra/xmode/modes/hex.xml b/basis/xmode/modes/hex.xml
similarity index 100%
rename from extra/xmode/modes/hex.xml
rename to basis/xmode/modes/hex.xml
diff --git a/extra/xmode/modes/hlsl.xml b/basis/xmode/modes/hlsl.xml
similarity index 100%
rename from extra/xmode/modes/hlsl.xml
rename to basis/xmode/modes/hlsl.xml
diff --git a/extra/xmode/modes/htaccess.xml b/basis/xmode/modes/htaccess.xml
similarity index 100%
rename from extra/xmode/modes/htaccess.xml
rename to basis/xmode/modes/htaccess.xml
diff --git a/extra/xmode/modes/html.xml b/basis/xmode/modes/html.xml
similarity index 100%
rename from extra/xmode/modes/html.xml
rename to basis/xmode/modes/html.xml
diff --git a/extra/xmode/modes/i4gl.xml b/basis/xmode/modes/i4gl.xml
similarity index 100%
rename from extra/xmode/modes/i4gl.xml
rename to basis/xmode/modes/i4gl.xml
diff --git a/extra/xmode/modes/icon.xml b/basis/xmode/modes/icon.xml
similarity index 100%
rename from extra/xmode/modes/icon.xml
rename to basis/xmode/modes/icon.xml
diff --git a/extra/xmode/modes/idl.xml b/basis/xmode/modes/idl.xml
similarity index 100%
rename from extra/xmode/modes/idl.xml
rename to basis/xmode/modes/idl.xml
diff --git a/extra/xmode/modes/inform.xml b/basis/xmode/modes/inform.xml
similarity index 100%
rename from extra/xmode/modes/inform.xml
rename to basis/xmode/modes/inform.xml
diff --git a/extra/xmode/modes/ini.xml b/basis/xmode/modes/ini.xml
similarity index 100%
rename from extra/xmode/modes/ini.xml
rename to basis/xmode/modes/ini.xml
diff --git a/extra/xmode/modes/inno-setup.xml b/basis/xmode/modes/inno-setup.xml
similarity index 100%
rename from extra/xmode/modes/inno-setup.xml
rename to basis/xmode/modes/inno-setup.xml
diff --git a/extra/xmode/modes/interlis.xml b/basis/xmode/modes/interlis.xml
similarity index 100%
rename from extra/xmode/modes/interlis.xml
rename to basis/xmode/modes/interlis.xml
diff --git a/extra/xmode/modes/io.xml b/basis/xmode/modes/io.xml
similarity index 100%
rename from extra/xmode/modes/io.xml
rename to basis/xmode/modes/io.xml
diff --git a/extra/xmode/modes/java.xml b/basis/xmode/modes/java.xml
similarity index 100%
rename from extra/xmode/modes/java.xml
rename to basis/xmode/modes/java.xml
diff --git a/extra/xmode/modes/javacc.xml b/basis/xmode/modes/javacc.xml
similarity index 100%
rename from extra/xmode/modes/javacc.xml
rename to basis/xmode/modes/javacc.xml
diff --git a/extra/xmode/modes/javascript.xml b/basis/xmode/modes/javascript.xml
similarity index 100%
rename from extra/xmode/modes/javascript.xml
rename to basis/xmode/modes/javascript.xml
diff --git a/extra/xmode/modes/jcl.xml b/basis/xmode/modes/jcl.xml
similarity index 100%
rename from extra/xmode/modes/jcl.xml
rename to basis/xmode/modes/jcl.xml
diff --git a/extra/xmode/modes/jhtml.xml b/basis/xmode/modes/jhtml.xml
similarity index 100%
rename from extra/xmode/modes/jhtml.xml
rename to basis/xmode/modes/jhtml.xml
diff --git a/extra/xmode/modes/jmk.xml b/basis/xmode/modes/jmk.xml
similarity index 100%
rename from extra/xmode/modes/jmk.xml
rename to basis/xmode/modes/jmk.xml
diff --git a/extra/xmode/modes/jsp.xml b/basis/xmode/modes/jsp.xml
similarity index 100%
rename from extra/xmode/modes/jsp.xml
rename to basis/xmode/modes/jsp.xml
diff --git a/extra/xmode/modes/latex.xml b/basis/xmode/modes/latex.xml
similarity index 100%
rename from extra/xmode/modes/latex.xml
rename to basis/xmode/modes/latex.xml
diff --git a/extra/xmode/modes/lilypond.xml b/basis/xmode/modes/lilypond.xml
similarity index 100%
rename from extra/xmode/modes/lilypond.xml
rename to basis/xmode/modes/lilypond.xml
diff --git a/extra/xmode/modes/lisp.xml b/basis/xmode/modes/lisp.xml
similarity index 100%
rename from extra/xmode/modes/lisp.xml
rename to basis/xmode/modes/lisp.xml
diff --git a/extra/xmode/modes/literate-haskell.xml b/basis/xmode/modes/literate-haskell.xml
similarity index 100%
rename from extra/xmode/modes/literate-haskell.xml
rename to basis/xmode/modes/literate-haskell.xml
diff --git a/extra/xmode/modes/lotos.xml b/basis/xmode/modes/lotos.xml
similarity index 100%
rename from extra/xmode/modes/lotos.xml
rename to basis/xmode/modes/lotos.xml
diff --git a/extra/xmode/modes/lua.xml b/basis/xmode/modes/lua.xml
similarity index 100%
rename from extra/xmode/modes/lua.xml
rename to basis/xmode/modes/lua.xml
diff --git a/extra/xmode/modes/mail.xml b/basis/xmode/modes/mail.xml
similarity index 100%
rename from extra/xmode/modes/mail.xml
rename to basis/xmode/modes/mail.xml
diff --git a/extra/xmode/modes/makefile.xml b/basis/xmode/modes/makefile.xml
similarity index 100%
rename from extra/xmode/modes/makefile.xml
rename to basis/xmode/modes/makefile.xml
diff --git a/extra/xmode/modes/maple.xml b/basis/xmode/modes/maple.xml
similarity index 100%
rename from extra/xmode/modes/maple.xml
rename to basis/xmode/modes/maple.xml
diff --git a/extra/xmode/modes/ml.xml b/basis/xmode/modes/ml.xml
similarity index 100%
rename from extra/xmode/modes/ml.xml
rename to basis/xmode/modes/ml.xml
diff --git a/extra/xmode/modes/modula3.xml b/basis/xmode/modes/modula3.xml
similarity index 100%
rename from extra/xmode/modes/modula3.xml
rename to basis/xmode/modes/modula3.xml
diff --git a/extra/xmode/modes/moin.xml b/basis/xmode/modes/moin.xml
similarity index 100%
rename from extra/xmode/modes/moin.xml
rename to basis/xmode/modes/moin.xml
diff --git a/extra/xmode/modes/mqsc.xml b/basis/xmode/modes/mqsc.xml
similarity index 100%
rename from extra/xmode/modes/mqsc.xml
rename to basis/xmode/modes/mqsc.xml
diff --git a/extra/xmode/modes/myghty.xml b/basis/xmode/modes/myghty.xml
similarity index 100%
rename from extra/xmode/modes/myghty.xml
rename to basis/xmode/modes/myghty.xml
diff --git a/extra/xmode/modes/mysql.xml b/basis/xmode/modes/mysql.xml
similarity index 100%
rename from extra/xmode/modes/mysql.xml
rename to basis/xmode/modes/mysql.xml
diff --git a/extra/xmode/modes/netrexx.xml b/basis/xmode/modes/netrexx.xml
similarity index 100%
rename from extra/xmode/modes/netrexx.xml
rename to basis/xmode/modes/netrexx.xml
diff --git a/extra/xmode/modes/nqc.xml b/basis/xmode/modes/nqc.xml
similarity index 100%
rename from extra/xmode/modes/nqc.xml
rename to basis/xmode/modes/nqc.xml
diff --git a/extra/xmode/modes/nsis2.xml b/basis/xmode/modes/nsis2.xml
similarity index 100%
rename from extra/xmode/modes/nsis2.xml
rename to basis/xmode/modes/nsis2.xml
diff --git a/extra/xmode/modes/objective-c.xml b/basis/xmode/modes/objective-c.xml
similarity index 100%
rename from extra/xmode/modes/objective-c.xml
rename to basis/xmode/modes/objective-c.xml
diff --git a/extra/xmode/modes/objectrexx.xml b/basis/xmode/modes/objectrexx.xml
similarity index 100%
rename from extra/xmode/modes/objectrexx.xml
rename to basis/xmode/modes/objectrexx.xml
diff --git a/extra/xmode/modes/occam.xml b/basis/xmode/modes/occam.xml
similarity index 100%
rename from extra/xmode/modes/occam.xml
rename to basis/xmode/modes/occam.xml
diff --git a/extra/xmode/modes/omnimark.xml b/basis/xmode/modes/omnimark.xml
similarity index 100%
rename from extra/xmode/modes/omnimark.xml
rename to basis/xmode/modes/omnimark.xml
diff --git a/extra/xmode/modes/pascal.xml b/basis/xmode/modes/pascal.xml
similarity index 100%
rename from extra/xmode/modes/pascal.xml
rename to basis/xmode/modes/pascal.xml
diff --git a/extra/xmode/modes/patch.xml b/basis/xmode/modes/patch.xml
similarity index 100%
rename from extra/xmode/modes/patch.xml
rename to basis/xmode/modes/patch.xml
diff --git a/extra/xmode/modes/perl.xml b/basis/xmode/modes/perl.xml
similarity index 100%
rename from extra/xmode/modes/perl.xml
rename to basis/xmode/modes/perl.xml
diff --git a/extra/xmode/modes/php.xml b/basis/xmode/modes/php.xml
similarity index 100%
rename from extra/xmode/modes/php.xml
rename to basis/xmode/modes/php.xml
diff --git a/extra/xmode/modes/pike.xml b/basis/xmode/modes/pike.xml
similarity index 100%
rename from extra/xmode/modes/pike.xml
rename to basis/xmode/modes/pike.xml
diff --git a/extra/xmode/modes/pl-sql.xml b/basis/xmode/modes/pl-sql.xml
similarity index 100%
rename from extra/xmode/modes/pl-sql.xml
rename to basis/xmode/modes/pl-sql.xml
diff --git a/extra/xmode/modes/pl1.xml b/basis/xmode/modes/pl1.xml
similarity index 100%
rename from extra/xmode/modes/pl1.xml
rename to basis/xmode/modes/pl1.xml
diff --git a/extra/xmode/modes/pop11.xml b/basis/xmode/modes/pop11.xml
similarity index 100%
rename from extra/xmode/modes/pop11.xml
rename to basis/xmode/modes/pop11.xml
diff --git a/extra/xmode/modes/postscript.xml b/basis/xmode/modes/postscript.xml
similarity index 100%
rename from extra/xmode/modes/postscript.xml
rename to basis/xmode/modes/postscript.xml
diff --git a/extra/xmode/modes/povray.xml b/basis/xmode/modes/povray.xml
similarity index 100%
rename from extra/xmode/modes/povray.xml
rename to basis/xmode/modes/povray.xml
diff --git a/extra/xmode/modes/powerdynamo.xml b/basis/xmode/modes/powerdynamo.xml
similarity index 100%
rename from extra/xmode/modes/powerdynamo.xml
rename to basis/xmode/modes/powerdynamo.xml
diff --git a/extra/xmode/modes/progress.xml b/basis/xmode/modes/progress.xml
similarity index 100%
rename from extra/xmode/modes/progress.xml
rename to basis/xmode/modes/progress.xml
diff --git a/extra/xmode/modes/prolog.xml b/basis/xmode/modes/prolog.xml
similarity index 100%
rename from extra/xmode/modes/prolog.xml
rename to basis/xmode/modes/prolog.xml
diff --git a/extra/xmode/modes/props.xml b/basis/xmode/modes/props.xml
similarity index 100%
rename from extra/xmode/modes/props.xml
rename to basis/xmode/modes/props.xml
diff --git a/extra/xmode/modes/psp.xml b/basis/xmode/modes/psp.xml
similarity index 100%
rename from extra/xmode/modes/psp.xml
rename to basis/xmode/modes/psp.xml
diff --git a/extra/xmode/modes/ptl.xml b/basis/xmode/modes/ptl.xml
similarity index 100%
rename from extra/xmode/modes/ptl.xml
rename to basis/xmode/modes/ptl.xml
diff --git a/extra/xmode/modes/pvwave.xml b/basis/xmode/modes/pvwave.xml
similarity index 100%
rename from extra/xmode/modes/pvwave.xml
rename to basis/xmode/modes/pvwave.xml
diff --git a/extra/xmode/modes/pyrex.xml b/basis/xmode/modes/pyrex.xml
similarity index 100%
rename from extra/xmode/modes/pyrex.xml
rename to basis/xmode/modes/pyrex.xml
diff --git a/extra/xmode/modes/python.xml b/basis/xmode/modes/python.xml
similarity index 100%
rename from extra/xmode/modes/python.xml
rename to basis/xmode/modes/python.xml
diff --git a/extra/xmode/modes/quake.xml b/basis/xmode/modes/quake.xml
similarity index 100%
rename from extra/xmode/modes/quake.xml
rename to basis/xmode/modes/quake.xml
diff --git a/extra/xmode/modes/rcp.xml b/basis/xmode/modes/rcp.xml
similarity index 100%
rename from extra/xmode/modes/rcp.xml
rename to basis/xmode/modes/rcp.xml
diff --git a/extra/xmode/modes/rd.xml b/basis/xmode/modes/rd.xml
similarity index 100%
rename from extra/xmode/modes/rd.xml
rename to basis/xmode/modes/rd.xml
diff --git a/extra/xmode/modes/rebol.xml b/basis/xmode/modes/rebol.xml
similarity index 100%
rename from extra/xmode/modes/rebol.xml
rename to basis/xmode/modes/rebol.xml
diff --git a/extra/xmode/modes/redcode.xml b/basis/xmode/modes/redcode.xml
similarity index 100%
rename from extra/xmode/modes/redcode.xml
rename to basis/xmode/modes/redcode.xml
diff --git a/extra/xmode/modes/relax-ng-compact.xml b/basis/xmode/modes/relax-ng-compact.xml
similarity index 100%
rename from extra/xmode/modes/relax-ng-compact.xml
rename to basis/xmode/modes/relax-ng-compact.xml
diff --git a/extra/xmode/modes/rest.xml b/basis/xmode/modes/rest.xml
similarity index 100%
rename from extra/xmode/modes/rest.xml
rename to basis/xmode/modes/rest.xml
diff --git a/extra/xmode/modes/rfc.xml b/basis/xmode/modes/rfc.xml
similarity index 100%
rename from extra/xmode/modes/rfc.xml
rename to basis/xmode/modes/rfc.xml
diff --git a/extra/xmode/modes/rhtml.xml b/basis/xmode/modes/rhtml.xml
similarity index 100%
rename from extra/xmode/modes/rhtml.xml
rename to basis/xmode/modes/rhtml.xml
diff --git a/extra/xmode/modes/rib.xml b/basis/xmode/modes/rib.xml
similarity index 100%
rename from extra/xmode/modes/rib.xml
rename to basis/xmode/modes/rib.xml
diff --git a/extra/xmode/modes/rpmspec.xml b/basis/xmode/modes/rpmspec.xml
similarity index 100%
rename from extra/xmode/modes/rpmspec.xml
rename to basis/xmode/modes/rpmspec.xml
diff --git a/extra/xmode/modes/rtf.xml b/basis/xmode/modes/rtf.xml
similarity index 100%
rename from extra/xmode/modes/rtf.xml
rename to basis/xmode/modes/rtf.xml
diff --git a/extra/xmode/modes/ruby.xml b/basis/xmode/modes/ruby.xml
similarity index 100%
rename from extra/xmode/modes/ruby.xml
rename to basis/xmode/modes/ruby.xml
diff --git a/extra/xmode/modes/rview.xml b/basis/xmode/modes/rview.xml
similarity index 100%
rename from extra/xmode/modes/rview.xml
rename to basis/xmode/modes/rview.xml
diff --git a/extra/xmode/modes/sas.xml b/basis/xmode/modes/sas.xml
similarity index 100%
rename from extra/xmode/modes/sas.xml
rename to basis/xmode/modes/sas.xml
diff --git a/extra/xmode/modes/scheme.xml b/basis/xmode/modes/scheme.xml
similarity index 100%
rename from extra/xmode/modes/scheme.xml
rename to basis/xmode/modes/scheme.xml
diff --git a/extra/xmode/modes/sdl_pr.xml b/basis/xmode/modes/sdl_pr.xml
similarity index 100%
rename from extra/xmode/modes/sdl_pr.xml
rename to basis/xmode/modes/sdl_pr.xml
diff --git a/extra/xmode/modes/sgml.xml b/basis/xmode/modes/sgml.xml
similarity index 100%
rename from extra/xmode/modes/sgml.xml
rename to basis/xmode/modes/sgml.xml
diff --git a/extra/xmode/modes/shellscript.xml b/basis/xmode/modes/shellscript.xml
similarity index 100%
rename from extra/xmode/modes/shellscript.xml
rename to basis/xmode/modes/shellscript.xml
diff --git a/extra/xmode/modes/shtml.xml b/basis/xmode/modes/shtml.xml
similarity index 100%
rename from extra/xmode/modes/shtml.xml
rename to basis/xmode/modes/shtml.xml
diff --git a/extra/xmode/modes/slate.xml b/basis/xmode/modes/slate.xml
similarity index 100%
rename from extra/xmode/modes/slate.xml
rename to basis/xmode/modes/slate.xml
diff --git a/extra/xmode/modes/smalltalk.xml b/basis/xmode/modes/smalltalk.xml
similarity index 100%
rename from extra/xmode/modes/smalltalk.xml
rename to basis/xmode/modes/smalltalk.xml
diff --git a/extra/xmode/modes/smi-mib.xml b/basis/xmode/modes/smi-mib.xml
similarity index 100%
rename from extra/xmode/modes/smi-mib.xml
rename to basis/xmode/modes/smi-mib.xml
diff --git a/extra/xmode/modes/splus.xml b/basis/xmode/modes/splus.xml
similarity index 100%
rename from extra/xmode/modes/splus.xml
rename to basis/xmode/modes/splus.xml
diff --git a/extra/xmode/modes/sql-loader.xml b/basis/xmode/modes/sql-loader.xml
similarity index 100%
rename from extra/xmode/modes/sql-loader.xml
rename to basis/xmode/modes/sql-loader.xml
diff --git a/extra/xmode/modes/sqr.xml b/basis/xmode/modes/sqr.xml
similarity index 100%
rename from extra/xmode/modes/sqr.xml
rename to basis/xmode/modes/sqr.xml
diff --git a/extra/xmode/modes/squidconf.xml b/basis/xmode/modes/squidconf.xml
similarity index 100%
rename from extra/xmode/modes/squidconf.xml
rename to basis/xmode/modes/squidconf.xml
diff --git a/extra/xmode/modes/ssharp.xml b/basis/xmode/modes/ssharp.xml
similarity index 100%
rename from extra/xmode/modes/ssharp.xml
rename to basis/xmode/modes/ssharp.xml
diff --git a/extra/xmode/modes/svn-commit.xml b/basis/xmode/modes/svn-commit.xml
similarity index 100%
rename from extra/xmode/modes/svn-commit.xml
rename to basis/xmode/modes/svn-commit.xml
diff --git a/extra/xmode/modes/swig.xml b/basis/xmode/modes/swig.xml
similarity index 100%
rename from extra/xmode/modes/swig.xml
rename to basis/xmode/modes/swig.xml
diff --git a/extra/xmode/modes/tcl.xml b/basis/xmode/modes/tcl.xml
similarity index 100%
rename from extra/xmode/modes/tcl.xml
rename to basis/xmode/modes/tcl.xml
diff --git a/extra/xmode/modes/tex.xml b/basis/xmode/modes/tex.xml
similarity index 100%
rename from extra/xmode/modes/tex.xml
rename to basis/xmode/modes/tex.xml
diff --git a/extra/xmode/modes/texinfo.xml b/basis/xmode/modes/texinfo.xml
similarity index 100%
rename from extra/xmode/modes/texinfo.xml
rename to basis/xmode/modes/texinfo.xml
diff --git a/extra/xmode/modes/text.xml b/basis/xmode/modes/text.xml
similarity index 100%
rename from extra/xmode/modes/text.xml
rename to basis/xmode/modes/text.xml
diff --git a/extra/xmode/modes/tpl.xml b/basis/xmode/modes/tpl.xml
similarity index 100%
rename from extra/xmode/modes/tpl.xml
rename to basis/xmode/modes/tpl.xml
diff --git a/extra/xmode/modes/tsql.xml b/basis/xmode/modes/tsql.xml
similarity index 100%
rename from extra/xmode/modes/tsql.xml
rename to basis/xmode/modes/tsql.xml
diff --git a/extra/xmode/modes/tthtml.xml b/basis/xmode/modes/tthtml.xml
similarity index 100%
rename from extra/xmode/modes/tthtml.xml
rename to basis/xmode/modes/tthtml.xml
diff --git a/extra/xmode/modes/twiki.xml b/basis/xmode/modes/twiki.xml
similarity index 100%
rename from extra/xmode/modes/twiki.xml
rename to basis/xmode/modes/twiki.xml
diff --git a/extra/xmode/modes/typoscript.xml b/basis/xmode/modes/typoscript.xml
similarity index 100%
rename from extra/xmode/modes/typoscript.xml
rename to basis/xmode/modes/typoscript.xml
diff --git a/extra/xmode/modes/uscript.xml b/basis/xmode/modes/uscript.xml
similarity index 100%
rename from extra/xmode/modes/uscript.xml
rename to basis/xmode/modes/uscript.xml
diff --git a/extra/xmode/modes/vbscript.xml b/basis/xmode/modes/vbscript.xml
similarity index 100%
rename from extra/xmode/modes/vbscript.xml
rename to basis/xmode/modes/vbscript.xml
diff --git a/extra/xmode/modes/velocity.xml b/basis/xmode/modes/velocity.xml
similarity index 100%
rename from extra/xmode/modes/velocity.xml
rename to basis/xmode/modes/velocity.xml
diff --git a/extra/xmode/modes/verilog.xml b/basis/xmode/modes/verilog.xml
similarity index 100%
rename from extra/xmode/modes/verilog.xml
rename to basis/xmode/modes/verilog.xml
diff --git a/extra/xmode/modes/vhdl.xml b/basis/xmode/modes/vhdl.xml
similarity index 100%
rename from extra/xmode/modes/vhdl.xml
rename to basis/xmode/modes/vhdl.xml
diff --git a/extra/xmode/modes/xml.xml b/basis/xmode/modes/xml.xml
similarity index 100%
rename from extra/xmode/modes/xml.xml
rename to basis/xmode/modes/xml.xml
diff --git a/extra/xmode/modes/xq.xml b/basis/xmode/modes/xq.xml
similarity index 100%
rename from extra/xmode/modes/xq.xml
rename to basis/xmode/modes/xq.xml
diff --git a/extra/xmode/modes/xsl.xml b/basis/xmode/modes/xsl.xml
similarity index 100%
rename from extra/xmode/modes/xsl.xml
rename to basis/xmode/modes/xsl.xml
diff --git a/extra/xmode/modes/zpt.xml b/basis/xmode/modes/zpt.xml
similarity index 100%
rename from extra/xmode/modes/zpt.xml
rename to basis/xmode/modes/zpt.xml
diff --git a/extra/xmode/rules/authors.txt b/basis/xmode/rules/authors.txt
similarity index 100%
rename from extra/xmode/rules/authors.txt
rename to basis/xmode/rules/authors.txt
diff --git a/extra/xmode/rules/rules-tests.factor b/basis/xmode/rules/rules-tests.factor
similarity index 100%
rename from extra/xmode/rules/rules-tests.factor
rename to basis/xmode/rules/rules-tests.factor
diff --git a/extra/xmode/rules/rules.factor b/basis/xmode/rules/rules.factor
similarity index 100%
rename from extra/xmode/rules/rules.factor
rename to basis/xmode/rules/rules.factor
diff --git a/extra/xmode/summary.txt b/basis/xmode/summary.txt
similarity index 100%
rename from extra/xmode/summary.txt
rename to basis/xmode/summary.txt
diff --git a/extra/xmode/tokens/authors.txt b/basis/xmode/tokens/authors.txt
similarity index 100%
rename from extra/xmode/tokens/authors.txt
rename to basis/xmode/tokens/authors.txt
diff --git a/extra/xmode/tokens/tokens.factor b/basis/xmode/tokens/tokens.factor
similarity index 100%
rename from extra/xmode/tokens/tokens.factor
rename to basis/xmode/tokens/tokens.factor
diff --git a/extra/xmode/utilities/authors.txt b/basis/xmode/utilities/authors.txt
similarity index 100%
rename from extra/xmode/utilities/authors.txt
rename to basis/xmode/utilities/authors.txt
diff --git a/extra/xmode/utilities/test.xml b/basis/xmode/utilities/test.xml
similarity index 100%
rename from extra/xmode/utilities/test.xml
rename to basis/xmode/utilities/test.xml
diff --git a/extra/xmode/utilities/utilities-tests.factor b/basis/xmode/utilities/utilities-tests.factor
similarity index 95%
rename from extra/xmode/utilities/utilities-tests.factor
rename to basis/xmode/utilities/utilities-tests.factor
index e4946701dd..45238ca2b1 100755
--- a/extra/xmode/utilities/utilities-tests.factor
+++ b/basis/xmode/utilities/utilities-tests.factor
@@ -47,6 +47,6 @@ TAGS>
"PUBLIC"
}
] [
- "resource:extra/xmode/utilities/test.xml"
+ "resource:basis/xmode/utilities/test.xml"
file>xml parse-company-tag
] unit-test
diff --git a/extra/xmode/utilities/utilities.factor b/basis/xmode/utilities/utilities.factor
similarity index 100%
rename from extra/xmode/utilities/utilities.factor
rename to basis/xmode/utilities/utilities.factor
diff --git a/extra/xmode/xmode.dtd b/basis/xmode/xmode.dtd
similarity index 100%
rename from extra/xmode/xmode.dtd
rename to basis/xmode/xmode.dtd
diff --git a/core/generic/generic-tests.factor b/core/generic/generic-tests.factor
index ab39cbcbb8..22c690ffaf 100755
--- a/core/generic/generic-tests.factor
+++ b/core/generic/generic-tests.factor
@@ -2,7 +2,7 @@ USING: accessors alien arrays definitions generic generic.standard
generic.math assocs hashtables io kernel math namespaces parser
prettyprint sequences strings tools.test vectors words
quotations classes classes.algebra classes.tuple continuations
-layouts classes.union sorting compiler.units eval ;
+layouts classes.union sorting compiler.units eval multiline ;
IN: generic.tests
GENERIC: foobar ( x -- y )
@@ -135,7 +135,7 @@ M: f tag-and-f 4 ;
[ 3.4 3 ] [ 3.4 tag-and-f ] unit-test
! Issues with forget
-GENERIC: generic-forget-test-1
+GENERIC: generic-forget-test-1 ( a b -- c )
M: integer generic-forget-test-1 / ;
@@ -187,7 +187,7 @@ M: f generic-forget-test-3 ;
: a-word ;
-GENERIC: a-generic
+GENERIC: a-generic ( a -- b )
M: integer a-generic a-word ;
@@ -198,3 +198,27 @@ M: integer a-generic a-word ;
[ ] [ "IN: generic.tests : a-generic ;" eval ] unit-test
[ f ] [ "m" get \ a-word usage memq? ] unit-test
+
+! erg's regression
+[ ] [
+ <"
+ IN: compiler.tests
+
+ GENERIC: jeah ( a -- b )
+ TUPLE: boii ;
+ M: boii jeah ;
+ GENERIC: jeah* ( a -- b )
+ M: boii jeah* jeah ;
+ "> eval
+
+ <"
+ IN: compiler.tests
+ FORGET: boii
+ "> eval
+
+ <"
+ IN: compiler.tests
+ TUPLE: boii ;
+ M: boii jeah ;
+ "> eval
+] unit-test
diff --git a/core/generic/generic.factor b/core/generic/generic.factor
index f2c154b3b2..c0a21dbaba 100755
--- a/core/generic/generic.factor
+++ b/core/generic/generic.factor
@@ -130,7 +130,7 @@ M: method-spec definition
first2 method definition ;
M: method-spec forget*
- first2 method forget* ;
+ first2 method [ forgotten-definition ] [ forget* ] bi ;
M: method-spec smart-usage
second smart-usage ;
diff --git a/core/vocabs/loader/loader.factor b/core/vocabs/loader/loader.factor
index 522e7d74c3..4677a7b5d7 100755
--- a/core/vocabs/loader/loader.factor
+++ b/core/vocabs/loader/loader.factor
@@ -57,7 +57,6 @@ SYMBOL: load-help?
t over set-vocab-source-loaded?
[ [ % ] [ call ] if-bootstrapping ] dip ;
-
: load-docs ( vocab -- vocab )
load-help? get [
f over set-vocab-docs-loaded?
diff --git a/unmaintained/graphics/authors.txt b/extra/graphics/authors.txt
similarity index 100%
rename from unmaintained/graphics/authors.txt
rename to extra/graphics/authors.txt
diff --git a/unmaintained/graphics/bitmap/authors.txt b/extra/graphics/bitmap/authors.txt
similarity index 100%
rename from unmaintained/graphics/bitmap/authors.txt
rename to extra/graphics/bitmap/authors.txt
diff --git a/unmaintained/graphics/bitmap/bitmap.factor b/extra/graphics/bitmap/bitmap.factor
similarity index 54%
rename from unmaintained/graphics/bitmap/bitmap.factor
rename to extra/graphics/bitmap/bitmap.factor
index d2ddad0ae3..82fdc334cb 100755
--- a/unmaintained/graphics/bitmap/bitmap.factor
+++ b/extra/graphics/bitmap/bitmap.factor
@@ -4,7 +4,8 @@
USING: alien arrays byte-arrays combinators summary
io.backend graphics.viewer io io.binary io.files kernel libc
math math.functions namespaces opengl opengl.gl prettyprint
-sequences strings ui ui.gadgets.panes io.encodings.binary ;
+sequences strings ui ui.gadgets.panes io.encodings.binary
+accessors ;
IN: graphics.bitmap
! Currently can only handle 24bit bitmaps.
@@ -31,36 +32,35 @@ M: bitmap-magic summary
drop "First two bytes of bitmap stream must be 'BM'" ;
: parse-file-header ( bitmap -- )
- 2 read >string dup "BM" = [ bitmap-magic ] unless
- over set-bitmap-magic
- 4 read le> over set-bitmap-size
- 4 read le> over set-bitmap-reserved
- 4 read le> swap set-bitmap-offset ;
+ 2 read >string dup "BM" = [ bitmap-magic ] unless >>magic
+ 4 read le> >>size
+ 4 read le> >>reserved
+ 4 read le> >>offset drop ;
: parse-bitmap-header ( bitmap -- )
- 4 read le> over set-bitmap-header-length
- 4 read le> over set-bitmap-width
- 4 read le> over set-bitmap-height
- 2 read le> over set-bitmap-planes
- 2 read le> over set-bitmap-bit-count
- 4 read le> over set-bitmap-compression
- 4 read le> over set-bitmap-size-image
- 4 read le> over set-bitmap-x-pels
- 4 read le> over set-bitmap-y-pels
- 4 read le> over set-bitmap-color-used
- 4 read le> swap set-bitmap-color-important ;
+ 4 read le> >>header-length
+ 4 read le> >>width
+ 4 read le> >>height
+ 2 read le> >>planes
+ 2 read le> >>bit-count
+ 4 read le> >>compression
+ 4 read le> >>size-image
+ 4 read le> >>x-pels
+ 4 read le> >>y-pels
+ 4 read le> >>color-used
+ 4 read le> >>color-important drop ;
: rgb-quads-length ( bitmap -- n )
- [ bitmap-offset 14 - ] keep bitmap-header-length - ;
+ [ offset>> 14 - ] keep header-length>> - ;
: color-index-length ( bitmap -- n )
- [ bitmap-width ] keep [ bitmap-planes * ] keep
- [ bitmap-bit-count * 31 + 32 /i 4 * ] keep
- bitmap-height abs * ;
+ [ width>> ] keep [ planes>> * ] keep
+ [ bit-count>> * 31 + 32 /i 4 * ] keep
+ height>> abs * ;
: parse-bitmap ( bitmap -- )
- dup rgb-quads-length read over set-bitmap-rgb-quads
- dup color-index-length read swap set-bitmap-color-index ;
+ dup rgb-quads-length read >>rgb-quads
+ dup color-index-length read >>color-index drop ;
: load-bitmap ( path -- bitmap )
normalize-path binary [
@@ -69,50 +69,52 @@ M: bitmap-magic summary
dup parse-bitmap-header
dup parse-bitmap
] with-file-reader
- dup bitmap-color-index over bitmap-bit-count
- raw-bitmap>string >byte-array over set-bitmap-array ;
+ dup color-index>> over bit-count>>
+ raw-bitmap>string >byte-array >>array ;
: save-bitmap ( bitmap path -- )
binary [
"BM" write
- dup bitmap-array length 14 + 40 + 4 >le write
+ dup array>> length 14 + 40 + 4 >le write
0 4 >le write
54 4 >le write
40 4 >le write
- dup bitmap-width 4 >le write
- dup bitmap-height 4 >le write
- dup bitmap-planes 1 or 2 >le write
- dup bitmap-bit-count 24 or 2 >le write
- dup bitmap-compression 0 or 4 >le write
- dup bitmap-size-image 4 >le write
- dup bitmap-x-pels 4 >le write
- dup bitmap-y-pels 4 >le write
- dup bitmap-color-used 4 >le write
- dup bitmap-color-important 4 >le write
- dup bitmap-rgb-quads write
- bitmap-color-index write
+ {
+ [ width>> 4 >le write ]
+ [ height>> 4 >le write ]
+ [ planes>> 1 or 2 >le write ]
+ [ bit-count>> 24 or 2 >le write ]
+ [ compression>> 0 or 4 >le write ]
+ [ size-image>> 4 >le write ]
+ [ x-pels>> 4 >le write ]
+ [ y-pels>> 4 >le write ]
+ [ color-used>> 4 >le write ]
+ [ color-important>> 4 >le write ]
+ [ rgb-quads>> write ]
+ [ color-index>> write ]
+ } cleave
] with-file-writer ;
M: bitmap draw-image ( bitmap -- )
- dup bitmap-height 0 < [
+ dup height>> 0 < [
0 0 glRasterPos2i
1.0 -1.0 glPixelZoom
] [
- 0 over bitmap-height abs glRasterPos2i
+ 0 over height>> abs glRasterPos2i
1.0 1.0 glPixelZoom
] if
- [ bitmap-width ] keep
+ [ width>> ] keep
[
- [ bitmap-height abs ] keep
- bitmap-bit-count {
+ [ height>> abs ] keep
+ bit-count>> {
! { 32 [ GL_BGRA GL_UNSIGNED_INT_8_8_8_8 ] } ! broken
{ 24 [ GL_BGR GL_UNSIGNED_BYTE ] }
} case
- ] keep bitmap-array glDrawPixels ;
+ ] keep array>> glDrawPixels ;
-M: bitmap width ( bitmap -- ) bitmap-width ;
-M: bitmap height ( bitmap -- ) bitmap-height ;
+M: bitmap width ( bitmap -- ) width>> ;
+M: bitmap height ( bitmap -- ) height>> ;
: bitmap. ( path -- )
load-bitmap gadget. ;
diff --git a/unmaintained/graphics/bitmap/test-images/1bit.bmp b/extra/graphics/bitmap/test-images/1bit.bmp
similarity index 100%
rename from unmaintained/graphics/bitmap/test-images/1bit.bmp
rename to extra/graphics/bitmap/test-images/1bit.bmp
diff --git a/unmaintained/graphics/bitmap/test-images/rgb4bit.bmp b/extra/graphics/bitmap/test-images/rgb4bit.bmp
similarity index 100%
rename from unmaintained/graphics/bitmap/test-images/rgb4bit.bmp
rename to extra/graphics/bitmap/test-images/rgb4bit.bmp
diff --git a/unmaintained/graphics/bitmap/test-images/rgb8bit.bmp b/extra/graphics/bitmap/test-images/rgb8bit.bmp
similarity index 100%
rename from unmaintained/graphics/bitmap/test-images/rgb8bit.bmp
rename to extra/graphics/bitmap/test-images/rgb8bit.bmp
diff --git a/unmaintained/graphics/bitmap/test-images/thiswayup24.bmp b/extra/graphics/bitmap/test-images/thiswayup24.bmp
similarity index 100%
rename from unmaintained/graphics/bitmap/test-images/thiswayup24.bmp
rename to extra/graphics/bitmap/test-images/thiswayup24.bmp
diff --git a/unmaintained/graphics/tags.txt b/extra/graphics/tags.txt
similarity index 100%
rename from unmaintained/graphics/tags.txt
rename to extra/graphics/tags.txt
diff --git a/unmaintained/graphics/viewer/authors.txt b/extra/graphics/viewer/authors.txt
similarity index 100%
rename from unmaintained/graphics/viewer/authors.txt
rename to extra/graphics/viewer/authors.txt
diff --git a/unmaintained/graphics/viewer/viewer.factor b/extra/graphics/viewer/viewer.factor
similarity index 57%
rename from unmaintained/graphics/viewer/viewer.factor
rename to extra/graphics/viewer/viewer.factor
index 938dc61c09..0533ffaf5d 100644
--- a/unmaintained/graphics/viewer/viewer.factor
+++ b/extra/graphics/viewer/viewer.factor
@@ -1,26 +1,21 @@
! Copyright (C) 2007 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
-
USING: arrays kernel math math.functions namespaces opengl
-ui.gadgets ui.render ;
+ui.gadgets ui.render accessors ;
IN: graphics.viewer
-TUPLE: graphics-gadget image ;
+TUPLE: graphics-gadget < gadget image ;
GENERIC: draw-image ( image -- )
GENERIC: width ( image -- w )
GENERIC: height ( image -- h )
M: graphics-gadget pref-dim*
- graphics-gadget-image
- [ width ] keep height abs 2array ;
+ image>> [ width ] keep height abs 2array ;
M: graphics-gadget draw-gadget* ( gadget -- )
- origin get [
- graphics-gadget-image draw-image
- ] with-translation ;
+ origin get [ image>> draw-image ] with-translation ;
: ( bitmap -- gadget )
- \ graphics-gadget construct-gadget
- [ set-graphics-gadget-image ] keep ;
-
+ \ graphics-gadget new-gadget
+ swap >>image ;
diff --git a/extra/webapps/wiki/initial-content/Farkup.txt b/extra/webapps/wiki/initial-content/Farkup.txt
index 8814af6c0a..9c1fb5e7db 100644
--- a/extra/webapps/wiki/initial-content/Farkup.txt
+++ b/extra/webapps/wiki/initial-content/Farkup.txt
@@ -16,10 +16,14 @@ Images can be embedded in the text:
[[image:http://factorcode.org/graphics/logo.png]]
+Lists:
+
- a list
- with three
- items
+Tables:
+
|a table|with|four|columns|
|and|two|rows|...|
diff --git a/extra/websites/concatenative/concatenative.factor b/extra/websites/concatenative/concatenative.factor
index 1ae7f63a27..11d8fa27c2 100644
--- a/extra/websites/concatenative/concatenative.factor
+++ b/extra/websites/concatenative/concatenative.factor
@@ -76,8 +76,8 @@ SYMBOL: dh-file
init-factor-db ;
: init-testing ( -- )
- "resource:extra/openssl/test/dh1024.pem" dh-file set-global
- "resource:extra/openssl/test/server.pem" key-file set-global
+ "resource:basis/openssl/test/dh1024.pem" dh-file set-global
+ "resource:basis/openssl/test/server.pem" key-file set-global
"password" key-password set-global
common-configuration ;
diff --git a/unfinished/vocab-browser/vocab-browser.factor b/unfinished/vocab-browser/vocab-browser.factor
index c5203a4894..cec2dd21e7 100644
--- a/unfinished/vocab-browser/vocab-browser.factor
+++ b/unfinished/vocab-browser/vocab-browser.factor
@@ -20,18 +20,6 @@ IN: vocab-browser
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-: pprint-class ( class -- )
- [
- \ TUPLE: pprint-word dup pprint-word
- dup superclass tuple eq?
- [ "<" text dup superclass pprint-word ] unless
- pprint-;
- ]
- with-pprint nl ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
: word-effect-as-string ( word -- string )
stack-effect dup
[ effect>string ]
@@ -71,10 +59,21 @@ IN: vocab-browser
[ drop ]
[
"Predicate Classes" $heading nl
- [ pprint-class ] each
+ ! [ pprint-class ] each
+ [ { [ ] [ superclass ] } 1arr ] map
+ { "CLASS" "SUPERCLASS" } prefix
+ print-table
+ ]
+ if
+
+ dup vocab words [ class? not ] filter [ symbol? ] filter natural-sort
+ dup empty?
+ [ drop ]
+ [
+ "Symbols" $heading nl
+ print-seq
]
if
-
dup vocab words [ generic? ] filter natural-sort
dup empty?
@@ -92,6 +91,7 @@ IN: vocab-browser
[ builtin-class? not ] filter
[ tuple-class? not ] filter
[ generic? not ] filter
+ [ symbol? not ] filter
[ word? ] filter
natural-sort
[ [ ] [ word-effect-as-string ] bi 2array ] map
@@ -254,6 +254,40 @@ M: load-this-vocab pprint* ( obj -- )
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+M: vocab-author pprint* ( vocab-author -- ) [ name>> ] [ ] bi write-object ;
+
+: $vocab-authors ( seq -- )
+ drop all-authors [ vocab-author boa ] map print-seq ;
+
+ARTICLE: "vocab-authors" "Vocabulary Authors" { $vocab-authors } ;
+
+: vocabs-by-author ( author -- vocab-names )
+ authored values concat [ name>> ] map ;
+
+: $vocabs-by-author ( seq -- )
+ first name>> vocabs-by-author print-these-vocabs ;
+
+M: vocab-author article-content ( vocab-author -- content )
+ { $vocabs-by-author } swap suffix ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+M: vocab-tag pprint* ( vocab-tag -- ) [ name>> ] [ ] bi write-object ;
+
+: print-vocab-tags ( -- ) all-tags [ vocab-tag boa ] map print-seq ;
+
+: $vocab-tags ( seq -- ) drop print-vocab-tags ;
+
+ARTICLE: "vocab-tags" "Vocabulary Tags" { $vocab-tags } ;
+
+: $vocabs-with-tag ( seq -- )
+ first tagged values concat [ name>> ] map print-these-vocabs ;
+
+M: vocab-tag article-content ( vocab-tag -- content )
+ name>> { $vocabs-with-tag } swap suffix ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
ARTICLE: "vocab-index-all" "All Vocabularies" { $all-vocabs } ;
ARTICLE: "vocab-index-loaded" "Loaded Vocabularies" { $loaded-vocabs } ;
ARTICLE: "vocab-index-unloaded" "Unloaded Vocabularies" { $loaded-vocabs } ;
@@ -268,4 +302,9 @@ ARTICLE: "vocab-indices" "Vocabulary Indices"
{ $subsection "vocab-index-extra" }
{ $subsection "vocab-index-all" }
{ $subsection "vocab-index-loaded" }
- { $subsection "vocab-index-unloaded" } ;
\ No newline at end of file
+ { $subsection "vocab-index-unloaded" }
+ { $subsection "vocab-authors" }
+ { $subsection "vocab-tags" } ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+