Merge branch 'master' of git://factorcode.org/git/factor
						commit
						b83b0b9243
					
				| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
One-time and recurring events
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Defining multiple words with the same name
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Fast searching of sorted arrays
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
An abstraction for enforcing a mutual-exclusion invariant
 | 
			
		||||
| 
						 | 
				
			
			@ -43,7 +43,7 @@ HELP: push-growing-circular
 | 
			
		|||
     { "elt" object } { "circular" circular } }
 | 
			
		||||
{ $description "Pushes an element onto a " { $link growing-circular } " object." } ;
 | 
			
		||||
 | 
			
		||||
ARTICLE: "circular" "circular"
 | 
			
		||||
ARTICLE: "circular" "Circular sequences"
 | 
			
		||||
"The " { $vocab-link "circular" } " vocabulary implements the " { $link "sequence-protocol" } " to allow an arbitrary start index and wrap-around indexing." $nl
 | 
			
		||||
"Creating a new circular object:"
 | 
			
		||||
{ $subsection <circular> }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Colors as a first-class data type
 | 
			
		||||
| 
						 | 
				
			
			@ -64,7 +64,7 @@ HELP: n||-rewrite
 | 
			
		|||
     { "quot" quotation } }
 | 
			
		||||
{ $description "A macro that reqrites the code to pass " { $snippet "N" } " parameters from the stack to each OR quotation." } ;
 | 
			
		||||
 | 
			
		||||
ARTICLE: "combinators.short-circuit" "combinators.short-circuit"
 | 
			
		||||
ARTICLE: "combinators.short-circuit" "Short-circuit combinators"
 | 
			
		||||
"The " { $vocab-link "combinators.short-circuit" } " vocabulary stops a computation early once a condition is met." $nl
 | 
			
		||||
"AND combinators:"
 | 
			
		||||
{ $subsection 0&& }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,8 +27,9 @@ HELP: ||
 | 
			
		|||
    }
 | 
			
		||||
} ;
 | 
			
		||||
 | 
			
		||||
ARTICLE: "combinators.short-circuit.smart" "combinators.short-circuit.smart"
 | 
			
		||||
"The " { $vocab-link "combinators.short-circuit.smart" } " vocabulary infers the number of inputs that the sequence of quotations takes." $nl
 | 
			
		||||
ARTICLE: "combinators.short-circuit.smart" "Smart short-circuit combinators"
 | 
			
		||||
"The " { $vocab-link "combinators.short-circuit.smart" } " vocabulary is similar to " { $vocab-link "combinators.short-circuit" } " except the combinators here infer the number of inputs that the sequence of quotations takes."
 | 
			
		||||
$nl
 | 
			
		||||
"Generalized AND:"
 | 
			
		||||
{ $subsection && }
 | 
			
		||||
"Generalized OR:"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Ad-hoc evaluation of strings of code
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
Chris Double
 | 
			
		||||
Doug Coleman
 | 
			
		||||
Eduardo Cavazos
 | 
			
		||||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Generalized stack shufflers and combinators to arbitrary numbers of inputs
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
HTML components for form rendering and validation
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
web
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Rendering HTML with a familiar look and feel
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
web
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
HTML form rendering and validation
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
web
 | 
			
		||||
| 
						 | 
				
			
			@ -1 +1 @@
 | 
			
		|||
HTML reader, writer and utilities
 | 
			
		||||
HTML implementation of formatted output stream protocol
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -37,7 +37,11 @@ CHLOE: style
 | 
			
		|||
    ] ?if ;
 | 
			
		||||
 | 
			
		||||
CHLOE: write-style
 | 
			
		||||
    drop [ <style> write-style </style> ] [code] ;
 | 
			
		||||
    drop [
 | 
			
		||||
        <style "text/css" =type style>
 | 
			
		||||
            write-style
 | 
			
		||||
        </style>
 | 
			
		||||
    ] [code] ;
 | 
			
		||||
 | 
			
		||||
CHLOE: even
 | 
			
		||||
    [ "index" value even? swap when ] process-children ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -123,8 +123,8 @@ DEFER: compile-element
 | 
			
		|||
 | 
			
		||||
: compile-prologue ( xml -- )
 | 
			
		||||
    [
 | 
			
		||||
        [ before>> compile-chunk ]
 | 
			
		||||
        [ prolog>> [ write-prolog ] [code-with] ]
 | 
			
		||||
        [ before>> compile-chunk ]
 | 
			
		||||
        bi
 | 
			
		||||
    ] compile-quot
 | 
			
		||||
    [ if-not-nested ] [code] ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
XHTML templating engine with extensible compiler and separation of concerns
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
web
 | 
			
		||||
| 
						 | 
				
			
			@ -1,2 +1,2 @@
 | 
			
		|||
Slava Pestov
 | 
			
		||||
Matthew Willis
 | 
			
		||||
Alex Chapman
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Simple templating engine mixing Factor code with content
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
web
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
HTML templating engine interface
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
web
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Doug Coleman
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Generalization of make for constructing several sequences simultaneously
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
collections
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Generic word for converting objects to strings for human consumption
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
Doug Coleman
 | 
			
		||||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Random number generator protocol and implementations
 | 
			
		||||
