putting encodings on all file readers/writers
parent
8d5f4714fa
commit
62f9ed5dbd
|
@ -4,7 +4,7 @@ USING: bit-arrays byte-arrays float-arrays arrays
|
||||||
generator.registers assocs kernel kernel.private libc math
|
generator.registers assocs kernel kernel.private libc math
|
||||||
namespaces parser sequences strings words assocs splitting
|
namespaces parser sequences strings words assocs splitting
|
||||||
math.parser cpu.architecture alien alien.accessors quotations
|
math.parser cpu.architecture alien alien.accessors quotations
|
||||||
system compiler.units ;
|
system compiler.units io.encodings.binary ;
|
||||||
IN: alien.c-types
|
IN: alien.c-types
|
||||||
|
|
||||||
DEFER: <int>
|
DEFER: <int>
|
||||||
|
@ -273,6 +273,9 @@ M: long-long-type box-return ( type -- )
|
||||||
r> add*
|
r> add*
|
||||||
] when ;
|
] when ;
|
||||||
|
|
||||||
|
: malloc-file-contents ( path -- alien )
|
||||||
|
binary file-contents >byte-array malloc-byte-array ;
|
||||||
|
|
||||||
[
|
[
|
||||||
[ alien-cell ]
|
[ alien-cell ]
|
||||||
[ set-alien-cell ]
|
[ set-alien-cell ]
|
||||||
|
|
|
@ -7,7 +7,7 @@ strings sbufs vectors words quotations assocs system layouts
|
||||||
splitting growable classes tuples words.private
|
splitting growable classes tuples words.private
|
||||||
io.binary io.files vocabs vocabs.loader source-files
|
io.binary io.files vocabs vocabs.loader source-files
|
||||||
definitions debugger float-arrays quotations.private
|
definitions debugger float-arrays quotations.private
|
||||||
sequences.private combinators ;
|
sequences.private combinators io.encodings.binary ;
|
||||||
IN: bootstrap.image
|
IN: bootstrap.image
|
||||||
|
|
||||||
: my-arch ( -- arch )
|
: my-arch ( -- arch )
|
||||||
|
@ -416,7 +416,7 @@ M: curry '
|
||||||
"Writing image to " write
|
"Writing image to " write
|
||||||
architecture get boot-image-name resource-path
|
architecture get boot-image-name resource-path
|
||||||
dup write "..." print flush
|
dup write "..." print flush
|
||||||
[ (write-image) ] with-file-writer ;
|
binary [ (write-image) ] with-file-writer ;
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1 @@
|
||||||
IN: io.encodings.binary
|
IN: io.encodings.binary SYMBOL: binary
|
||||||
SYMBOL: binary
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! Copyright (C) 2006, 2007 Daniel Ehrenberg.
|
! Copyright (C) 2006, 2007 Daniel Ehrenberg.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: math kernel sequences sbufs vectors namespaces
|
USING: math kernel sequences sbufs vectors namespaces
|
||||||
growable strings io classes io.streams.c continuations
|
growable strings io classes continuations
|
||||||
io.styles io.streams.nested io.encodings.binary ;
|
io.styles io.streams.nested io.encodings.binary ;
|
||||||
IN: io.encodings
|
IN: io.encodings
|
||||||
|
|
||||||
|
@ -13,12 +13,12 @@ TUPLE: decode-error ;
|
||||||
|
|
||||||
SYMBOL: begin
|
SYMBOL: begin
|
||||||
|
|
||||||
: decoded ( buf ch -- buf ch state )
|
: push-decoded ( buf ch -- buf ch state )
|
||||||
over push 0 begin ;
|
over push 0 begin ;
|
||||||
|
|
||||||
: push-replacement ( buf -- buf ch state )
|
: push-replacement ( buf -- buf ch state )
|
||||||
! This is the replacement character
|
! This is the replacement character
|
||||||
HEX: fffd decoded ;
|
HEX: fffd push-decoded ;
|
||||||
|
|
||||||
: finish-decoding ( buf ch state -- str )
|
: finish-decoding ( buf ch state -- str )
|
||||||
begin eq? [ decode-error ] unless drop "" like ;
|
begin eq? [ decode-error ] unless drop "" like ;
|
||||||
|
@ -59,16 +59,16 @@ TUPLE: decoded code cr ;
|
||||||
decoded construct
|
decoded construct
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
: cr+ t swap set-line-reader-cr ; inline
|
: cr+ t swap set-decoded-cr ; inline
|
||||||
|
|
||||||
: cr- f swap set-line-reader-cr ; inline
|
: cr- f swap set-decoded-cr ; inline
|
||||||
|
|
||||||
: line-ends/eof ( stream str -- str ) f like swap cr- ; inline
|
: line-ends/eof ( stream str -- str ) f like swap cr- ; inline
|
||||||
|
|
||||||
: line-ends\r ( stream str -- str ) swap cr+ ; inline
|
: line-ends\r ( stream str -- str ) swap cr+ ; inline
|
||||||
|
|
||||||
: line-ends\n ( stream str -- str )
|
: line-ends\n ( stream str -- str )
|
||||||
over line-reader-cr over empty? and
|
over decoded-cr over empty? and
|
||||||
[ drop dup cr- stream-readln ] [ swap cr- ] if ; inline
|
[ drop dup cr- stream-readln ] [ swap cr- ] if ; inline
|
||||||
|
|
||||||
: handle-readln ( stream str ch -- str )
|
: handle-readln ( stream str ch -- str )
|
||||||
|
@ -79,7 +79,7 @@ TUPLE: decoded code cr ;
|
||||||
} case ;
|
} case ;
|
||||||
|
|
||||||
: fix-read ( stream string -- string )
|
: fix-read ( stream string -- string )
|
||||||
over line-reader-cr [
|
over decoded-cr [
|
||||||
over cr-
|
over cr-
|
||||||
"\n" ?head [
|
"\n" ?head [
|
||||||
swap stream-read1 [ add ] when*
|
swap stream-read1 [ add ] when*
|
||||||
|
@ -91,13 +91,21 @@ M: decoded stream-read
|
||||||
|
|
||||||
M: decoded stream-read-partial tuck stream-read fix-read ;
|
M: decoded stream-read-partial tuck stream-read fix-read ;
|
||||||
|
|
||||||
|
: read-until-loop ( stream delim -- ch )
|
||||||
|
! Copied from { c-reader stream-read-until }!!!
|
||||||
|
over stream-read1 dup [
|
||||||
|
dup pick memq? [ 2nip ] [ , read-until-loop ] if
|
||||||
|
] [
|
||||||
|
2nip
|
||||||
|
] if ;
|
||||||
|
|
||||||
M: decoded stream-read-until
|
M: decoded stream-read-until
|
||||||
! Copied from { c-reader stream-read-until }!!!
|
! Copied from { c-reader stream-read-until }!!!
|
||||||
[ swap read-until-loop ] "" make
|
[ swap read-until-loop ] "" make
|
||||||
swap over empty? over not and [ 2drop f f ] when ;
|
swap over empty? over not and [ 2drop f f ] when ;
|
||||||
|
|
||||||
: fix-read1 ( stream char -- char )
|
: fix-read1 ( stream char -- char )
|
||||||
over line-reader-cr [
|
over decoded-cr [
|
||||||
over cr-
|
over cr-
|
||||||
dup CHAR: \n = [
|
dup CHAR: \n = [
|
||||||
drop stream-read1
|
drop stream-read1
|
||||||
|
@ -106,7 +114,7 @@ M: decoded stream-read-until
|
||||||
|
|
||||||
M: decoded stream-read1 1 over stream-read ;
|
M: decoded stream-read1 1 over stream-read ;
|
||||||
|
|
||||||
M: line-reader stream-readln ( stream -- str )
|
M: decoded stream-readln ( stream -- str )
|
||||||
"\r\n" over stream-read-until handle-readln ;
|
"\r\n" over stream-read-until handle-readln ;
|
||||||
|
|
||||||
! Encoding
|
! Encoding
|
||||||
|
|
|
@ -16,7 +16,7 @@ SYMBOL: ignore
|
||||||
8 shift bitor ;
|
8 shift bitor ;
|
||||||
|
|
||||||
: end-multibyte ( buf byte ch -- buf ch state )
|
: end-multibyte ( buf byte ch -- buf ch state )
|
||||||
append-nums decoded ;
|
append-nums push-decoded ;
|
||||||
|
|
||||||
: begin-utf16be ( buf byte -- buf ch state )
|
: begin-utf16be ( buf byte -- buf ch state )
|
||||||
dup -3 shift BIN: 11011 number= [
|
dup -3 shift BIN: 11011 number= [
|
||||||
|
@ -36,7 +36,7 @@ SYMBOL: ignore
|
||||||
{ double [ end-multibyte ] }
|
{ double [ end-multibyte ] }
|
||||||
{ quad1 [ append-nums quad2 ] }
|
{ quad1 [ append-nums quad2 ] }
|
||||||
{ quad2 [ handle-quad2be ] }
|
{ quad2 [ handle-quad2be ] }
|
||||||
{ quad3 [ append-nums HEX: 10000 + decoded ] }
|
{ quad3 [ append-nums HEX: 10000 + push-decoded ] }
|
||||||
{ ignore [ 2drop push-replacement ] }
|
{ ignore [ 2drop push-replacement ] }
|
||||||
} case ;
|
} case ;
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ SYMBOL: ignore
|
||||||
|
|
||||||
: handle-quad3le ( buf byte ch -- buf ch state )
|
: handle-quad3le ( buf byte ch -- buf ch state )
|
||||||
swap dup -2 shift BIN: 110111 = [
|
swap dup -2 shift BIN: 110111 = [
|
||||||
BIN: 11 bitand append-nums HEX: 10000 + decoded
|
BIN: 11 bitand append-nums HEX: 10000 + push-decoded
|
||||||
] [ 2drop push-replacement ] if ;
|
] [ 2drop push-replacement ] if ;
|
||||||
|
|
||||||
: decode-utf16le-step ( buf byte ch state -- buf ch state )
|
: decode-utf16le-step ( buf byte ch state -- buf ch state )
|
||||||
|
|
|
@ -23,7 +23,7 @@ SYMBOL: quad3
|
||||||
|
|
||||||
: begin-utf8 ( buf byte -- buf ch state )
|
: begin-utf8 ( buf byte -- buf ch state )
|
||||||
{
|
{
|
||||||
{ [ dup -7 shift zero? ] [ decoded ] }
|
{ [ dup -7 shift zero? ] [ push-decoded ] }
|
||||||
{ [ dup -5 shift BIN: 110 number= ] [ BIN: 11111 bitand double ] }
|
{ [ dup -5 shift BIN: 110 number= ] [ BIN: 11111 bitand double ] }
|
||||||
{ [ dup -4 shift BIN: 1110 number= ] [ BIN: 1111 bitand triple ] }
|
{ [ dup -4 shift BIN: 1110 number= ] [ BIN: 1111 bitand triple ] }
|
||||||
{ [ dup -3 shift BIN: 11110 number= ] [ BIN: 111 bitand quad ] }
|
{ [ dup -3 shift BIN: 11110 number= ] [ BIN: 111 bitand quad ] }
|
||||||
|
@ -31,7 +31,7 @@ SYMBOL: quad3
|
||||||
} cond ;
|
} cond ;
|
||||||
|
|
||||||
: end-multibyte ( buf byte ch -- buf ch state )
|
: end-multibyte ( buf byte ch -- buf ch state )
|
||||||
f append-nums [ decoded ] unless* ;
|
f append-nums [ push-decoded ] unless* ;
|
||||||
|
|
||||||
: decode-utf8-step ( buf byte ch state -- buf ch state )
|
: decode-utf8-step ( buf byte ch state -- buf ch state )
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,34 +1,34 @@
|
||||||
IN: temporary
|
IN: temporary
|
||||||
USING: tools.test io.files io threads kernel continuations ;
|
USING: tools.test io.files io threads kernel continuations io.encodings.ascii ;
|
||||||
|
|
||||||
[ "passwd" ] [ "/etc/passwd" file-name ] unit-test
|
[ "passwd" ] [ "/etc/passwd" file-name ] unit-test
|
||||||
[ "awk" ] [ "/usr/libexec/awk/" file-name ] unit-test
|
[ "awk" ] [ "/usr/libexec/awk/" file-name ] unit-test
|
||||||
[ "awk" ] [ "/usr/libexec/awk///" file-name ] unit-test
|
[ "awk" ] [ "/usr/libexec/awk///" file-name ] unit-test
|
||||||
|
|
||||||
[ ] [
|
[ ] [
|
||||||
"test-foo.txt" resource-path [
|
"test-foo.txt" resource-path ascii [
|
||||||
"Hello world." print
|
"Hello world." print
|
||||||
] with-file-writer
|
] with-file-writer
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
[ ] [
|
[ ] [
|
||||||
"test-foo.txt" resource-path <file-appender> [
|
"test-foo.txt" resource-path ascii [
|
||||||
"Hello appender." print
|
"Hello appender." print
|
||||||
] with-stream
|
] with-file-appender
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
[ ] [
|
[ ] [
|
||||||
"test-bar.txt" resource-path <file-appender> [
|
"test-bar.txt" resource-path ascii [
|
||||||
"Hello appender." print
|
"Hello appender." print
|
||||||
] with-stream
|
] with-file-appender
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
[ "Hello world.\nHello appender.\n" ] [
|
[ "Hello world.\nHello appender.\n" ] [
|
||||||
"test-foo.txt" resource-path file-contents
|
"test-foo.txt" resource-path ascii file-contents
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
[ "Hello appender.\n" ] [
|
[ "Hello appender.\n" ] [
|
||||||
"test-bar.txt" resource-path file-contents
|
"test-bar.txt" resource-path ascii file-contents
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
[ ] [ "test-foo.txt" resource-path delete-file ] unit-test
|
[ ] [ "test-foo.txt" resource-path delete-file ] unit-test
|
||||||
|
@ -42,7 +42,7 @@ USING: tools.test io.files io threads kernel continuations ;
|
||||||
[ ] [ "test-blah" resource-path make-directory ] unit-test
|
[ ] [ "test-blah" resource-path make-directory ] unit-test
|
||||||
|
|
||||||
[ ] [
|
[ ] [
|
||||||
"test-blah/fooz" resource-path <file-writer> dispose
|
"test-blah/fooz" resource-path ascii <file-writer> dispose
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
[ t ] [
|
[ t ] [
|
||||||
|
@ -55,11 +55,11 @@ USING: tools.test io.files io threads kernel continuations ;
|
||||||
|
|
||||||
[ f ] [ "test-blah" resource-path exists? ] unit-test
|
[ f ] [ "test-blah" resource-path exists? ] unit-test
|
||||||
|
|
||||||
[ ] [ "test-quux.txt" resource-path [ [ yield "Hi" write ] in-thread ] with-file-writer ] unit-test
|
[ ] [ "test-quux.txt" resource-path ascii [ [ yield "Hi" write ] in-thread ] with-file-writer ] unit-test
|
||||||
|
|
||||||
[ ] [ "test-quux.txt" resource-path delete-file ] unit-test
|
[ ] [ "test-quux.txt" resource-path delete-file ] unit-test
|
||||||
|
|
||||||
[ ] [ "test-quux.txt" resource-path [ [ yield "Hi" write ] in-thread ] with-file-writer ] unit-test
|
[ ] [ "test-quux.txt" resource-path ascii [ [ yield "Hi" write ] in-thread ] with-file-writer ] unit-test
|
||||||
|
|
||||||
[ ] [ "test-quux.txt" "quux-test.txt" [ resource-path ] 2apply rename-file ] unit-test
|
[ ] [ "test-quux.txt" "quux-test.txt" [ resource-path ] 2apply rename-file ] unit-test
|
||||||
[ t ] [ "quux-test.txt" resource-path exists? ] unit-test
|
[ t ] [ "quux-test.txt" resource-path exists? ] unit-test
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
USING: arrays io io.files kernel math parser strings system
|
USING: arrays io io.files kernel math parser strings system
|
||||||
tools.test words namespaces io.encodings.ascii ;
|
tools.test words namespaces io.encodings.ascii io.encodings.binary ;
|
||||||
IN: temporary
|
IN: temporary
|
||||||
|
|
||||||
[ f ] [
|
[ f ] [
|
||||||
|
@ -8,7 +8,7 @@ IN: temporary
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
: <resource-reader> ( resource -- stream )
|
: <resource-reader> ( resource -- stream )
|
||||||
resource-path binary ascii <file-reader> ;
|
resource-path ascii <file-reader> ;
|
||||||
|
|
||||||
[
|
[
|
||||||
"This is a line.\rThis is another line.\r"
|
"This is a line.\rThis is another line.\r"
|
||||||
|
@ -53,7 +53,7 @@ IN: temporary
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
[ ] [
|
[ ] [
|
||||||
image [
|
image binary [
|
||||||
10 [ 65536 read drop ] times
|
10 [ 65536 read drop ] times
|
||||||
] with-file-reader
|
] with-file-reader
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
|
@ -2,7 +2,7 @@ USING: tools.test io.files io io.streams.c ;
|
||||||
IN: temporary
|
IN: temporary
|
||||||
|
|
||||||
[ "hello world" ] [
|
[ "hello world" ] [
|
||||||
"test.txt" resource-path [
|
"test.txt" resource-path ascii [
|
||||||
"hello world" write
|
"hello world" write
|
||||||
] with-file-writer
|
] with-file-writer
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel kernel.private namespaces io
|
USING: kernel kernel.private namespaces io
|
||||||
strings sequences math generic threads.private classes
|
strings sequences math generic threads.private classes
|
||||||
io.backend io.streams.lines io.streams.plain io.streams.duplex
|
io.backend io.streams.duplex io.files continuations ;
|
||||||
io.files continuations ;
|
|
||||||
IN: io.streams.c
|
IN: io.streams.c
|
||||||
|
|
||||||
TUPLE: c-writer handle ;
|
TUPLE: c-writer handle ;
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
! Copyright (C) 2004, 2007 Slava Pestov.
|
! Copyright (C) 2004, 2007 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
IN: io.streams.lines
|
IN: io.streams.lines
|
||||||
USING: io.encodings.latin1 io.encodings ;
|
! USING: io.encodings.latin1 io.encodings ;
|
||||||
|
|
||||||
TUPLE: line-reader cr ;
|
! : <line-reader> ( stream -- new-stream )
|
||||||
|
! latin1 <decoded> ;
|
||||||
: <line-reader> ( stream -- new-stream )
|
|
||||||
latin1 <decoded> ;
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ USING: arrays definitions generic assocs kernel math
|
||||||
namespaces prettyprint sequences strings vectors words
|
namespaces prettyprint sequences strings vectors words
|
||||||
quotations inspector io.styles io combinators sorting
|
quotations inspector io.styles io combinators sorting
|
||||||
splitting math.parser effects continuations debugger
|
splitting math.parser effects continuations debugger
|
||||||
io.files io.streams.string io.streams.lines vocabs
|
io.files io.streams.string io.streams.lines vocabs io.encodings.utf8
|
||||||
source-files classes hashtables compiler.errors compiler.units ;
|
source-files classes hashtables compiler.errors compiler.units ;
|
||||||
IN: parser
|
IN: parser
|
||||||
|
|
||||||
|
@ -489,7 +489,7 @@ SYMBOL: interactive-vocabs
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
[ parsing-file ] keep
|
[ parsing-file ] keep
|
||||||
[ ?resource-path <file-reader> ] keep
|
[ ?resource-path utf8 <file-reader> ] keep
|
||||||
parse-stream
|
parse-stream
|
||||||
] with-compiler-errors
|
] with-compiler-errors
|
||||||
] [
|
] [
|
||||||
|
|
|
@ -5,7 +5,7 @@ namespaces prettyprint sequences strings vectors words
|
||||||
quotations inspector io.styles io combinators sorting
|
quotations inspector io.styles io combinators sorting
|
||||||
splitting math.parser effects continuations debugger
|
splitting math.parser effects continuations debugger
|
||||||
io.files io.crc32 io.streams.string io.streams.lines vocabs
|
io.files io.crc32 io.streams.string io.streams.lines vocabs
|
||||||
hashtables graphs compiler.units ;
|
hashtables graphs compiler.units io.encodings.utf8 ;
|
||||||
IN: source-files
|
IN: source-files
|
||||||
|
|
||||||
SYMBOL: source-files
|
SYMBOL: source-files
|
||||||
|
@ -17,7 +17,7 @@ uses definitions ;
|
||||||
|
|
||||||
: (source-modified?) ( path modified checksum -- ? )
|
: (source-modified?) ( path modified checksum -- ? )
|
||||||
pick file-modified rot [ 0 or ] 2apply >
|
pick file-modified rot [ 0 or ] 2apply >
|
||||||
[ swap file-lines lines-crc32 = not ] [ 2drop f ] if ;
|
[ swap utf8 file-lines lines-crc32 = not ] [ 2drop f ] if ;
|
||||||
|
|
||||||
: source-modified? ( path -- ? )
|
: source-modified? ( path -- ? )
|
||||||
dup source-files get at [
|
dup source-files get at [
|
||||||
|
@ -68,7 +68,7 @@ uses definitions ;
|
||||||
: reset-checksums ( -- )
|
: reset-checksums ( -- )
|
||||||
source-files get [
|
source-files get [
|
||||||
swap ?resource-path dup exists?
|
swap ?resource-path dup exists?
|
||||||
[ file-lines swap record-checksum ] [ 2drop ] if
|
[ utf8 file-lines swap record-checksum ] [ 2drop ] if
|
||||||
] assoc-each ;
|
] assoc-each ;
|
||||||
|
|
||||||
M: pathname where pathname-string 1 2array ;
|
M: pathname where pathname-string 1 2array ;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
! Based on http://shootout.alioth.debian.org/gp4/benchmark.php?test=fasta&lang=java&id=2
|
! Based on http://shootout.alioth.debian.org/gp4/benchmark.php?test=fasta&lang=java&id=2
|
||||||
USING: math kernel io io.files locals multiline assocs sequences
|
USING: math kernel io io.files locals multiline assocs sequences
|
||||||
sequences.private benchmark.reverse-complement hints
|
sequences.private benchmark.reverse-complement hints io.encodings.ascii
|
||||||
byte-arrays float-arrays ;
|
byte-arrays float-arrays ;
|
||||||
IN: benchmark.fasta
|
IN: benchmark.fasta
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ HINTS: random fixnum ;
|
||||||
n [ ]
|
n [ ]
|
||||||
seed [ initial-seed ] |
|
seed [ initial-seed ] |
|
||||||
|
|
||||||
out [
|
out ascii [
|
||||||
n 2 * ALU "Homo sapiens alu" "ONE" write-repeat-fasta
|
n 2 * ALU "Homo sapiens alu" "ONE" write-repeat-fasta
|
||||||
|
|
||||||
initial-seed
|
initial-seed
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
USING: kernel io io.files splitting strings
|
USING: kernel io io.files splitting strings io.encodings.ascii
|
||||||
hashtables sequences assocs math namespaces prettyprint
|
hashtables sequences assocs math namespaces prettyprint
|
||||||
math.parser combinators arrays sorting unicode.case ;
|
math.parser combinators arrays sorting unicode.case ;
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ IN: benchmark.knucleotide
|
||||||
|
|
||||||
: knucleotide ( -- )
|
: knucleotide ( -- )
|
||||||
"extra/benchmark/knucleotide/knucleotide-input.txt" resource-path
|
"extra/benchmark/knucleotide/knucleotide-input.txt" resource-path
|
||||||
[ read-input ] with-file-reader
|
ascii [ read-input ] with-file-reader
|
||||||
process-input ;
|
process-input ;
|
||||||
|
|
||||||
MAIN: knucleotide
|
MAIN: knucleotide
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
IN: benchmark.mandel
|
IN: benchmark.mandel
|
||||||
USING: arrays io kernel math namespaces sequences strings sbufs
|
USING: arrays io kernel math namespaces sequences strings sbufs
|
||||||
math.functions math.parser io.files colors.hsv ;
|
math.functions math.parser io.files colors.hsv io.encodings.binary ;
|
||||||
|
|
||||||
: max-color 360 ; inline
|
: max-color 360 ; inline
|
||||||
: zoom-fact 0.8 ; inline
|
: zoom-fact 0.8 ; inline
|
||||||
|
@ -66,6 +66,6 @@ SYMBOL: cols
|
||||||
|
|
||||||
: mandel-main ( -- )
|
: mandel-main ( -- )
|
||||||
"mandel.ppm" resource-path
|
"mandel.ppm" resource-path
|
||||||
[ mandel write ] with-file-writer ;
|
binary [ mandel write ] with-file-writer ;
|
||||||
|
|
||||||
MAIN: mandel-main
|
MAIN: mandel-main
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
USING: float-arrays compiler generic io io.files kernel math
|
USING: float-arrays compiler generic io io.files kernel math
|
||||||
math.functions math.vectors math.parser namespaces sequences
|
math.functions math.vectors math.parser namespaces sequences
|
||||||
sequences.private words ;
|
sequences.private words io.encodings.binary ;
|
||||||
IN: benchmark.raytracer
|
IN: benchmark.raytracer
|
||||||
|
|
||||||
! parameters
|
! parameters
|
||||||
|
@ -171,6 +171,6 @@ DEFER: create ( level c r -- scene )
|
||||||
|
|
||||||
: raytracer-main
|
: raytracer-main
|
||||||
"raytracer.pnm" resource-path
|
"raytracer.pnm" resource-path
|
||||||
[ run write ] with-file-writer ;
|
binary [ run write ] with-file-writer ;
|
||||||
|
|
||||||
MAIN: raytracer-main
|
MAIN: raytracer-main
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
USING: io io.files io.streams.duplex kernel sequences
|
USING: io io.files io.streams.duplex kernel sequences
|
||||||
sequences.private strings vectors words memoize splitting
|
sequences.private strings vectors words memoize splitting
|
||||||
hints unicode.case ;
|
hints unicode.case io.encodings.latin1 ;
|
||||||
IN: benchmark.reverse-complement
|
IN: benchmark.reverse-complement
|
||||||
|
|
||||||
MEMO: trans-map ( -- str )
|
MEMO: trans-map ( -- str )
|
||||||
|
@ -32,7 +32,7 @@ HINTS: do-line vector string ;
|
||||||
readln [ do-line (reverse-complement) ] [ show-seq ] if* ;
|
readln [ do-line (reverse-complement) ] [ show-seq ] if* ;
|
||||||
|
|
||||||
: reverse-complement ( infile outfile -- )
|
: reverse-complement ( infile outfile -- )
|
||||||
<file-writer> >r <file-reader> r> <duplex-stream> [
|
latin1 <file-writer> >r latin1 <file-reader> r> <duplex-stream> [
|
||||||
500000 <vector> (reverse-complement)
|
500000 <vector> (reverse-complement)
|
||||||
] with-stream ;
|
] with-stream ;
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
USING: io io.files math math.parser kernel prettyprint ;
|
USING: io io.files math math.parser kernel prettyprint io.encodings.ascii ;
|
||||||
IN: benchmark.sum-file
|
IN: benchmark.sum-file
|
||||||
|
|
||||||
: sum-file-loop ( n -- n' )
|
: sum-file-loop ( n -- n' )
|
||||||
readln [ string>number + sum-file-loop ] when* ;
|
readln [ string>number + sum-file-loop ] when* ;
|
||||||
|
|
||||||
: sum-file ( file -- )
|
: sum-file ( file -- )
|
||||||
[ 0 sum-file-loop ] with-file-reader . ;
|
ascii [ 0 sum-file-loop ] with-file-reader . ;
|
||||||
|
|
||||||
: sum-file-main ( -- )
|
: sum-file-main ( -- )
|
||||||
home "sum-file-in.txt" path+ sum-file ;
|
home "sum-file-in.txt" path+ sum-file ;
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
IN: bootstrap.image.upload
|
IN: bootstrap.image.upload
|
||||||
USING: http.client crypto.md5 splitting assocs kernel io.files
|
USING: http.client crypto.md5 splitting assocs kernel io.files
|
||||||
bootstrap.image sequences io namespaces io.launcher math ;
|
bootstrap.image sequences io namespaces io.launcher math io.encodings.ascii ;
|
||||||
|
|
||||||
: destination "slava@factorcode.org:www/images/latest/" ;
|
: destination "slava@factorcode.org:www/images/latest/" ;
|
||||||
|
|
||||||
: boot-image-names images [ boot-image-name ] map ;
|
: boot-image-names images [ boot-image-name ] map ;
|
||||||
|
|
||||||
: compute-checksums ( -- )
|
: compute-checksums ( -- )
|
||||||
"checksums.txt" [
|
"checksums.txt" ascii [
|
||||||
boot-image-names [ dup write bl file>md5str print ] each
|
boot-image-names [ dup write bl file>md5str print ] each
|
||||||
] with-file-writer ;
|
] with-file-writer ;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
USING: alien alien.c-types arrays sequences math math.vectors math.matrices
|
USING: alien alien.c-types arrays sequences math math.vectors math.matrices
|
||||||
math.parser io io.files kernel opengl opengl.gl opengl.glu
|
math.parser io io.files kernel opengl opengl.gl opengl.glu io.encodings.ascii
|
||||||
opengl.capabilities shuffle http.client vectors splitting tools.time system
|
opengl.capabilities shuffle http.client vectors splitting tools.time system
|
||||||
combinators combinators.cleave float-arrays continuations namespaces
|
combinators combinators.cleave float-arrays continuations namespaces
|
||||||
sequences.lib ;
|
sequences.lib ;
|
||||||
|
@ -35,7 +35,7 @@ IN: bunny.model
|
||||||
|
|
||||||
: read-model ( stream -- model )
|
: read-model ( stream -- model )
|
||||||
"Reading model" print flush [
|
"Reading model" print flush [
|
||||||
[ parse-model ] with-file-reader
|
ascii [ parse-model ] with-file-reader
|
||||||
[ normals ] 2keep 3array
|
[ normals ] 2keep 3array
|
||||||
] time ;
|
] time ;
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
USING: kernel math sequences words arrays io
|
USING: kernel math sequences words arrays io
|
||||||
io.files namespaces math.parser kernel.private
|
io.files namespaces math.parser kernel.private
|
||||||
assocs quotations parser parser-combinators tools.time
|
assocs quotations parser parser-combinators tools.time
|
||||||
sequences.private compiler.units ;
|
sequences.private compiler.units io.encodings.binary ;
|
||||||
IN: cpu.8080.emulator
|
IN: cpu.8080.emulator
|
||||||
|
|
||||||
TUPLE: cpu b c d e f h l a pc sp halted? last-interrupt cycles ram ;
|
TUPLE: cpu b c d e f h l a pc sp halted? last-interrupt cycles ram ;
|
||||||
|
@ -461,7 +461,7 @@ M: cpu reset ( cpu -- )
|
||||||
: load-rom ( filename cpu -- )
|
: load-rom ( filename cpu -- )
|
||||||
#! Load the contents of the file into ROM.
|
#! Load the contents of the file into ROM.
|
||||||
#! (address 0x0000-0x1FFF).
|
#! (address 0x0000-0x1FFF).
|
||||||
cpu-ram swap [
|
cpu-ram swap binary [
|
||||||
0 swap (load-rom)
|
0 swap (load-rom)
|
||||||
] with-file-reader ;
|
] with-file-reader ;
|
||||||
|
|
||||||
|
@ -477,7 +477,7 @@ SYMBOL: rom-root
|
||||||
#! file path shoul dbe relative to the '/roms' resource path.
|
#! file path shoul dbe relative to the '/roms' resource path.
|
||||||
rom-dir [
|
rom-dir [
|
||||||
cpu-ram [
|
cpu-ram [
|
||||||
swap first2 rom-dir swap path+ [
|
swap first2 rom-dir swap path+ binary [
|
||||||
swap (load-rom)
|
swap (load-rom)
|
||||||
] with-file-reader
|
] with-file-reader
|
||||||
] curry each
|
] curry each
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
USING: cryptlib.libcl cryptlib prettyprint kernel alien sequences libc math
|
USING: cryptlib.libcl cryptlib prettyprint kernel alien sequences libc math
|
||||||
tools.test io io.files continuations alien.c-types splitting generic.math ;
|
tools.test io io.files continuations alien.c-types splitting generic.math
|
||||||
|
io.encodings.binary ;
|
||||||
|
|
||||||
"=========================================================" print
|
"=========================================================" print
|
||||||
"Envelope/de-envelop test..." print
|
"Envelope/de-envelop test..." print
|
||||||
|
@ -152,7 +153,7 @@ tools.test io io.files continuations alien.c-types splitting generic.math ;
|
||||||
! envelope
|
! envelope
|
||||||
CRYPT_FORMAT_CRYPTLIB [
|
CRYPT_FORMAT_CRYPTLIB [
|
||||||
"extra/cryptlib/test/large_data.txt" resource-path
|
"extra/cryptlib/test/large_data.txt" resource-path
|
||||||
file-contents set-pop-buffer
|
binary file-contents set-pop-buffer
|
||||||
envelope-handle CRYPT_ATTRIBUTE_BUFFERSIZE
|
envelope-handle CRYPT_ATTRIBUTE_BUFFERSIZE
|
||||||
get-pop-buffer alien>char-string length 10000 + set-attribute
|
get-pop-buffer alien>char-string length 10000 + set-attribute
|
||||||
envelope-handle CRYPT_ENVINFO_DATASIZE
|
envelope-handle CRYPT_ENVINFO_DATASIZE
|
||||||
|
@ -192,7 +193,7 @@ tools.test io io.files continuations alien.c-types splitting generic.math ;
|
||||||
CRYPT_FORMAT_CRYPTLIB [
|
CRYPT_FORMAT_CRYPTLIB [
|
||||||
envelope-handle CRYPT_ENVINFO_PASSWORD "password" set-attribute-string
|
envelope-handle CRYPT_ENVINFO_PASSWORD "password" set-attribute-string
|
||||||
"extra/cryptlib/test/large_data.txt" resource-path
|
"extra/cryptlib/test/large_data.txt" resource-path
|
||||||
file-contents set-pop-buffer
|
binary file-contents set-pop-buffer
|
||||||
envelope-handle CRYPT_ATTRIBUTE_BUFFERSIZE
|
envelope-handle CRYPT_ATTRIBUTE_BUFFERSIZE
|
||||||
get-pop-buffer alien>char-string length 10000 + set-attribute
|
get-pop-buffer alien>char-string length 10000 + set-attribute
|
||||||
envelope-handle CRYPT_ENVINFO_DATASIZE
|
envelope-handle CRYPT_ENVINFO_DATASIZE
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
USING: arrays combinators crypto.common crypto.md5 crypto.sha1
|
USING: arrays combinators crypto.common crypto.md5 crypto.sha1
|
||||||
crypto.md5.private io io.binary io.files io.streams.string
|
crypto.md5.private io io.binary io.files io.streams.string
|
||||||
kernel math math.vectors memoize sequences ;
|
kernel math math.vectors memoize sequences io.encodings.binary ;
|
||||||
IN: crypto.hmac
|
IN: crypto.hmac
|
||||||
|
|
||||||
: sha1-hmac ( Ko Ki -- hmac )
|
: sha1-hmac ( Ko Ki -- hmac )
|
||||||
|
@ -32,7 +32,7 @@ MEMO: opad ( -- seq ) 64 HEX: 5c <array> ;
|
||||||
[ init-hmac sha1-hmac ] with-stream ;
|
[ init-hmac sha1-hmac ] with-stream ;
|
||||||
|
|
||||||
: file>sha1-hmac ( K path -- hmac )
|
: file>sha1-hmac ( K path -- hmac )
|
||||||
<file-reader> stream>sha1-hmac ;
|
binary <file-reader> stream>sha1-hmac ;
|
||||||
|
|
||||||
: string>sha1-hmac ( K string -- hmac )
|
: string>sha1-hmac ( K string -- hmac )
|
||||||
<string-reader> stream>sha1-hmac ;
|
<string-reader> stream>sha1-hmac ;
|
||||||
|
@ -42,7 +42,7 @@ MEMO: opad ( -- seq ) 64 HEX: 5c <array> ;
|
||||||
[ init-hmac md5-hmac ] with-stream ;
|
[ init-hmac md5-hmac ] with-stream ;
|
||||||
|
|
||||||
: file>md5-hmac ( K path -- hmac )
|
: file>md5-hmac ( K path -- hmac )
|
||||||
<file-reader> stream>md5-hmac ;
|
binary <file-reader> stream>md5-hmac ;
|
||||||
|
|
||||||
: string>md5-hmac ( K string -- hmac )
|
: string>md5-hmac ( K string -- hmac )
|
||||||
<string-reader> stream>md5-hmac ;
|
<string-reader> stream>md5-hmac ;
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
USING: kernel io io.binary io.files io.streams.string math
|
USING: kernel io io.binary io.files io.streams.string math
|
||||||
math.functions math.parser namespaces splitting strings
|
math.functions math.parser namespaces splitting strings
|
||||||
sequences crypto.common byte-arrays locals sequences.private ;
|
sequences crypto.common byte-arrays locals sequences.private
|
||||||
|
io.encodings.binary ;
|
||||||
IN: crypto.md5
|
IN: crypto.md5
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
@ -186,5 +187,5 @@ PRIVATE>
|
||||||
|
|
||||||
: string>md5 ( string -- byte-array ) <string-reader> stream>md5 ;
|
: string>md5 ( string -- byte-array ) <string-reader> stream>md5 ;
|
||||||
: string>md5str ( string -- md5-string ) string>md5 hex-string ;
|
: string>md5str ( string -- md5-string ) string>md5 hex-string ;
|
||||||
: file>md5 ( path -- byte-array ) <file-reader> stream>md5 ;
|
: file>md5 ( path -- byte-array ) binary <file-reader> stream>md5 ;
|
||||||
: file>md5str ( path -- md5-string ) file>md5 hex-string ;
|
: file>md5str ( path -- md5-string ) file>md5 hex-string ;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
USING: arrays combinators crypto.common kernel io io.binary
|
USING: arrays combinators crypto.common kernel io io.encodings.binary
|
||||||
io.files io.streams.string math.vectors strings sequences
|
io.files io.streams.string math.vectors strings sequences
|
||||||
namespaces math parser sequences vectors
|
namespaces math parser sequences vectors
|
||||||
hashtables ;
|
hashtables ;
|
||||||
|
@ -123,7 +123,7 @@ SYMBOL: K
|
||||||
: string>sha1 ( string -- sha1 ) <string-reader> stream>sha1 ;
|
: string>sha1 ( string -- sha1 ) <string-reader> stream>sha1 ;
|
||||||
: string>sha1str ( string -- str ) string>sha1 hex-string ;
|
: string>sha1str ( string -- str ) string>sha1 hex-string ;
|
||||||
: string>sha1-bignum ( string -- n ) string>sha1 be> ;
|
: string>sha1-bignum ( string -- n ) string>sha1 be> ;
|
||||||
: file>sha1 ( file -- sha1 ) <file-reader> stream>sha1 ;
|
: file>sha1 ( file -- sha1 ) binary <file-reader> stream>sha1 ;
|
||||||
|
|
||||||
: string>sha1-interleave ( string -- seq )
|
: string>sha1-interleave ( string -- seq )
|
||||||
[ zero? ] left-trim
|
[ zero? ] left-trim
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
USING: arrays definitions io kernel math
|
USING: arrays definitions io kernel math
|
||||||
namespaces parser prettyprint sequences strings words
|
namespaces parser prettyprint sequences strings words
|
||||||
editors io.files io.sockets io.streams.string io.binary
|
editors io.files io.sockets io.streams.string io.binary
|
||||||
math.parser ;
|
math.parser io.encodings.ascii ;
|
||||||
IN: editors.jedit
|
IN: editors.jedit
|
||||||
|
|
||||||
: jedit-server-info ( -- port auth )
|
: jedit-server-info ( -- port auth )
|
||||||
home "/.jedit/server" path+ [
|
home "/.jedit/server" path+ ascii [
|
||||||
readln drop
|
readln drop
|
||||||
readln string>number
|
readln string>number
|
||||||
readln string>number
|
readln string>number
|
||||||
|
|
|
@ -5,7 +5,7 @@ furnace.validator hashtables heaps html.elements http
|
||||||
http.server.responders http.server.templating io.files kernel
|
http.server.responders http.server.templating io.files kernel
|
||||||
math namespaces quotations sequences splitting words strings
|
math namespaces quotations sequences splitting words strings
|
||||||
vectors webapps.callback continuations tuples classes vocabs
|
vectors webapps.callback continuations tuples classes vocabs
|
||||||
html io ;
|
html io io.encodings.binary ;
|
||||||
IN: furnace
|
IN: furnace
|
||||||
|
|
||||||
: code>quotation ( word/quot -- quot )
|
: code>quotation ( word/quot -- quot )
|
||||||
|
@ -194,7 +194,7 @@ SYMBOL: model
|
||||||
</a> ;
|
</a> ;
|
||||||
|
|
||||||
: send-resource ( name -- )
|
: send-resource ( name -- )
|
||||||
template-path get swap path+ resource-path <file-reader>
|
template-path get swap path+ resource-path binary <file-reader>
|
||||||
stdio get stream-copy ;
|
stdio get stream-copy ;
|
||||||
|
|
||||||
: render-link ( quot name -- )
|
: render-link ( quot name -- )
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
USING: alien arrays byte-arrays combinators
|
USING: alien arrays byte-arrays combinators
|
||||||
graphics.viewer io io.binary io.files kernel libc math
|
graphics.viewer io io.binary io.files kernel libc math
|
||||||
math.functions namespaces opengl opengl.gl prettyprint
|
math.functions namespaces opengl opengl.gl prettyprint
|
||||||
sequences strings ui ui.gadgets.panes ;
|
sequences strings ui ui.gadgets.panes io.encodings.binary ;
|
||||||
IN: graphics.bitmap
|
IN: graphics.bitmap
|
||||||
|
|
||||||
! Currently can only handle 24bit bitmaps.
|
! Currently can only handle 24bit bitmaps.
|
||||||
|
@ -59,7 +59,7 @@ TUPLE: bitmap magic size reserved offset header-length width
|
||||||
dup color-index-length read swap set-bitmap-color-index ;
|
dup color-index-length read swap set-bitmap-color-index ;
|
||||||
|
|
||||||
: load-bitmap ( path -- bitmap )
|
: load-bitmap ( path -- bitmap )
|
||||||
[
|
binary [
|
||||||
T{ bitmap } clone
|
T{ bitmap } clone
|
||||||
dup parse-file-header
|
dup parse-file-header
|
||||||
dup parse-bitmap-header
|
dup parse-bitmap-header
|
||||||
|
@ -69,7 +69,7 @@ TUPLE: bitmap magic size reserved offset header-length width
|
||||||
raw-bitmap>string >byte-array over set-bitmap-array ;
|
raw-bitmap>string >byte-array over set-bitmap-array ;
|
||||||
|
|
||||||
: save-bitmap ( bitmap path -- )
|
: save-bitmap ( bitmap path -- )
|
||||||
[
|
binary [
|
||||||
"BM" write
|
"BM" write
|
||||||
dup bitmap-array length 14 + 40 + 4 >le write
|
dup bitmap-array length 14 + 40 + 4 >le write
|
||||||
0 4 >le write
|
0 4 >le write
|
||||||
|
|
|
@ -191,11 +191,11 @@ ARTICLE: "cookbook-io" "Input and output cookbook"
|
||||||
}
|
}
|
||||||
"Print the lines of a file in sorted order:"
|
"Print the lines of a file in sorted order:"
|
||||||
{ $code
|
{ $code
|
||||||
"\"lines.txt\" file-lines natural-sort [ print ] each"
|
"utf8 \"lines.txt\" file-lines natural-sort [ print ] each"
|
||||||
}
|
}
|
||||||
"Read 1024 bytes from a file:"
|
"Read 1024 bytes from a file:"
|
||||||
{ $code
|
{ $code
|
||||||
"\"data.bin\" [ 1024 read ] with-file-reader"
|
"\"data.bin\" binary [ 1024 read ] with-file-reader"
|
||||||
}
|
}
|
||||||
"Convert a file of 4-byte cells from little to big endian or vice versa, by directly mapping it into memory:"
|
"Convert a file of 4-byte cells from little to big endian or vice versa, by directly mapping it into memory:"
|
||||||
{ $code
|
{ $code
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: assocs http kernel math math.parser namespaces sequences
|
USING: assocs http kernel math math.parser namespaces sequences
|
||||||
io io.sockets io.streams.string io.files io.timeouts strings
|
io io.sockets io.streams.string io.files io.timeouts strings
|
||||||
splitting continuations assocs.lib ;
|
splitting continuations assocs.lib io.encodings.binary ;
|
||||||
IN: http.client
|
IN: http.client
|
||||||
|
|
||||||
: parse-host ( url -- host port )
|
: parse-host ( url -- host port )
|
||||||
|
@ -71,7 +71,7 @@ DEFER: http-get-stream
|
||||||
: download-to ( url file -- )
|
: download-to ( url file -- )
|
||||||
#! Downloads the contents of a URL to a file.
|
#! Downloads the contents of a URL to a file.
|
||||||
>r http-get-stream check-response
|
>r http-get-stream check-response
|
||||||
r> <file-writer> stream-copy ;
|
r> binary <file-writer> stream-copy ;
|
||||||
|
|
||||||
: download ( url -- )
|
: download ( url -- )
|
||||||
dup download-name download-to ;
|
dup download-name download-to ;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
USING: io io.files io.streams.string http.server.templating kernel tools.test
|
USING: io io.files io.streams.string http.server.templating kernel tools.test
|
||||||
sequences ;
|
sequences io.encodings.utf8 ;
|
||||||
IN: temporary
|
IN: temporary
|
||||||
|
|
||||||
: test-template ( path -- ? )
|
: test-template ( path -- ? )
|
||||||
|
@ -8,7 +8,7 @@ IN: temporary
|
||||||
".fhtml" append resource-path
|
".fhtml" append resource-path
|
||||||
[ run-template-file ] with-string-writer
|
[ run-template-file ] with-string-writer
|
||||||
] keep
|
] keep
|
||||||
".html" append resource-path file-contents = ;
|
".html" append resource-path utf8 file-contents = ;
|
||||||
|
|
||||||
[ t ] [ "example" test-template ] unit-test
|
[ t ] [ "example" test-template ] unit-test
|
||||||
[ t ] [ "bug" test-template ] unit-test
|
[ t ] [ "bug" test-template ] unit-test
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
USING: continuations sequences kernel parser namespaces io
|
USING: continuations sequences kernel parser namespaces io
|
||||||
io.files io.streams.lines io.streams.string html html.elements
|
io.files io.streams.lines io.streams.string html html.elements
|
||||||
source-files debugger combinators math quotations generic
|
source-files debugger combinators math quotations generic
|
||||||
strings splitting ;
|
strings splitting io.encodings.utf8 ;
|
||||||
|
|
||||||
IN: http.server.templating
|
IN: http.server.templating
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ DEFER: <% delimiter
|
||||||
templating-vocab use+
|
templating-vocab use+
|
||||||
dup source-file file set ! so that reload works properly
|
dup source-file file set ! so that reload works properly
|
||||||
[
|
[
|
||||||
?resource-path file-contents
|
?resource-path utf8 file-contents
|
||||||
[ eval-template ] [ html-error. drop ] recover
|
[ eval-template ] [ html-error. drop ] recover
|
||||||
] keep
|
] keep
|
||||||
] with-file-vocabs
|
] with-file-vocabs
|
||||||
|
@ -93,4 +93,4 @@ DEFER: <% delimiter
|
||||||
swap path+ run-template-file ;
|
swap path+ run-template-file ;
|
||||||
|
|
||||||
: template-convert ( infile outfile -- )
|
: template-convert ( infile outfile -- )
|
||||||
[ run-template-file ] with-file-writer ;
|
utf8 [ run-template-file ] with-file-writer ;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel math sequences kernel.private namespaces arrays io
|
USING: kernel math sequences kernel.private namespaces arrays io
|
||||||
io.files splitting io.binary math.functions vectors quotations
|
io.files splitting io.binary math.functions vectors quotations
|
||||||
combinators ;
|
combinators io.encodings.binary ;
|
||||||
IN: icfp.2006
|
IN: icfp.2006
|
||||||
|
|
||||||
SYMBOL: regs
|
SYMBOL: regs
|
||||||
|
@ -134,7 +134,7 @@ SYMBOL: open-arrays
|
||||||
[ run-op exec-loop ] unless ;
|
[ run-op exec-loop ] unless ;
|
||||||
|
|
||||||
: load-platters ( path -- )
|
: load-platters ( path -- )
|
||||||
file-contents 4 group [ be> ] map
|
binary file-contents 4 group [ be> ] map
|
||||||
0 arrays get set-nth ;
|
0 arrays get set-nth ;
|
||||||
|
|
||||||
: init ( path -- )
|
: init ( path -- )
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
USING: arrays combinators io io.binary io.files io.paths
|
USING: arrays combinators io io.binary io.files io.paths
|
||||||
io.encodings.utf16 kernel math math.parser namespaces sequences
|
io.encodings.utf16 kernel math math.parser namespaces sequences
|
||||||
splitting strings assocs unicode.categories ;
|
splitting strings assocs unicode.categories io.encodings.binary ;
|
||||||
|
|
||||||
IN: id3
|
IN: id3
|
||||||
|
|
||||||
|
@ -107,20 +107,20 @@ C: <extended-header> extended-header
|
||||||
read-header read-frames <tag> ;
|
read-header read-frames <tag> ;
|
||||||
|
|
||||||
: supported-version? ( version -- ? )
|
: supported-version? ( version -- ? )
|
||||||
[ 3 4 ] member? ;
|
{ 3 4 } member? ;
|
||||||
|
|
||||||
: read-id3v2 ( -- tag/f )
|
: read-id3v2 ( -- tag/f )
|
||||||
read1 dup supported-version?
|
read1 dup supported-version?
|
||||||
[ (read-id3v2) ] [ drop f ] if ;
|
[ (read-id3v2) ] [ drop f ] if ;
|
||||||
|
|
||||||
: id3v2? ( -- ? )
|
: id3v2? ( -- ? )
|
||||||
3 read "ID3" = ;
|
3 read "ID3" sequence= ;
|
||||||
|
|
||||||
: read-tag ( stream -- tag/f )
|
: read-tag ( stream -- tag/f )
|
||||||
id3v2? [ read-id3v2 ] [ f ] if ;
|
id3v2? [ read-id3v2 ] [ f ] if ;
|
||||||
|
|
||||||
: id3v2 ( filename -- tag/f )
|
: id3v2 ( filename -- tag/f )
|
||||||
[ read-tag ] with-file-reader ;
|
binary [ read-tag ] with-file-reader ;
|
||||||
|
|
||||||
: file? ( path -- ? )
|
: file? ( path -- ? )
|
||||||
stat 3drop not ;
|
stat 3drop not ;
|
||||||
|
@ -135,7 +135,7 @@ C: <extended-header> extended-header
|
||||||
[ mp3? ] subset ;
|
[ mp3? ] subset ;
|
||||||
|
|
||||||
: id3? ( file -- ? )
|
: id3? ( file -- ? )
|
||||||
[ id3v2? ] with-file-reader ;
|
binary [ id3v2? ] with-file-reader ;
|
||||||
|
|
||||||
: id3s ( files -- id3s )
|
: id3s ( files -- id3s )
|
||||||
[ id3? ] subset ;
|
[ id3? ] subset ;
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
USING: io io.mmap io.files kernel tools.test continuations sequences ;
|
USING: io io.mmap io.files kernel tools.test continuations
|
||||||
|
sequences io.encodings.ascii ;
|
||||||
IN: temporary
|
IN: temporary
|
||||||
|
|
||||||
[ "mmap-test-file.txt" resource-path delete-file ] ignore-errors
|
[ "mmap-test-file.txt" resource-path delete-file ] ignore-errors
|
||||||
[ ] [ "mmap-test-file.txt" resource-path [ "12345" write ] with-file-writer ] unit-test
|
[ ] [ "mmap-test-file.txt" resource-path ascii [ "12345" write ] with-file-writer ] unit-test
|
||||||
[ ] [ "mmap-test-file.txt" resource-path dup file-length [ CHAR: 2 0 pick set-nth drop ] with-mapped-file ] unit-test
|
[ ] [ "mmap-test-file.txt" resource-path dup file-length [ CHAR: 2 0 pick set-nth drop ] with-mapped-file ] unit-test
|
||||||
[ 5 ] [ "mmap-test-file.txt" resource-path dup file-length [ length ] with-mapped-file ] unit-test
|
[ 5 ] [ "mmap-test-file.txt" resource-path dup file-length [ length ] with-mapped-file ] unit-test
|
||||||
[ "22345" ] [ "mmap-test-file.txt" resource-path file-contents ] unit-test
|
[ "22345" ] [ "mmap-test-file.txt" resource-path ascii file-contents ] unit-test
|
||||||
[ "mmap-test-file.txt" resource-path delete-file ] ignore-errors
|
[ "mmap-test-file.txt" resource-path delete-file ] ignore-errors
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
USING: io.files io.sockets io kernel threads namespaces
|
USING: io.files io.sockets io kernel threads namespaces
|
||||||
tools.test continuations strings byte-arrays sequences
|
tools.test continuations strings byte-arrays sequences
|
||||||
prettyprint system ;
|
prettyprint system io.encodings.binary ;
|
||||||
IN: temporary
|
IN: temporary
|
||||||
|
|
||||||
! Unix domain stream sockets
|
! Unix domain stream sockets
|
||||||
|
@ -131,15 +131,15 @@ client-addr <datagram>
|
||||||
! Invalid parameter tests
|
! Invalid parameter tests
|
||||||
|
|
||||||
[
|
[
|
||||||
image [ stdio get accept ] with-file-reader
|
image binary [ stdio get accept ] with-file-reader
|
||||||
] must-fail
|
] must-fail
|
||||||
|
|
||||||
[
|
[
|
||||||
image [ stdio get receive ] with-file-reader
|
image binary [ stdio get receive ] with-file-reader
|
||||||
] must-fail
|
] must-fail
|
||||||
|
|
||||||
[
|
[
|
||||||
image [
|
image binary [
|
||||||
B{ 1 2 } server-addr
|
B{ 1 2 } server-addr
|
||||||
stdio get send
|
stdio get send
|
||||||
] with-file-reader
|
] with-file-reader
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
USING: kernel io io.files io.monitors ;
|
USING: kernel io io.files io.monitors io.encodings.utf8 ;
|
||||||
IN: log-viewer
|
IN: log-viewer
|
||||||
|
|
||||||
: read-lines ( stream -- )
|
: read-lines ( stream -- )
|
||||||
|
@ -9,6 +9,6 @@ IN: log-viewer
|
||||||
dup next-change 2drop over read-lines tail-file-loop ;
|
dup next-change 2drop over read-lines tail-file-loop ;
|
||||||
|
|
||||||
: tail-file ( file -- )
|
: tail-file ( file -- )
|
||||||
dup <file-reader> dup read-lines
|
dup utf8 <file-reader> dup read-lines
|
||||||
swap parent-directory f <monitor>
|
swap parent-directory f <monitor>
|
||||||
tail-file-loop ;
|
tail-file-loop ;
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
! Copyright (C) 2008 Slava Pestov.
|
! Copyright (C) 2008 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: logging.analysis logging.server logging smtp io.sockets
|
USING: logging.analysis logging.server logging smtp io.sockets
|
||||||
kernel io.files io.streams.string namespaces raptor.cron assocs ;
|
kernel io.files io.streams.string namespaces raptor.cron assocs
|
||||||
|
io.encodings.utf8 ;
|
||||||
IN: logging.insomniac
|
IN: logging.insomniac
|
||||||
|
|
||||||
SYMBOL: insomniac-smtp-host
|
SYMBOL: insomniac-smtp-host
|
||||||
|
@ -11,7 +12,7 @@ SYMBOL: insomniac-recipients
|
||||||
|
|
||||||
: ?analyze-log ( service word-names -- string/f )
|
: ?analyze-log ( service word-names -- string/f )
|
||||||
>r log-path 1 log# dup exists? [
|
>r log-path 1 log# dup exists? [
|
||||||
file-lines r> [ analyze-log ] with-string-writer
|
utf8 file-lines r> [ analyze-log ] with-string-writer
|
||||||
] [
|
] [
|
||||||
r> 2drop f
|
r> 2drop f
|
||||||
] if ;
|
] if ;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
USING: namespaces kernel io calendar sequences io.files
|
USING: namespaces kernel io calendar sequences io.files
|
||||||
io.sockets continuations prettyprint assocs math.parser
|
io.sockets continuations prettyprint assocs math.parser
|
||||||
words debugger math combinators concurrency arrays init
|
words debugger math combinators concurrency arrays init
|
||||||
math.ranges strings ;
|
math.ranges strings io.encodings.utf8 ;
|
||||||
IN: logging.server
|
IN: logging.server
|
||||||
|
|
||||||
: log-root ( -- string )
|
: log-root ( -- string )
|
||||||
|
@ -20,7 +20,7 @@ SYMBOL: log-files
|
||||||
: open-log-stream ( service -- stream )
|
: open-log-stream ( service -- stream )
|
||||||
log-path
|
log-path
|
||||||
dup make-directories
|
dup make-directories
|
||||||
1 log# <file-appender> ;
|
1 log# utf8 <file-appender> ;
|
||||||
|
|
||||||
: log-stream ( service -- stream )
|
: log-stream ( service -- stream )
|
||||||
log-files get [ open-log-stream ] cache ;
|
log-files get [ open-log-stream ] cache ;
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
! Copyright (C) 2007 Adam Wendt.
|
! Copyright (C) 2007 Adam Wendt.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: alien alien.c-types byte-arrays io io.binary io.files kernel mad
|
USING: alien alien.c-types byte-arrays io io.binary io.files kernel mad
|
||||||
namespaces prettyprint sbufs sequences tools.interpreter vars ;
|
namespaces prettyprint sbufs sequences tools.interpreter vars
|
||||||
|
io.encodings.binary ;
|
||||||
IN: mad.api
|
IN: mad.api
|
||||||
|
|
||||||
VARS: buffer-start buffer-length output-callback-var ;
|
VARS: buffer-start buffer-length output-callback-var ;
|
||||||
|
@ -80,9 +81,6 @@ VARS: buffer-start buffer-length output-callback-var ;
|
||||||
: make-decoder ( -- decoder )
|
: make-decoder ( -- decoder )
|
||||||
"mad_decoder" malloc-object ;
|
"mad_decoder" malloc-object ;
|
||||||
|
|
||||||
: malloc-file-contents ( path -- alien )
|
|
||||||
file-contents >byte-array malloc-byte-array ;
|
|
||||||
|
|
||||||
: mad-run ( -- int )
|
: mad-run ( -- int )
|
||||||
make-decoder [ mad-init ] keep MAD_DECODER_MODE_SYNC mad_decoder_run ;
|
make-decoder [ mad-init ] keep MAD_DECODER_MODE_SYNC mad_decoder_run ;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
USING: io io.files sequences xml xml.utilities ;
|
USING: io io.files sequences xml xml.utilities io.encodings.utf8 ;
|
||||||
IN: msxml-to-csv
|
IN: msxml-to-csv
|
||||||
|
|
||||||
: print-csv ( table -- ) [ "," join print ] each ;
|
: print-csv ( table -- ) [ "," join print ] each ;
|
||||||
|
@ -13,6 +13,6 @@ IN: msxml-to-csv
|
||||||
] map ;
|
] map ;
|
||||||
|
|
||||||
: msxml>csv ( infile outfile -- )
|
: msxml>csv ( infile outfile -- )
|
||||||
[
|
utf8 [
|
||||||
file>xml (msxml>csv) print-csv
|
file>xml (msxml>csv) print-csv
|
||||||
] with-file-writer ;
|
] with-file-writer ;
|
||||||
|
|
|
@ -14,7 +14,8 @@ USING: kernel alien ogg ogg.vorbis ogg.theora io byte-arrays
|
||||||
sequences libc shuffle alien.c-types system openal math
|
sequences libc shuffle alien.c-types system openal math
|
||||||
namespaces threads shuffle opengl arrays ui.gadgets.worlds
|
namespaces threads shuffle opengl arrays ui.gadgets.worlds
|
||||||
combinators math.parser ui.gadgets ui.render opengl.gl ui
|
combinators math.parser ui.gadgets ui.render opengl.gl ui
|
||||||
continuations io.files hints combinators.lib sequences.lib ;
|
continuations io.files hints combinators.lib sequences.lib
|
||||||
|
io.encodings.binary ;
|
||||||
|
|
||||||
IN: ogg.player
|
IN: ogg.player
|
||||||
|
|
||||||
|
@ -612,7 +613,7 @@ M: theora-gadget draw-gadget* ( gadget -- )
|
||||||
<player> play-ogg ;
|
<player> play-ogg ;
|
||||||
|
|
||||||
: play-vorbis-file ( filename -- )
|
: play-vorbis-file ( filename -- )
|
||||||
<file-reader> play-vorbis-stream ;
|
binary <file-reader> play-vorbis-stream ;
|
||||||
|
|
||||||
: play-theora-stream ( stream -- )
|
: play-theora-stream ( stream -- )
|
||||||
<player>
|
<player>
|
||||||
|
@ -620,5 +621,5 @@ M: theora-gadget draw-gadget* ( gadget -- )
|
||||||
play-ogg ;
|
play-ogg ;
|
||||||
|
|
||||||
: play-theora-file ( filename -- )
|
: play-theora-file ( filename -- )
|
||||||
<file-reader> play-theora-stream ;
|
binary <file-reader> play-theora-stream ;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
IN: temporary
|
IN: temporary
|
||||||
USING: arrays io kernel porter-stemmer sequences tools.test
|
USING: arrays io kernel porter-stemmer sequences tools.test
|
||||||
io.files ;
|
io.files io.encodings.utf8 ;
|
||||||
|
|
||||||
[ 0 ] [ "xa" consonant-seq ] unit-test
|
[ 0 ] [ "xa" consonant-seq ] unit-test
|
||||||
[ 0 ] [ "xxaa" consonant-seq ] unit-test
|
[ 0 ] [ "xxaa" consonant-seq ] unit-test
|
||||||
|
@ -56,7 +56,7 @@ io.files ;
|
||||||
[ "hell" ] [ "hell" step5 "" like ] unit-test
|
[ "hell" ] [ "hell" step5 "" like ] unit-test
|
||||||
[ "mate" ] [ "mate" step5 "" like ] unit-test
|
[ "mate" ] [ "mate" step5 "" like ] unit-test
|
||||||
|
|
||||||
: resource-lines resource-path file-lines ;
|
: resource-lines resource-path utf8 file-lines ;
|
||||||
|
|
||||||
[ { } ] [
|
[ { } ] [
|
||||||
"extra/porter-stemmer/test/voc.txt" resource-lines
|
"extra/porter-stemmer/test/voc.txt" resource-lines
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! Copyright (c) 2008 Aaron Schaefer.
|
! Copyright (c) 2008 Aaron Schaefer.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: ascii io.files kernel math math.functions namespaces
|
USING: ascii io.files kernel math math.functions namespaces
|
||||||
project-euler.common sequences sequences.lib splitting ;
|
project-euler.common sequences sequences.lib splitting io.encodings.ascii ;
|
||||||
IN: project-euler.042
|
IN: project-euler.042
|
||||||
|
|
||||||
! http://projecteuler.net/index.php?section=problems&id=42
|
! http://projecteuler.net/index.php?section=problems&id=42
|
||||||
|
@ -31,7 +31,7 @@ IN: project-euler.042
|
||||||
|
|
||||||
: source-042 ( -- seq )
|
: source-042 ( -- seq )
|
||||||
"extra/project-euler/042/words.txt" resource-path
|
"extra/project-euler/042/words.txt" resource-path
|
||||||
file-contents [ quotable? ] subset "," split ;
|
ascii file-contents [ quotable? ] subset "," split ;
|
||||||
|
|
||||||
: (triangle-upto) ( limit n -- )
|
: (triangle-upto) ( limit n -- )
|
||||||
2dup nth-triangle > [
|
2dup nth-triangle > [
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
! Copyright (c) 2007 Samuel Tardieu, Aaron Schaefer.
|
! Copyright (c) 2007 Samuel Tardieu, Aaron Schaefer.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: io.files math.parser namespaces project-euler.common sequences splitting ;
|
USING: io.files math.parser namespaces project-euler.common
|
||||||
|
io.encodings.ascii sequences splitting ;
|
||||||
IN: project-euler.067
|
IN: project-euler.067
|
||||||
|
|
||||||
! http://projecteuler.net/index.php?section=problems&id=67
|
! http://projecteuler.net/index.php?section=problems&id=67
|
||||||
|
@ -38,7 +39,7 @@ IN: project-euler.067
|
||||||
|
|
||||||
: source-067 ( -- seq )
|
: source-067 ( -- seq )
|
||||||
"extra/project-euler/067/triangle.txt" resource-path
|
"extra/project-euler/067/triangle.txt" resource-path
|
||||||
file-lines [ " " split [ string>number ] map ] map ;
|
ascii file-lines [ " " split [ string>number ] map ] map ;
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
! Copyright (c) 2008 Aaron Schaefer.
|
! Copyright (c) 2008 Aaron Schaefer.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: assocs hashtables io.files kernel math math.parser namespaces sequences ;
|
USING: assocs hashtables io.files kernel math math.parser namespaces
|
||||||
|
io.encodings.ascii sequences ;
|
||||||
IN: project-euler.079
|
IN: project-euler.079
|
||||||
|
|
||||||
! http://projecteuler.net/index.php?section=problems&id=79
|
! http://projecteuler.net/index.php?section=problems&id=79
|
||||||
|
@ -26,7 +27,7 @@ IN: project-euler.079
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: source-079 ( -- seq )
|
: source-079 ( -- seq )
|
||||||
"extra/project-euler/079/keylog.txt" resource-path file-lines ;
|
"extra/project-euler/079/keylog.txt" resource-path ascii file-lines ;
|
||||||
|
|
||||||
: >edges ( seq -- seq )
|
: >edges ( seq -- seq )
|
||||||
[
|
[
|
||||||
|
|
|
@ -42,10 +42,10 @@ SYMBOL: networking-hook
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
USING: io io.files io.streams.lines io.streams.plain io.streams.duplex
|
USING: io io.files io.streams.lines io.streams.plain io.streams.duplex
|
||||||
listener ;
|
listener io.encodings.utf8 ;
|
||||||
|
|
||||||
: tty-listener ( tty -- )
|
: tty-listener ( tty -- )
|
||||||
[ <file-reader> ] [ <file-writer> ] bi <duplex-stream>
|
[ utf8 <file-reader> ] [ utf8 <file-writer> ] bi <duplex-stream>
|
||||||
[ listener ] with-stream ;
|
[ listener ] with-stream ;
|
||||||
|
|
||||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
USING: rss io kernel io.files tools.test ;
|
USING: rss io kernel io.files tools.test io.encodings.utf8 ;
|
||||||
|
|
||||||
: load-news-file ( filename -- feed )
|
: load-news-file ( filename -- feed )
|
||||||
#! Load an news syndication file and process it, returning
|
#! Load an news syndication file and process it, returning
|
||||||
#! it as an feed tuple.
|
#! it as an feed tuple.
|
||||||
<file-reader> read-feed ;
|
utf8 <file-reader> read-feed ;
|
||||||
|
|
||||||
[ T{
|
[ T{
|
||||||
feed
|
feed
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
USING: combinators io io.files io.streams.duplex
|
USING: combinators io io.files io.streams.duplex
|
||||||
io.streams.string kernel math math.parser continuations
|
io.streams.string kernel math math.parser continuations
|
||||||
namespaces pack prettyprint sequences strings system
|
namespaces pack prettyprint sequences strings system
|
||||||
hexdump tools.interpreter ;
|
hexdump tools.interpreter io.encodings.binary ;
|
||||||
IN: tar
|
IN: tar
|
||||||
|
|
||||||
: zero-checksum 256 ;
|
: zero-checksum 256 ;
|
||||||
|
@ -94,7 +94,7 @@ TUPLE: unimplemented-typeflag header ;
|
||||||
|
|
||||||
! Normal file
|
! Normal file
|
||||||
: typeflag-0
|
: typeflag-0
|
||||||
tar-header-name tar-path+ <file-writer>
|
tar-header-name tar-path+ binary <file-writer>
|
||||||
[ read-data-blocks ] keep dispose ;
|
[ read-data-blocks ] keep dispose ;
|
||||||
|
|
||||||
! Hard link
|
! Hard link
|
||||||
|
@ -236,7 +236,7 @@ TUPLE: unimplemented-typeflag header ;
|
||||||
] when* ;
|
] when* ;
|
||||||
|
|
||||||
: parse-tar ( path -- obj )
|
: parse-tar ( path -- obj )
|
||||||
[
|
binary [
|
||||||
"tar-test" resource-path base-dir set
|
"tar-test" resource-path base-dir set
|
||||||
global [ nl nl nl "Starting to parse .tar..." print flush ] bind
|
global [ nl nl nl "Starting to parse .tar..." print flush ] bind
|
||||||
global [ "Expanding to: " write base-dir get . flush ] bind
|
global [ "Expanding to: " write base-dir get . flush ] bind
|
||||||
|
|
|
@ -5,12 +5,12 @@ words vocabs vocabs.loader definitions parser continuations
|
||||||
inspector debugger io io.styles io.streams.lines hashtables
|
inspector debugger io io.styles io.streams.lines hashtables
|
||||||
sorting prettyprint source-files arrays combinators strings
|
sorting prettyprint source-files arrays combinators strings
|
||||||
system math.parser help.markup help.topics help.syntax
|
system math.parser help.markup help.topics help.syntax
|
||||||
help.stylesheet memoize ;
|
help.stylesheet memoize io.encodings.utf8 ;
|
||||||
IN: tools.browser
|
IN: tools.browser
|
||||||
|
|
||||||
MEMO: (vocab-file-contents) ( path -- lines )
|
MEMO: (vocab-file-contents) ( path -- lines )
|
||||||
?resource-path dup exists?
|
?resource-path dup exists?
|
||||||
[ file-lines ] [ drop f ] if ;
|
[ utf8 file-lines ] [ drop f ] if ;
|
||||||
|
|
||||||
: vocab-file-contents ( vocab name -- seq )
|
: vocab-file-contents ( vocab name -- seq )
|
||||||
vocab-path+ dup [ (vocab-file-contents) ] when ;
|
vocab-path+ dup [ (vocab-file-contents) ] when ;
|
||||||
|
@ -18,7 +18,7 @@ MEMO: (vocab-file-contents) ( path -- lines )
|
||||||
: set-vocab-file-contents ( seq vocab name -- )
|
: set-vocab-file-contents ( seq vocab name -- )
|
||||||
dupd vocab-path+ [
|
dupd vocab-path+ [
|
||||||
?resource-path
|
?resource-path
|
||||||
[ [ print ] each ] with-file-writer
|
utf8 [ [ print ] each ] with-file-writer
|
||||||
] [
|
] [
|
||||||
"The " swap vocab-name
|
"The " swap vocab-name
|
||||||
" vocabulary was not loaded from the file system"
|
" vocabulary was not loaded from the file system"
|
||||||
|
|
|
@ -46,8 +46,8 @@ IN: tools.deploy.macosx
|
||||||
] H{ } make-assoc print-plist ;
|
] H{ } make-assoc print-plist ;
|
||||||
|
|
||||||
: create-app-plist ( vocab bundle-name -- )
|
: create-app-plist ( vocab bundle-name -- )
|
||||||
dup "Contents/Info.plist" path+ <file-writer>
|
dup "Contents/Info.plist" path+
|
||||||
[ print-app-plist ] with-stream ;
|
utf8 [ print-app-plist ] with-file-writer ;
|
||||||
|
|
||||||
: create-app-dir ( vocab bundle-name -- vm )
|
: create-app-dir ( vocab bundle-name -- vm )
|
||||||
dup "Frameworks" copy-bundle-dir
|
dup "Frameworks" copy-bundle-dir
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: io.files io words alien kernel math.parser alien.syntax
|
USING: io.files io words alien kernel math.parser alien.syntax
|
||||||
io.launcher system assocs arrays sequences namespaces qualified
|
io.launcher system assocs arrays sequences namespaces qualified
|
||||||
system math windows.kernel32 generator.fixup ;
|
system math windows.kernel32 generator.fixup io.encodings.ascii ;
|
||||||
IN: tools.disassembler
|
IN: tools.disassembler
|
||||||
|
|
||||||
: in-file "gdb-in.txt" resource-path ;
|
: in-file "gdb-in.txt" resource-path ;
|
||||||
|
@ -15,7 +15,7 @@ M: word make-disassemble-cmd
|
||||||
word-xt code-format - 2array make-disassemble-cmd ;
|
word-xt code-format - 2array make-disassemble-cmd ;
|
||||||
|
|
||||||
M: pair make-disassemble-cmd
|
M: pair make-disassemble-cmd
|
||||||
in-file [
|
in-file ascii [
|
||||||
"attach " write
|
"attach " write
|
||||||
current-process-handle number>string print
|
current-process-handle number>string print
|
||||||
"disassemble " write
|
"disassemble " write
|
||||||
|
@ -28,7 +28,7 @@ M: pair make-disassemble-cmd
|
||||||
out-file +stdout+ set
|
out-file +stdout+ set
|
||||||
[ "gdb" , "-x" , in-file , "-batch" , ] { } make +arguments+ set
|
[ "gdb" , "-x" , in-file , "-batch" , ] { } make +arguments+ set
|
||||||
] { } make-assoc run-process drop
|
] { } make-assoc run-process drop
|
||||||
out-file file-lines ;
|
out-file ascii file-lines ;
|
||||||
|
|
||||||
: tabs>spaces ( str -- str' )
|
: tabs>spaces ( str -- str' )
|
||||||
{ { CHAR: \t CHAR: \s } } substitute ;
|
{ { CHAR: \t CHAR: \s } } substitute ;
|
||||||
|
|
|
@ -73,7 +73,7 @@ M: freetype-renderer free-fonts ( world -- )
|
||||||
|
|
||||||
: open-face ( font style -- face )
|
: open-face ( font style -- face )
|
||||||
ttf-name ttf-path
|
ttf-name ttf-path
|
||||||
dup file-contents >byte-array malloc-byte-array
|
dup malloc-file-contents
|
||||||
swap file-length
|
swap file-length
|
||||||
(open-face) ;
|
(open-face) ;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
USING: unicode.categories kernel math combinators splitting
|
USING: unicode.categories kernel math combinators splitting
|
||||||
sequences math.parser io.files io assocs arrays namespaces
|
sequences math.parser io.files io assocs arrays namespaces
|
||||||
combinators.lib assocs.lib math.ranges unicode.normalize
|
combinators.lib assocs.lib math.ranges unicode.normalize
|
||||||
unicode.syntax unicode.data compiler.units alien.syntax ;
|
unicode.syntax unicode.data compiler.units alien.syntax io.encodings.ascii ;
|
||||||
IN: unicode.breaks
|
IN: unicode.breaks
|
||||||
|
|
||||||
C-ENUM: Any L V T Extend Control CR LF graphemes ;
|
C-ENUM: Any L V T Extend Control CR LF graphemes ;
|
||||||
|
@ -30,7 +30,7 @@ CATEGORY: grapheme-control Zl Zp Cc Cf ;
|
||||||
concat >set ;
|
concat >set ;
|
||||||
|
|
||||||
: other-extend-lines ( -- lines )
|
: other-extend-lines ( -- lines )
|
||||||
"extra/unicode/PropList.txt" resource-path file-lines ;
|
"extra/unicode/PropList.txt" resource-path ascii file-lines ;
|
||||||
|
|
||||||
VALUE: other-extend
|
VALUE: other-extend
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
USING: assocs math kernel sequences io.files hashtables
|
USING: assocs math kernel sequences io.files hashtables
|
||||||
quotations splitting arrays math.parser combinators.lib hash2
|
quotations splitting arrays math.parser combinators.lib hash2
|
||||||
byte-arrays words namespaces words compiler.units parser ;
|
byte-arrays words namespaces words compiler.units parser io.encodings.ascii ;
|
||||||
IN: unicode.data
|
IN: unicode.data
|
||||||
|
|
||||||
<<
|
<<
|
||||||
|
@ -21,7 +21,7 @@ IN: unicode.data
|
||||||
! Loading data from UnicodeData.txt
|
! Loading data from UnicodeData.txt
|
||||||
|
|
||||||
: data ( filename -- data )
|
: data ( filename -- data )
|
||||||
file-lines [ ";" split ] map ;
|
ascii file-lines [ ";" split ] map ;
|
||||||
|
|
||||||
: load-data ( -- data )
|
: load-data ( -- data )
|
||||||
"extra/unicode/UnicodeData.txt" resource-path data ;
|
"extra/unicode/UnicodeData.txt" resource-path data ;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
USING: calendar html io io.files kernel math math.parser
|
USING: calendar html io io.files kernel math math.parser
|
||||||
http.server.responders http.server.templating namespaces parser
|
http.server.responders http.server.templating namespaces parser
|
||||||
sequences strings assocs hashtables debugger http.mime sorting
|
sequences strings assocs hashtables debugger http.mime sorting
|
||||||
html.elements logging ;
|
html.elements logging io.encodings.binary ;
|
||||||
|
|
||||||
IN: webapps.file
|
IN: webapps.file
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ SYMBOL: serve-file-hook
|
||||||
[
|
[
|
||||||
dupd
|
dupd
|
||||||
file-response
|
file-response
|
||||||
<file-reader> stdio get stream-copy
|
binary <file-reader> stdio get stream-copy
|
||||||
] serve-file-hook set-global
|
] serve-file-hook set-global
|
||||||
|
|
||||||
: serve-static ( filename mime-type -- )
|
: serve-static ( filename mime-type -- )
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! Copyright (C) 2007 Slava Pestov.
|
! Copyright (C) 2007 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: io.files namespaces webapps.file http.server.responders
|
USING: io.files namespaces webapps.file http.server.responders
|
||||||
xmode.code2html kernel html sequences ;
|
xmode.code2html kernel html sequences io.encodings.utf8 ;
|
||||||
IN: webapps.source
|
IN: webapps.source
|
||||||
|
|
||||||
! This responder is a potential security problem. Make sure you
|
! This responder is a potential security problem. Make sure you
|
||||||
|
@ -15,7 +15,7 @@ IN: webapps.source
|
||||||
: source-responder ( path mime-type -- )
|
: source-responder ( path mime-type -- )
|
||||||
drop
|
drop
|
||||||
serving-html
|
serving-html
|
||||||
[ dup <file-reader> htmlize-stream ] with-html-stream ;
|
[ dup utf8 <file-reader> htmlize-stream ] with-html-stream ;
|
||||||
|
|
||||||
global [
|
global [
|
||||||
! Serve up our own source code
|
! Serve up our own source code
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
USING: io io.streams.string io.files kernel math namespaces
|
USING: io io.streams.string io.files kernel math namespaces
|
||||||
prettyprint sequences arrays generic strings vectors
|
prettyprint sequences arrays generic strings vectors
|
||||||
xml.char-classes xml.data xml.errors xml.tokenize xml.writer
|
xml.char-classes xml.data xml.errors xml.tokenize xml.writer
|
||||||
xml.utilities state-parser assocs ascii ;
|
xml.utilities state-parser assocs ascii io.encodings.utf8 ;
|
||||||
IN: xml
|
IN: xml
|
||||||
|
|
||||||
! -- Overall parser with data tree
|
! -- Overall parser with data tree
|
||||||
|
@ -167,7 +167,8 @@ TUPLE: pull-xml scope ;
|
||||||
<string-reader> read-xml ;
|
<string-reader> read-xml ;
|
||||||
|
|
||||||
: file>xml ( filename -- xml )
|
: file>xml ( filename -- xml )
|
||||||
<file-reader> read-xml ;
|
! Autodetect encoding!
|
||||||
|
utf8 <file-reader> read-xml ;
|
||||||
|
|
||||||
: xml-reprint ( string -- )
|
: xml-reprint ( string -- )
|
||||||
string>xml print-xml ;
|
string>xml print-xml ;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
USING: xmode.loader xmode.utilities xmode.rules namespaces
|
USING: xmode.loader xmode.utilities xmode.rules namespaces
|
||||||
strings splitting assocs sequences kernel io.files xml memoize
|
strings splitting assocs sequences kernel io.files xml memoize
|
||||||
words globs combinators ;
|
words globs combinators io.encodings.utf8 ;
|
||||||
IN: xmode.catalog
|
IN: xmode.catalog
|
||||||
|
|
||||||
TUPLE: mode file file-name-glob first-line-glob ;
|
TUPLE: mode file file-name-glob first-line-glob ;
|
||||||
|
@ -25,7 +25,7 @@ TAGS>
|
||||||
|
|
||||||
: load-catalog ( -- modes )
|
: load-catalog ( -- modes )
|
||||||
"extra/xmode/modes/catalog" resource-path
|
"extra/xmode/modes/catalog" resource-path
|
||||||
<file-reader> read-xml parse-modes-tag ;
|
file>xml parse-modes-tag ;
|
||||||
|
|
||||||
: modes ( -- assoc )
|
: modes ( -- assoc )
|
||||||
\ modes get-global [
|
\ modes get-global [
|
||||||
|
@ -38,7 +38,7 @@ TAGS>
|
||||||
MEMO: (load-mode) ( name -- rule-sets )
|
MEMO: (load-mode) ( name -- rule-sets )
|
||||||
modes at mode-file
|
modes at mode-file
|
||||||
"extra/xmode/modes/" swap append
|
"extra/xmode/modes/" swap append
|
||||||
resource-path <file-reader> parse-mode ;
|
resource-path utf8 <file-reader> parse-mode ;
|
||||||
|
|
||||||
SYMBOL: rule-sets
|
SYMBOL: rule-sets
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
USING: xmode.tokens xmode.marker xmode.catalog kernel html html.elements io
|
USING: xmode.tokens xmode.marker xmode.catalog kernel html html.elements io
|
||||||
io.files sequences words ;
|
io.files sequences words io.encodings.utf8 ;
|
||||||
IN: xmode.code2html
|
IN: xmode.code2html
|
||||||
|
|
||||||
: htmlize-tokens ( tokens -- )
|
: htmlize-tokens ( tokens -- )
|
||||||
|
@ -20,7 +20,7 @@ IN: xmode.code2html
|
||||||
: default-stylesheet ( -- )
|
: default-stylesheet ( -- )
|
||||||
<style>
|
<style>
|
||||||
"extra/xmode/code2html/stylesheet.css"
|
"extra/xmode/code2html/stylesheet.css"
|
||||||
resource-path file-contents write
|
resource-path utf8 file-contents write
|
||||||
</style> ;
|
</style> ;
|
||||||
|
|
||||||
: htmlize-stream ( path stream -- )
|
: htmlize-stream ( path stream -- )
|
||||||
|
@ -40,5 +40,5 @@ IN: xmode.code2html
|
||||||
</html> ;
|
</html> ;
|
||||||
|
|
||||||
: htmlize-file ( path -- )
|
: htmlize-file ( path -- )
|
||||||
dup <file-reader> over ".html" append <file-writer>
|
dup utf8 <file-reader> over ".html" append utf8 <file-writer>
|
||||||
[ htmlize-stream ] with-stream ;
|
[ htmlize-stream ] with-stream ;
|
||||||
|
|
|
@ -6,6 +6,6 @@ USING: tools.test yahoo kernel io.files xml sequences ;
|
||||||
"Official Foo Fighters"
|
"Official Foo Fighters"
|
||||||
"http://www.foofighters.com/"
|
"http://www.foofighters.com/"
|
||||||
"Official site with news, tour dates, discography, store, community, and more."
|
"Official site with news, tour dates, discography, store, community, and more."
|
||||||
} ] [ "extra/yahoo/test-results.xml" resource-path <file-reader> read-xml parse-yahoo first ] unit-test
|
} ] [ "extra/yahoo/test-results.xml" resource-path file>xml parse-yahoo first ] unit-test
|
||||||
|
|
||||||
[ "http://search.yahooapis.com/WebSearchService/V1/webSearch?appid=Factor-search&query=hi&results=1" ] [ "hi" 1 query ] unit-test
|
[ "http://search.yahooapis.com/WebSearchService/V1/webSearch?appid=Factor-search&query=hi&results=1" ] [ "hi" 1 query ] unit-test
|
||||||
|
|
Loading…
Reference in New Issue