Merge branch 'master' of git://factorcode.org/git/factor
commit
5d2ee2f4a3
|
@ -97,7 +97,7 @@ HELP: with-exit-continuation
|
|||
{ $notes "Furnace actions and authentication realms wrap their execution in this combinator, allowing form validation failures and login requests, respectively, to immediately return an HTTP response to the client without running any more responder code." } ;
|
||||
|
||||
ARTICLE: "furnace.extension-points" "Furnace extension points"
|
||||
"Furnace features such as session management, conversation scope and asides need to modify URLs in links and redirects, and insert hidden form fields, to implement state on top of the setateless HTTP protocol. In order to decouple the server-side state management code from the HTML templating code, a series of hooks are used."
|
||||
"Furnace features such as session management, conversation scope and asides need to modify URLs in links and redirects, and insert hidden form fields, to implement state on top of the stateless HTTP protocol. In order to decouple the server-side state management code from the HTML templating code, a series of hooks are used."
|
||||
$nl
|
||||
"Responders can implement methods on the following generic words:"
|
||||
{ $subsection modify-query }
|
||||
|
|
|
@ -7,10 +7,11 @@ namespaces make sequences ftp io.unix.launcher.parser
|
|||
unicode.case splitting assocs classes io.servers.connection
|
||||
destructors calendar io.timeouts io.streams.duplex threads
|
||||
continuations math concurrency.promises byte-arrays
|
||||
io.backend sequences.lib tools.hexdump io.files.listing ;
|
||||
io.backend sequences.lib tools.hexdump io.files.listing
|
||||
io.streams.string ;
|
||||
IN: ftp.server
|
||||
|
||||
TUPLE: ftp-client url mode state command-promise ;
|
||||
TUPLE: ftp-client url mode state command-promise user password ;
|
||||
|
||||
: <ftp-client> ( url -- ftp-client )
|
||||
ftp-client new
|
||||
|
@ -75,7 +76,7 @@ C: <ftp-list> ftp-list
|
|||
|
||||
: handle-USER ( ftp-command -- )
|
||||
[
|
||||
drop
|
||||
tokenized>> second client get (>>user)
|
||||
331 "Please specify the password." server-response
|
||||
] [
|
||||
2drop "bad USER" ftp-error
|
||||
|
@ -140,16 +141,16 @@ ERROR: type-error type ;
|
|||
150 "Here comes the directory listing." server-response ;
|
||||
|
||||
: finish-directory ( -- )
|
||||
226 "Opening " server-response ;
|
||||
226 "Directory send OK." server-response ;
|
||||
|
||||
GENERIC: service-command ( stream obj -- )
|
||||
|
||||
M: ftp-list service-command ( stream obj -- )
|
||||
drop
|
||||
start-directory
|
||||
[
|
||||
start-directory [
|
||||
utf8 encode-output
|
||||
directory. [ ftp-send ] each
|
||||
[ current-directory get directory. ] with-string-writer string-lines
|
||||
harvest [ ftp-send ] each
|
||||
] with-output-stream
|
||||
finish-directory ;
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ HELP: ptrim
|
|||
HELP: 2ptrim
|
||||
{ $values { "p" "a polynomial" } { "q" "a polynomial" } { "p" "a polynomial" } { "q" "a polynomial" } }
|
||||
{ $description "Trims excess zeros from two polynomials." }
|
||||
{ $examples { $example "USING: math.polynomials prettyprint ;" "{ 0 1 0 0 } { 1 0 0 } 2ptrim swap . ." "{ 0 1 }\n{ 1 }" } } ;
|
||||
{ $examples { $example "USING: kernel math.polynomials prettyprint ;" "{ 0 1 0 0 } { 1 0 0 } 2ptrim [ . ] bi@" "{ 0 1 }\n{ 1 }" } } ;
|
||||
|
||||
HELP: p+
|
||||
{ $values { "p" "a polynomial" } { "q" "a polynomial" } { "r" "a polynomial" } }
|
||||
|
@ -60,7 +60,7 @@ HELP: n*p
|
|||
HELP: pextend-conv
|
||||
{ $values { "p" "a polynomial" } { "q" "a polynomial" } { "p" "a polynomial" } { "q" "a polynomial" } }
|
||||
{ $description "Convulution, extending to " { $snippet "p_m + q_n - 1" } "." }
|
||||
{ $examples { $example "USING: math.polynomials prettyprint ;" "{ 1 0 1 } { 0 1 } pextend-conv swap . ." "V{ 1 0 1 0 }\nV{ 0 1 0 0 }" } } ;
|
||||
{ $examples { $example "USING: kernel math.polynomials prettyprint ;" "{ 1 0 1 } { 0 1 } pextend-conv [ . ] bi@" "V{ 1 0 1 0 }\nV{ 0 1 0 0 }" } } ;
|
||||
|
||||
HELP: p*
|
||||
{ $values { "p" "a polynomial" } { "q" "a polynomial" } { "r" "a polynomial" } }
|
||||
|
@ -75,13 +75,18 @@ HELP: p-sq
|
|||
HELP: p/mod
|
||||
{ $values { "p" "a polynomial" } { "q" "a polynomial" } { "z" "a polynomial" } { "w" "a polynomial" } }
|
||||
{ $description "Computes to quotient " { $snippet "z" } " and remainder " { $snippet "w" } " of dividing " { $snippet "p" } " by " { $snippet "q" } "." }
|
||||
{ $examples { $example "USING: math.polynomials prettyprint ;" "{ 1 1 1 1 } { 3 1 } p/mod swap . ." "V{ 7 -2 1 }\nV{ -20 0 0 }" } } ;
|
||||
{ $examples { $example "USING: kernel math.polynomials prettyprint ;" "{ 1 1 1 1 } { 3 1 } p/mod [ . ] bi@" "V{ 7 -2 1 }\nV{ -20 0 0 }" } } ;
|
||||
|
||||
HELP: pgcd
|
||||
{ $values { "p" "a polynomial" } { "q" "a polynomial" } { "a" "a polynomial" } { "d" "a polynomial" } }
|
||||
{ $description "Computes the greatest common divisor " { $snippet "d" } " of " { $snippet "p" } " and " { $snippet "q" } ", and another value " { $snippet "a" } " satisfying:" { $code "a*q = d mod p" } }
|
||||
{ $notes "GCD in the case of polynomials is a monic polynomial of the highest possible degree that divides into both " { $snippet "p" } " and " { $snippet "q" } "." }
|
||||
{ $examples { $example "USING: math.polynomials prettyprint ;" "{ 1 1 1 1} { 1 1 } pgcd swap . ." "{ 0 0 }\n{ 1 1 }" } } ;
|
||||
{ $examples
|
||||
{ $example "USING: kernel math.polynomials prettyprint ;"
|
||||
"{ 1 1 1 1 } { 1 1 } pgcd [ . ] bi@"
|
||||
"{ 0 0 }\n{ 1 1 }"
|
||||
}
|
||||
} ;
|
||||
|
||||
HELP: pdiff
|
||||
{ $values { "p" "a polynomial" } { "p'" "a polynomial" } }
|
||||
|
|
Loading…
Reference in New Issue