| 
						 | 
				
			
			@ -41,7 +41,7 @@ HELP: send-email
 | 
			
		|||
    }
 | 
			
		||||
} ;
 | 
			
		||||
 | 
			
		||||
ARTICLE: "smtp" "SMTP Client Library"
 | 
			
		||||
ARTICLE: "smtp" "SMTP client library"
 | 
			
		||||
"Configuring SMTP:"
 | 
			
		||||
{ $subsection smtp-server }
 | 
			
		||||
{ $subsection smtp-read-timeout }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Generic word for converting an object into a brief one-line string
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Utility for defining multiple symbols at a time
 | 
			
		||||
| 
						 | 
				
			
			@ -148,13 +148,6 @@ M: string >url
 | 
			
		|||
    ]
 | 
			
		||||
    [ url-decode >>anchor ] bi* ;
 | 
			
		||||
 | 
			
		||||
<PRIVATE
 | 
			
		||||
 | 
			
		||||
: unparse-username-password ( url -- )
 | 
			
		||||
    dup username>> dup [
 | 
			
		||||
        % password>> [ ":" % % ] when* "@" %
 | 
			
		||||
    ] [ 2drop ] if ;
 | 
			
		||||
 | 
			
		||||
: protocol-port ( protocol -- port )
 | 
			
		||||
    {
 | 
			
		||||
        { "http" [ 80 ] }
 | 
			
		||||
| 
						 | 
				
			
			@ -166,6 +159,11 @@ M: string >url
 | 
			
		|||
 | 
			
		||||
<PRIVATE
 | 
			
		||||
 | 
			
		||||
: unparse-username-password ( url -- )
 | 
			
		||||
    dup username>> dup [
 | 
			
		||||
        % password>> [ ":" % % ] when* "@" %
 | 
			
		||||
    ] [ 2drop ] if ;
 | 
			
		||||
 | 
			
		||||
: url-port ( url -- port/f )
 | 
			
		||||
    [ port>> ] [ port>> ] [ protocol>> protocol-port ] tri =
 | 
			
		||||
    [ drop f ] when ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Value validation for the web framework
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Checksum protocol and implementations
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Factor source code lexer
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Slava Pestov
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Sequence construction utility
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
collections
 | 
			
		||||
| 
						 | 
				
			
			@ -1258,6 +1258,8 @@ ARTICLE: "sequence-protocol" "Sequence protocol"
 | 
			
		|||
"At least one of the following two generic words must have a method for accessing elements; the " { $link sequence } " mixin has default definitions which are mutually recursive:"
 | 
			
		||||
{ $subsection nth }
 | 
			
		||||
{ $subsection nth-unsafe }
 | 
			
		||||
"Note that sequences are always indexed starting from zero."
 | 
			
		||||
$nl
 | 
			
		||||
"At least one of the following two generic words must have a method for storing elements; the " { $link sequence } " mixin has default definitions which are mutually recursive:"
 | 
			
		||||
{ $subsection set-nth }
 | 
			
		||||
{ $subsection set-nth-unsafe }
 | 
			
		||||
| 
						 | 
				
			
			@ -1283,8 +1285,7 @@ ARTICLE: "virtual-sequences-protocol" "Virtual sequence protocol"
 | 
			
		|||
 | 
			
		||||
ARTICLE: "virtual-sequences" "Virtual sequences"
 | 
			
		||||
"Virtual sequences allow different ways of accessing a sequence without having to create a new sequence or a new data structure altogether. To do this, they translate the virtual index into a normal index into an underlying sequence using the " { $link "virtual-sequences-protocol" } "."
 | 
			
		||||
$nl
 | 
			
		||||
"One current limitation of the virtual sequence protocol is that sequences must be indexed starting at zero." ;
 | 
			
		||||
{ $subsection "virtual-sequences-protocol" } ;
 | 
			
		||||
 | 
			
		||||
ARTICLE: "sequences-integers" "Integer sequences and counted loops"
 | 
			
		||||
"Integers support the sequence protocol in a trivial fashion; a non-negative integer presents its non-negative predecessors as elements. For example, the integer 3, when viewed as a sequence, contains the elements 0, 1, and 2. This is very useful for performing counted loops."
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,11 +56,9 @@
 | 
			
		|||
 | 
			
		||||
		<t:if t:value="footer">
 | 
			
		||||
			<tr>
 | 
			
		||||
				<td colspan="2">
 | 
			
		||||
				<td colspan="2" class="footer">
 | 
			
		||||
					<t:bind t:name="footer">
 | 
			
		||||
						<small>
 | 
			
		||||
						<t:farkup t:name="parsed" t:parsed="true" />
 | 
			
		||||
						</small>
 | 
			
		||||
					</t:bind>
 | 
			
		||||
				</td>
 | 
			
		||||
			</tr>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,3 +45,7 @@
 | 
			
		|||
    background: #f5f1fd;
 | 
			
		||||
    width: 200px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.footer {
 | 
			
		||||
    font-size: 75%;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue