cleanups
parent
e6a24eb355
commit
bd9c30b367
|
@ -1,6 +1,3 @@
|
||||||
- reader syntax for arrays, byte arrays, displaced aliens
|
|
||||||
- out of memory error when printing global namespace
|
|
||||||
- removing unneeded #label
|
|
||||||
- finish scrollbars
|
- finish scrollbars
|
||||||
- fix up the min thumb size hack
|
- fix up the min thumb size hack
|
||||||
|
|
||||||
|
@ -54,6 +51,7 @@
|
||||||
|
|
||||||
+ compiler:
|
+ compiler:
|
||||||
|
|
||||||
|
- removing unneeded #label
|
||||||
- flushing optimization
|
- flushing optimization
|
||||||
- compile-byte/cell: instantiating aliens
|
- compile-byte/cell: instantiating aliens
|
||||||
- fix fixnum<< and /i overflow on PowerPC
|
- fix fixnum<< and /i overflow on PowerPC
|
||||||
|
@ -71,6 +69,8 @@
|
||||||
|
|
||||||
+ kernel:
|
+ kernel:
|
||||||
|
|
||||||
|
- reader syntax for arrays, byte arrays, displaced aliens
|
||||||
|
- out of memory error when printing global namespace
|
||||||
- first time hash/vector is grown, set size to something big
|
- first time hash/vector is grown, set size to something big
|
||||||
- merge timers with sleeping tasks
|
- merge timers with sleeping tasks
|
||||||
- what about tasks and timers between image restarts
|
- what about tasks and timers between image restarts
|
||||||
|
|
|
@ -4392,7 +4392,6 @@ Key&Description\\
|
||||||
\ttindex{underline}&A boolean\\
|
\ttindex{underline}&A boolean\\
|
||||||
\ttindex{presented}&If set, a presentation for this object is output\\
|
\ttindex{presented}&If set, a presentation for this object is output\\
|
||||||
\ttindex{file}&If set, a hyperlink to that file is output\\
|
\ttindex{file}&If set, a hyperlink to that file is output\\
|
||||||
\ttindex{icon}&If set, the icon named by this resource path is output\\
|
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
All keys are symbols in the \verb|styles| vocabulary.
|
All keys are symbols in the \verb|styles| vocabulary.
|
||||||
|
|
|
@ -69,7 +69,6 @@ sequences io vectors words ;
|
||||||
"/library/io/string-streams.factor"
|
"/library/io/string-streams.factor"
|
||||||
"/library/io/c-streams.factor"
|
"/library/io/c-streams.factor"
|
||||||
"/library/io/files.factor"
|
"/library/io/files.factor"
|
||||||
"/library/io/directories.factor"
|
|
||||||
"/library/io/binary.factor"
|
"/library/io/binary.factor"
|
||||||
|
|
||||||
"/library/syntax/parse-words.factor"
|
"/library/syntax/parse-words.factor"
|
||||||
|
|
|
@ -10,19 +10,15 @@ test-responder ;
|
||||||
global [
|
global [
|
||||||
{{ }} clone responders set
|
{{ }} clone responders set
|
||||||
|
|
||||||
! Runs all unit tests and dumps result to the client. This uses
|
|
||||||
! a lot of server resources, so disable it on a busy server.
|
|
||||||
[
|
|
||||||
"test" "responder" set
|
|
||||||
[ test-responder ] "get" set
|
|
||||||
] make-responder
|
|
||||||
|
|
||||||
! 404 error message pages are served by this guy
|
! 404 error message pages are served by this guy
|
||||||
[
|
[
|
||||||
"404" "responder" set
|
"404" "responder" set
|
||||||
[ drop no-such-responder ] "get" set
|
[ drop no-such-responder ] "get" set
|
||||||
] make-responder
|
] make-responder
|
||||||
|
|
||||||
|
! Servers Factor word definitions from the image.
|
||||||
|
"browser" [ browser-responder ] install-cont-responder
|
||||||
|
|
||||||
! Serves files from a directory stored in the "doc-root"
|
! Serves files from a directory stored in the "doc-root"
|
||||||
! variable. You can set the variable in the global namespace,
|
! variable. You can set the variable in the global namespace,
|
||||||
! or inside the responder.
|
! or inside the responder.
|
||||||
|
@ -34,15 +30,6 @@ global [
|
||||||
[ file-responder ] "head" set
|
[ file-responder ] "head" set
|
||||||
] make-responder
|
] make-responder
|
||||||
|
|
||||||
! Serves Factor source code
|
|
||||||
[
|
|
||||||
"resource" "responder" set
|
|
||||||
[ resource-responder ] "get" set
|
|
||||||
] make-responder
|
|
||||||
|
|
||||||
! Servers Factor word definitions from the image.
|
|
||||||
"browser" [ browser-responder ] install-cont-responder
|
|
||||||
|
|
||||||
! The root directory is served by...
|
! The root directory is served by...
|
||||||
"file" set-default-responder
|
"file" set-default-responder
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,18 @@ io strings ;
|
||||||
serve-static
|
serve-static
|
||||||
] ifte ;
|
] ifte ;
|
||||||
|
|
||||||
|
: file-link. ( text path -- )
|
||||||
|
file swons unit format ;
|
||||||
|
|
||||||
|
: file-type. ( path -- )
|
||||||
|
directory? "[DIR ] " "[FILE] " ? write ;
|
||||||
|
|
||||||
|
: file. ( dir name -- )
|
||||||
|
tuck path+ [ file-type. ] keep file-link. ;
|
||||||
|
|
||||||
|
: directory. ( dir -- )
|
||||||
|
dup directory [ file. terpri ] each-with ;
|
||||||
|
|
||||||
: list-directory ( directory -- )
|
: list-directory ( directory -- )
|
||||||
serving-html
|
serving-html
|
||||||
"method" get "head" = [
|
"method" get "head" = [
|
||||||
|
|
|
@ -91,16 +91,6 @@ presentation sequences strings styles words ;
|
||||||
drop call
|
drop call
|
||||||
] ifte ;
|
] ifte ;
|
||||||
|
|
||||||
: icon-tag ( string style quot -- )
|
|
||||||
over icon swap assoc dup [
|
|
||||||
<img src= "/responder/resource/" swap append img/>
|
|
||||||
#! Ignore the quotation, since no further style
|
|
||||||
#! can be applied
|
|
||||||
3drop
|
|
||||||
] [
|
|
||||||
drop call
|
|
||||||
] ifte ;
|
|
||||||
|
|
||||||
TUPLE: html-stream ;
|
TUPLE: html-stream ;
|
||||||
|
|
||||||
M: html-stream stream-write1 ( char stream -- )
|
M: html-stream stream-write1 ( char stream -- )
|
||||||
|
@ -112,10 +102,8 @@ M: html-stream stream-format ( str style stream -- )
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
[
|
[ drop chars>entities write ] span-tag
|
||||||
[ drop chars>entities write ] span-tag
|
] file-link-tag
|
||||||
] file-link-tag
|
|
||||||
] icon-tag
|
|
||||||
] browser-link-tag
|
] browser-link-tag
|
||||||
] with-wrapper ;
|
] with-wrapper ;
|
||||||
|
|
||||||
|
@ -131,7 +119,6 @@ C: html-stream ( stream -- stream )
|
||||||
#! font-style
|
#! font-style
|
||||||
#! font-size
|
#! font-size
|
||||||
#! underline
|
#! underline
|
||||||
#! icon
|
|
||||||
#! file
|
#! file
|
||||||
#! word
|
#! word
|
||||||
#! vocab
|
#! vocab
|
||||||
|
|
|
@ -7,8 +7,6 @@ USING: kernel parser sequences io ;
|
||||||
"/library/httpd/responder.factor"
|
"/library/httpd/responder.factor"
|
||||||
"/library/httpd/httpd.factor"
|
"/library/httpd/httpd.factor"
|
||||||
"/library/httpd/file-responder.factor"
|
"/library/httpd/file-responder.factor"
|
||||||
"/library/httpd/test-responder.factor"
|
|
||||||
"/library/httpd/resource-responder.factor"
|
|
||||||
"/library/httpd/cont-responder.factor"
|
"/library/httpd/cont-responder.factor"
|
||||||
"/library/httpd/browser-responder.factor"
|
"/library/httpd/browser-responder.factor"
|
||||||
"/library/httpd/default-responders.factor"
|
"/library/httpd/default-responders.factor"
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
! Copyright (C) 2004, 2005 Slava Pestov.
|
|
||||||
! See http://factor.sf.net/license.txt for BSD license.
|
|
||||||
IN: resource-responder
|
|
||||||
USING: httpd kernel lists namespaces io ;
|
|
||||||
|
|
||||||
: resource-response ( mime-type -- )
|
|
||||||
"Content-Type" swons unit "200 OK" response terpri ;
|
|
||||||
|
|
||||||
: serve-resource ( filename mime-type -- )
|
|
||||||
dup mime-type resource-response "method" get "head" = [
|
|
||||||
drop
|
|
||||||
] [
|
|
||||||
<resource-stream> stdio get stream-copy
|
|
||||||
] ifte ;
|
|
||||||
|
|
||||||
: resource-responder ( filename -- )
|
|
||||||
"resource-path" get [
|
|
||||||
serve-resource
|
|
||||||
] [
|
|
||||||
drop "404 resource-path not set" httpd-error
|
|
||||||
] ifte ;
|
|
|
@ -1,9 +0,0 @@
|
||||||
! Copyright (C) 2004, 2005 Slava Pestov.
|
|
||||||
! See http://factor.sf.net/license.txt for BSD license.
|
|
||||||
IN: test-responder
|
|
||||||
USING: html httpd kernel test ;
|
|
||||||
|
|
||||||
: test-responder ( argument -- )
|
|
||||||
drop
|
|
||||||
serving-html
|
|
||||||
"Factor Test Suite" [ all-tests ] simple-html-document ;
|
|
|
@ -1,24 +0,0 @@
|
||||||
! Copyright (C) 2004, 2005 Slava Pestov.
|
|
||||||
! See http://factor.sf.net/license.txt for BSD license.
|
|
||||||
IN: io
|
|
||||||
USING: hashtables kernel lists namespaces presentation sequences
|
|
||||||
strings styles ;
|
|
||||||
|
|
||||||
! Hyperlinked directory listings.
|
|
||||||
|
|
||||||
: dir-icon "/library/icons/Folder.png" ;
|
|
||||||
: file-icon "/library/icons/File.png" ;
|
|
||||||
: file-icon. directory? dir-icon file-icon ? write-icon ;
|
|
||||||
|
|
||||||
: file-link. ( dir name -- )
|
|
||||||
tuck path+ file swons unit format ;
|
|
||||||
|
|
||||||
: file. ( dir name -- )
|
|
||||||
#! If "doc-root" set, create links relative to it.
|
|
||||||
2dup path+ file-icon. " " write file-link. terpri ;
|
|
||||||
|
|
||||||
: directory. ( dir -- )
|
|
||||||
#! If "doc-root" set, create links relative to it.
|
|
||||||
dup directory [
|
|
||||||
dup [ "." ".." ] member? [ 2drop ] [ file. ] ifte
|
|
||||||
] each-with ;
|
|
|
@ -6,10 +6,16 @@ USING: kernel lists namespaces sequences strings ;
|
||||||
! Words for accessing filesystem meta-data.
|
! Words for accessing filesystem meta-data.
|
||||||
|
|
||||||
: path+ ( path path -- path ) "/" swap append3 ;
|
: path+ ( path path -- path ) "/" swap append3 ;
|
||||||
|
|
||||||
: exists? ( file -- ? ) stat >boolean ;
|
: exists? ( file -- ? ) stat >boolean ;
|
||||||
|
|
||||||
: directory? ( file -- ? ) stat car ;
|
: directory? ( file -- ? ) stat car ;
|
||||||
: directory ( dir -- list ) (directory) string-sort ;
|
|
||||||
|
: directory ( dir -- list )
|
||||||
|
(directory) { "." ".." } swap seq-diff string-sort ;
|
||||||
|
|
||||||
: file-length ( file -- length ) stat third ;
|
: file-length ( file -- length ) stat third ;
|
||||||
|
|
||||||
: file-extension ( filename -- extension )
|
: file-extension ( filename -- extension )
|
||||||
"." split cdr dup [ peek ] when ;
|
"." split cdr dup [ peek ] when ;
|
||||||
|
|
||||||
|
|
|
@ -14,10 +14,6 @@ USING: errors generic kernel lists namespaces strings styles ;
|
||||||
: terpri ( -- ) stdio get stream-terpri ;
|
: terpri ( -- ) stdio get stream-terpri ;
|
||||||
: close ( -- ) stdio get stream-close ;
|
: close ( -- ) stdio get stream-close ;
|
||||||
|
|
||||||
: write-icon ( resource -- )
|
|
||||||
#! Write an icon. Eg, /library/icons/File.png
|
|
||||||
icon swons unit "" swap format ;
|
|
||||||
|
|
||||||
: write-object ( string object -- )
|
: write-object ( string object -- )
|
||||||
presented swons unit format ;
|
presented swons unit format ;
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,5 @@ SYMBOL: bold-italic
|
||||||
|
|
||||||
SYMBOL: underline
|
SYMBOL: underline
|
||||||
|
|
||||||
SYMBOL: icon
|
|
||||||
|
|
||||||
SYMBOL: presented
|
SYMBOL: presented
|
||||||
SYMBOL: file
|
SYMBOL: file
|
||||||
|
|
Loading…
Reference in New Issue