Merge branch 'master' of git://factorcode.org/git/factor

db4
Slava Pestov 2009-09-27 17:18:16 -05:00
commit afc7a20ab8
85 changed files with 513 additions and 404 deletions

View File

@ -60,6 +60,8 @@ GENERIC: c-type ( name -- c-type ) foldable
GENERIC: resolve-pointer-type ( name -- c-type ) GENERIC: resolve-pointer-type ( name -- c-type )
<< \ void \ void* "pointer-c-type" set-word-prop >>
M: word resolve-pointer-type M: word resolve-pointer-type
dup "pointer-c-type" word-prop dup "pointer-c-type" word-prop
[ ] [ drop void* ] ?if ; [ ] [ drop void* ] ?if ;

View File

@ -0,0 +1,27 @@
! (c)2009 Joe Groff bsd license
USING: accessors alien.c-types alien.parser alien.syntax
tools.test vocabs.parser ;
IN: alien.parser.tests
TYPEDEF: char char2
[ int ] [ "int" parse-c-type ] unit-test
[ { int 5 } ] [ "int[5]" parse-c-type ] unit-test
[ { int 5 10 11 } ] [ "int[5][10][11]" parse-c-type ] unit-test
[ void* ] [ "int*" parse-c-type ] unit-test
[ void* ] [ "int**" parse-c-type ] unit-test
[ void* ] [ "int***" parse-c-type ] unit-test
[ void* ] [ "int****" parse-c-type ] unit-test
[ char* ] [ "char*" parse-c-type ] unit-test
[ void* ] [ "char**" parse-c-type ] unit-test
[ void* ] [ "char***" parse-c-type ] unit-test
[ void* ] [ "char****" parse-c-type ] unit-test
[ char2 ] [ "char2" parse-c-type ] unit-test
[ char* ] [ "char2*" parse-c-type ] unit-test
SYMBOL: not-c-type
[ "not-c-type" parse-c-type ] [ no-c-type? ] must-fail-with
! uncomment this when string C type parsing goes away
! [ "not-word" parse-c-type ] [ error>> no-word-error? ] must-fail-with

View File

@ -1,6 +1,6 @@
! Copyright (C) 2006, 2007 Slava Pestov ! Copyright (C) 2006, 2007 Slava Pestov
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax classes.struct ; USING: alien.c-types alien.syntax classes.struct ;
IN: cocoa.runtime IN: cocoa.runtime
TYPEDEF: void* SEL TYPEDEF: void* SEL

View File

@ -1,7 +1,7 @@
! Copyright (C) 2006, 2009 Slava Pestov ! Copyright (C) 2006, 2009 Slava Pestov
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.c-types alien.syntax combinators kernel layouts USING: alien.c-types alien.syntax combinators kernel layouts
classes.struct core-graphics.types ; classes.struct cocoa.runtime core-graphics.types ;
IN: cocoa.types IN: cocoa.types
TYPEDEF: long NSInteger TYPEDEF: long NSInteger

View File

@ -1,10 +1,9 @@
! Copyright (C) 2009 Marc Fauconneau. ! Copyright (C) 2009 Marc Fauconneau.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays assocs byte-arrays USING: accessors arrays assocs byte-vectors combinators
byte-vectors combinators fry grouping hashtables compression.huffman fry hashtables io.binary kernel locals math
compression.huffman images io.binary kernel locals math.bitwise math.order math.ranges sequences sorting ;
math math.bitwise math.order math.ranges multiline sequences QUALIFIED-WITH: bitstreams bs
sorting ;
IN: compression.inflate IN: compression.inflate
QUALIFIED-WITH: bitstreams bs QUALIFIED-WITH: bitstreams bs
@ -177,42 +176,9 @@ CONSTANT: dist-table
case case
] ]
[ produce ] keep call suffix concat ; [ produce ] keep call suffix concat ;
! [ produce ] keep dip swap suffix
:: paeth ( a b c -- p )
a b + c - { a b c } [ [ - abs ] keep 2array ] with map
sort-keys first second ;
:: png-unfilter-line ( prev curr filter -- curr' )
prev :> c
prev 3 tail-slice :> b
curr :> a
curr 3 tail-slice :> x
x length [0,b)
filter {
{ 0 [ drop ] }
{ 1 [ [| n | n x nth n a nth + 256 wrap n x set-nth ] each ] }
{ 2 [ [| n | n x nth n b nth + 256 wrap n x set-nth ] each ] }
{ 3 [ [| n | n x nth n a nth n b nth + 2/ + 256 wrap n x set-nth ] each ] }
{ 4 [ [| n | n x nth n a nth n b nth n c nth paeth + 256 wrap n x set-nth ] each ] }
} case
curr 3 tail ;
PRIVATE> PRIVATE>
: reverse-png-filter' ( lines -- byte-array )
[ first ] [ 1 tail ] [ map ] bi-curry@ bi nip
concat [ 128 + ] B{ } map-as ;
: reverse-png-filter ( lines -- byte-array )
dup first length 0 <array> prefix
[ { 0 0 } prepend ] map
2 clump [
first2 dup [ third ] [ [ 0 2 ] dip set-nth ] bi
png-unfilter-line
] map B{ } concat-as ;
: zlib-inflate ( bytes -- bytes ) : zlib-inflate ( bytes -- bytes )
bs:<lsb0-bit-reader> bs:<lsb0-bit-reader>
[ check-zlib-header ] [ inflate-loop ] bi [ check-zlib-header ] [ inflate-loop ] bi

View File

@ -1,6 +1,7 @@
! Copyright (C) 2009 Doug Coleman. ! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.syntax combinators system alien.libraries ; USING: alien alien.c-types alien.syntax combinators system
alien.libraries ;
IN: compression.zlib.ffi IN: compression.zlib.ffi
<< "zlib" { << "zlib" {

View File

@ -1,6 +1,7 @@
! Copyright (C) 2008, 2009 Slava Pestov. ! Copyright (C) 2008, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax kernel sequences fry ; USING: alien.c-types alien.syntax core-foundation kernel
sequences fry ;
IN: core-foundation.arrays IN: core-foundation.arrays
TYPEDEF: void* CFArrayRef TYPEDEF: void* CFArrayRef

View File

@ -1,6 +1,8 @@
! Copyright (C) 2009 Slava Pestov. ! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax kernel destructors core-foundation USING: alien.c-types alien.syntax kernel destructors
core-foundation core-foundation.dictionaries
core-foundation.strings
core-foundation.utilities ; core-foundation.utilities ;
IN: core-foundation.attributed-strings IN: core-foundation.attributed-strings
@ -16,4 +18,4 @@ FUNCTION: CFAttributedStringRef CFAttributedStringCreate (
[ [
[ >cf &CFRelease ] bi@ [ >cf &CFRelease ] bi@
[ kCFAllocatorDefault ] 2dip CFAttributedStringCreate [ kCFAllocatorDefault ] 2dip CFAttributedStringCreate
] with-destructors ; ] with-destructors ;

View File

@ -1,7 +1,7 @@
! 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: alien.syntax kernel sequences core-foundation USING: alien.c-types alien.syntax kernel sequences
core-foundation.urls ; core-foundation core-foundation.urls ;
IN: core-foundation.bundles IN: core-foundation.bundles
TYPEDEF: void* CFBundleRef TYPEDEF: void* CFBundleRef

View File

@ -1,6 +1,7 @@
! Copyright (C) 2008 Joe Groff. ! Copyright (C) 2008 Joe Groff.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.c-types alien.syntax kernel math sequences ; USING: alien.c-types alien.syntax core-foundation kernel math
sequences ;
IN: core-foundation.data IN: core-foundation.data
TYPEDEF: void* CFDataRef TYPEDEF: void* CFDataRef
@ -16,4 +17,4 @@ FUNCTION: CFDataRef CFDataCreate ( CFAllocatorRef allocator, uchar* bytes, CFInd
FUNCTION: CFTypeID CFGetTypeID ( CFTypeRef cf ) ; FUNCTION: CFTypeID CFGetTypeID ( CFTypeRef cf ) ;
: <CFData> ( byte-array -- alien ) : <CFData> ( byte-array -- alien )
[ f ] dip dup length CFDataCreate ; [ f ] dip dup length CFDataCreate ;

View File

@ -1,6 +1,6 @@
! Copyright (C) 2009 Slava Pestov. ! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax core-foundation kernel assocs USING: alien.c-types alien.syntax core-foundation kernel assocs
specialized-arrays math sequences accessors ; specialized-arrays math sequences accessors ;
IN: core-foundation.dictionaries IN: core-foundation.dictionaries
@ -31,4 +31,4 @@ FUNCTION: void* CFDictionaryGetValue (
[ [ underlying>> ] bi@ ] [ nip length ] 2bi [ [ underlying>> ] bi@ ] [ nip length ] 2bi
&: kCFTypeDictionaryKeyCallBacks &: kCFTypeDictionaryKeyCallBacks
&: kCFTypeDictionaryValueCallBacks &: kCFTypeDictionaryValueCallBacks
CFDictionaryCreate ; CFDictionaryCreate ;

View File

@ -1,11 +1,12 @@
! 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: alien.syntax kernel math.bitwise core-foundation ; USING: alien.c-types alien.syntax kernel math.bitwise core-foundation ;
IN: core-foundation.file-descriptors IN: core-foundation.file-descriptors
TYPEDEF: void* CFFileDescriptorRef TYPEDEF: void* CFFileDescriptorRef
TYPEDEF: int CFFileDescriptorNativeDescriptor TYPEDEF: int CFFileDescriptorNativeDescriptor
TYPEDEF: void* CFFileDescriptorCallBack TYPEDEF: void* CFFileDescriptorCallBack
TYPEDEF: void* CFFileDescriptorContext*
FUNCTION: CFFileDescriptorRef CFFileDescriptorCreate ( FUNCTION: CFFileDescriptorRef CFFileDescriptorCreate (
CFAllocatorRef allocator, CFAllocatorRef allocator,

View File

@ -4,8 +4,8 @@ USING: alien alien.c-types alien.strings alien.syntax kernel
math sequences namespaces make assocs init accessors math sequences namespaces make assocs init accessors
continuations combinators io.encodings.utf8 destructors locals continuations combinators io.encodings.utf8 destructors locals
arrays specialized-arrays classes.struct core-foundation arrays specialized-arrays classes.struct core-foundation
core-foundation.run-loop core-foundation.strings core-foundation.arrays core-foundation.run-loop
core-foundation.time ; core-foundation.strings core-foundation.time unix.types ;
IN: core-foundation.fsevents IN: core-foundation.fsevents
SPECIALIZED-ARRAY: void* SPECIALIZED-ARRAY: void*

View File

@ -1,8 +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: accessors alien alien.syntax kernel math namespaces USING: accessors alien alien.c-types alien.syntax kernel math
sequences destructors combinators threads heaps deques calendar namespaces sequences destructors combinators threads heaps
core-foundation core-foundation.strings deques calendar core-foundation core-foundation.strings
core-foundation.file-descriptors core-foundation.timers core-foundation.file-descriptors core-foundation.timers
core-foundation.time ; core-foundation.time ;
IN: core-foundation.run-loop IN: core-foundation.run-loop

View File

@ -1,7 +1,7 @@
! Copyright (C) 2008, 2009 Slava Pestov. ! Copyright (C) 2008, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax alien.strings io.encodings.string kernel USING: alien.c-types alien.syntax alien.strings io.encodings.string
sequences byte-arrays io.encodings.utf8 math core-foundation kernel sequences byte-arrays io.encodings.utf8 math core-foundation
core-foundation.arrays destructors parser fry alien words ; core-foundation.arrays destructors parser fry alien words ;
IN: core-foundation.strings IN: core-foundation.strings

View File

@ -1,6 +1,6 @@
! 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: calendar alien.syntax ; USING: calendar alien.c-types alien.syntax ;
IN: core-foundation.time IN: core-foundation.time
TYPEDEF: double CFTimeInterval TYPEDEF: double CFTimeInterval

View File

@ -1,7 +1,7 @@
! 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: alien.syntax system math kernel calendar core-foundation USING: alien.c-types alien.syntax system math kernel calendar
core-foundation.time ; core-foundation core-foundation.time ;
IN: core-foundation.timers IN: core-foundation.timers
TYPEDEF: void* CFRunLoopTimerRef TYPEDEF: void* CFRunLoopTimerRef

View File

@ -1,7 +1,7 @@
! 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: alien.syntax kernel core-foundation.strings USING: alien.c-types alien.syntax kernel core-foundation.strings
core-foundation ; core-foundation core-foundation.urls ;
IN: core-foundation.urls IN: core-foundation.urls
CONSTANT: kCFURLPOSIXPathStyle 0 CONSTANT: kCFURLPOSIXPathStyle 0

View File

@ -2,7 +2,8 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.c-types alien.destructors alien.syntax accessors USING: alien alien.c-types alien.destructors alien.syntax accessors
destructors fry kernel math math.bitwise sequences libc colors destructors fry kernel math math.bitwise sequences libc colors
images images.memory core-graphics.types core-foundation.utilities ; images images.memory core-graphics.types core-foundation.utilities
opengl.gl ;
IN: core-graphics IN: core-graphics
! CGImageAlphaInfo ! CGImageAlphaInfo

View File

@ -1,10 +1,12 @@
! Copyright (C) 2009 Slava Pestov. ! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors alien.c-types alien.syntax classes.struct kernel layouts USING: accessors alien.c-types alien.syntax classes.struct kernel layouts
math math.rectangles arrays ; math math.rectangles arrays literals ;
FROM: alien.c-types => float ;
IN: core-graphics.types IN: core-graphics.types
<< cell 4 = "float" "double" ? "CGFloat" typedef >> SYMBOL: CGFloat
<< cell 4 = float double ? \ CGFloat typedef >>
: <CGFloat> ( x -- alien ) : <CGFloat> ( x -- alien )
cell 4 = [ <float> ] [ <double> ] if ; inline cell 4 = [ <float> ] [ <double> ] if ; inline

View File

@ -1,8 +1,9 @@
! Copyright (C) 2009 Slava Pestov. ! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors alien.syntax assocs core-foundation USING: accessors alien.c-types alien.syntax assocs core-foundation
core-foundation.strings core-text.utilities destructors init core-foundation.dictionaries core-foundation.strings
kernel math memoize fonts combinators ; core-graphics.types core-text.utilities destructors init
kernel math memoize fonts combinators unix.types ;
IN: core-text.fonts IN: core-text.fonts
TYPEDEF: void* CTFontRef TYPEDEF: void* CTFontRef

View File

@ -1,7 +1,8 @@
! Copyright (C) 2007, 2008 Doug Coleman. ! Copyright (C) 2007, 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
! tested on debian linux with postgresql 8.1 ! tested on debian linux with postgresql 8.1
USING: alien alien.syntax combinators system alien.libraries ; USING: alien alien.c-types alien.syntax combinators system
alien.libraries ;
IN: db.postgresql.ffi IN: db.postgresql.ffi
<< "postgresql" { << "postgresql" {
@ -68,8 +69,8 @@ TYPEDEF: void* PQconninfoOption*
TYPEDEF: void* PGnotify* TYPEDEF: void* PGnotify*
TYPEDEF: void* PQArgBlock* TYPEDEF: void* PQArgBlock*
TYPEDEF: void* PQprintOpt* TYPEDEF: void* PQprintOpt*
TYPEDEF: void* FILE*
TYPEDEF: void* SSL* TYPEDEF: void* SSL*
TYPEDEF: void* FILE*
LIBRARY: postgresql LIBRARY: postgresql

View File

@ -1,6 +1,6 @@
! Copyright (C) 2008 Doug Coleman. ! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax system environment.unix ; USING: alien.c-types alien.syntax system environment.unix ;
IN: environment.unix.macosx IN: environment.unix.macosx
FUNCTION: void* _NSGetEnviron ( ) ; FUNCTION: void* _NSGetEnviron ( ) ;

View File

@ -1,8 +1,8 @@
! Copyright (C) 2008 Matthew Willis. ! Copyright (C) 2008 Matthew Willis.
! Copyright (C) 2009 Slava Pestov. ! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license ! See http://factorcode.org/license.txt for BSD license
USING: alien alien.syntax alien.destructors combinators system USING: alien alien.c-types alien.syntax alien.destructors
alien.libraries ; combinators system alien.libraries ;
IN: glib IN: glib
<< <<
@ -27,12 +27,10 @@ TYPEDEF: void* gpointer
TYPEDEF: int gint TYPEDEF: int gint
TYPEDEF: bool gboolean TYPEDEF: bool gboolean
FUNCTION: void FUNCTION: void g_free ( gpointer mem ) ;
g_free ( gpointer mem ) ;
LIBRARY: gobject LIBRARY: gobject
FUNCTION: void FUNCTION: void g_object_unref ( gpointer object ) ;
g_object_unref ( gpointer object ) ;
DESTRUCTOR: g_object_unref DESTRUCTOR: g_object_unref

View File

@ -1,6 +1,6 @@
! Copyright (C) 2009 Doug Coleman. ! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays byte-arrays combinators USING: accessors alien.c-types arrays byte-arrays combinators
compression.run-length fry grouping images images.loader io compression.run-length fry grouping images images.loader io
io.binary io.encodings.8-bit io.encodings.binary io.binary io.encodings.8-bit io.encodings.binary
io.encodings.string io.streams.limited kernel math math.bitwise io.encodings.string io.streams.limited kernel math math.bitwise

View File

@ -1,9 +1,9 @@
! Copyright (C) 2009 Doug Coleman. ! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors images io io.binary io.encodings.ascii USING: accessors arrays checksums checksums.crc32 combinators
io.encodings.binary io.encodings.string io.files io.files.info kernel compression.inflate fry grouping images images.loader io
sequences io.streams.limited fry combinators arrays math checksums io.binary io.encodings.ascii io.encodings.string kernel locals
checksums.crc32 compression.inflate grouping byte-arrays images.loader ; math math.bitwise math.ranges sequences sorting ;
IN: images.png IN: images.png
SINGLETON: png-image SINGLETON: png-image
@ -78,27 +78,52 @@ ERROR: bad-checksum ;
ERROR: unknown-color-type n ; ERROR: unknown-color-type n ;
ERROR: unimplemented-color-type image ; ERROR: unimplemented-color-type image ;
ERROR: unknown-filter-method image ;
: inflate-data ( loading-png -- bytes ) : inflate-data ( loading-png -- bytes )
find-compressed-bytes zlib-inflate ; find-compressed-bytes zlib-inflate ;
: png-group-width ( loading-png -- n ) : scale-bit-depth ( loading-png -- n ) bit-depth>> 8 / ; inline
dup color-type>> {
{ 2 [ [ bit-depth>> 8 / 3 * ] [ width>> ] bi * 1 + ] }
{ 6 [ [ bit-depth>> 8 / 4 * ] [ width>> ] bi * 1 + ] }
[ unknown-color-type ]
} case ;
: filter-png ( groups loading-png -- byte-array ) : png-bytes-per-pixel ( loading-png -- n )
filter-method>> { dup color-type>> {
{ filter-none [ reverse-png-filter ] } { 2 [ scale-bit-depth 3 * ] }
[ unknown-filter-method ] { 6 [ scale-bit-depth 4 * ] }
} case ; [ unknown-color-type ]
} case ; inline
: png-group-width ( loading-png -- n )
! 1 + is for the filter type, 1 byte preceding each line
[ png-bytes-per-pixel ] [ width>> ] bi * 1 + ;
:: paeth ( a b c -- p )
a b + c - { a b c } [ [ - abs ] keep 2array ] with map
sort-keys first second ;
:: png-unfilter-line ( prev curr filter -- curr' )
prev :> c
prev 3 tail-slice :> b
curr :> a
curr 3 tail-slice :> x
x length [0,b)
filter {
{ filter-none [ drop ] }
{ filter-sub [ [| n | n x nth n a nth + 256 wrap n x set-nth ] each ] }
{ filter-up [ [| n | n x nth n b nth + 256 wrap n x set-nth ] each ] }
{ filter-average [ [| n | n x nth n a nth n b nth + 2/ + 256 wrap n x set-nth ] each ] }
{ filter-paeth [ [| n | n x nth n a nth n b nth n c nth paeth + 256 wrap n x set-nth ] each ] }
} case
curr 3 tail ;
: reverse-png-filter ( lines -- byte-array )
dup first length 0 <array> prefix
[ { 0 0 } prepend ] map
2 clump [
first2 dup [ third ] [ [ 0 2 ] dip set-nth ] bi
png-unfilter-line
] map B{ } concat-as ;
: png-image-bytes ( loading-png -- byte-array ) : png-image-bytes ( loading-png -- byte-array )
[ [ inflate-data ] [ png-group-width ] bi group ] [ inflate-data ] [ png-group-width ] bi group reverse-png-filter ;
[ filter-png ] bi ;
: decode-greyscale ( loading-png -- loading-png ) : decode-greyscale ( loading-png -- loading-png )
unimplemented-color-type ; unimplemented-color-type ;

View File

@ -7,6 +7,7 @@ io.encodings.string io.encodings.utf8 io.files kernel math
math.bitwise math.order math.parser pack prettyprint sequences math.bitwise math.order math.parser pack prettyprint sequences
strings math.vectors specialized-arrays locals strings math.vectors specialized-arrays locals
images.loader ; images.loader ;
FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float
IN: images.tiff IN: images.tiff

View File

@ -1,6 +1,6 @@
! 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: system kernel unix math sequences USING: alien.c-types system kernel unix math sequences
io.backend.unix io.ports specialized-arrays accessors ; io.backend.unix io.ports specialized-arrays accessors ;
QUALIFIED: io.pipes QUALIFIED: io.pipes
SPECIALIZED-ARRAY: int SPECIALIZED-ARRAY: int

View File

@ -1,6 +1,7 @@
USING: iokit alien alien.syntax alien.c-types kernel USING: iokit alien alien.syntax alien.c-types kernel system
system core-foundation core-foundation.data core-foundation core-foundation.arrays core-foundation.data
core-foundation.dictionaries ; core-foundation.dictionaries core-foundation.run-loop
core-foundation.strings core-foundation.time ;
IN: iokit.hid IN: iokit.hid
CONSTANT: kIOHIDDeviceKey "IOHIDDevice" CONSTANT: kIOHIDDeviceKey "IOHIDDevice"

View File

@ -1,10 +1,11 @@
USING: accessors alien alien.c-types alien.data arrays USING: accessors alien alien.c-types alien.complex
byte-arrays combinators combinators.short-circuit fry alien.data arrays byte-arrays combinators
kernel locals macros math math.blas.ffi math.blas.vectors combinators.short-circuit fry kernel locals macros math
math.blas.vectors.private math.complex math.functions math.blas.ffi math.blas.vectors math.blas.vectors.private
math.order functors words sequences sequences.merged math.complex math.functions math.order functors words
sequences.private shuffle parser prettyprint.backend sequences sequences.merged sequences.private shuffle
prettyprint.custom ascii specialized-arrays ; parser prettyprint.backend prettyprint.custom ascii
specialized-arrays ;
FROM: alien.c-types => float ; FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float
SPECIALIZED-ARRAY: double SPECIALIZED-ARRAY: double

View File

@ -1,8 +1,8 @@
USING: accessors alien alien.c-types arrays ascii byte-arrays combinators USING: accessors alien alien.c-types alien.complex arrays ascii
combinators.short-circuit fry kernel math math.blas.ffi byte-arrays combinators combinators.short-circuit fry kernel
math.complex math.functions math.order sequences sequences.private math math.blas.ffi math.complex math.functions math.order
functors words locals parser prettyprint.backend prettyprint.custom sequences sequences.private functors words locals parser
specialized-arrays ; prettyprint.backend prettyprint.custom specialized-arrays ;
FROM: alien.c-types => float ; FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float
SPECIALIZED-ARRAY: double SPECIALIZED-ARRAY: double

View File

@ -1,7 +1,7 @@
USING: accessors alien.syntax arrays assocs biassocs USING: accessors alien.c-types alien.syntax arrays assocs
classes.struct combinators cpu.x86.features kernel literals biassocs classes.struct combinators cpu.x86.features kernel
math math.bitwise math.floats.env math.floats.env.private literals math math.bitwise math.floats.env
system ; math.floats.env.private system ;
IN: math.floats.env.x86 IN: math.floats.env.x86
STRUCT: sse-env STRUCT: sse-env

View File

@ -55,11 +55,33 @@ PRIVATE>
[ drop call ] [ drop call ]
} case ; inline } case ; inline
: fp-bitwise-unary ( x seq quot -- z )
swap element-type {
{ c:double [ [ double>bits ] dip call bits>double ] }
{ c:float [ [ float>bits ] dip call bits>float ] }
[ drop call ]
} case ; inline
PRIVATE> PRIVATE>
: vbitand ( u v -- w ) over '[ _ [ bitand ] fp-bitwise-op ] 2map ; : vbitand ( u v -- w ) over '[ _ [ bitand ] fp-bitwise-op ] 2map ;
: vbitor ( u v -- w ) over '[ _ [ bitor ] fp-bitwise-op ] 2map ; : vbitor ( u v -- w ) over '[ _ [ bitor ] fp-bitwise-op ] 2map ;
: vbitxor ( u v -- w ) over '[ _ [ bitxor ] fp-bitwise-op ] 2map ; : vbitxor ( u v -- w ) over '[ _ [ bitxor ] fp-bitwise-op ] 2map ;
: vbitnot ( u -- w ) dup '[ _ [ bitnot ] fp-bitwise-unary ] map ;
: vand ( u v -- w ) [ and ] 2map ;
: vor ( u v -- w ) [ or ] 2map ;
: vxor ( u v -- w ) [ xor ] 2map ;
: vnot ( u -- w ) [ not ] map ;
: v< ( u v -- w ) [ < ] { } 2map-as ;
: v<= ( u v -- w ) [ <= ] { } 2map-as ;
: v>= ( u v -- w ) [ >= ] { } 2map-as ;
: v> ( u v -- w ) [ > ] { } 2map-as ;
: vunordered? ( u v -- w ) [ unordered? ] { } 2map-as ;
: v= ( u v -- w ) [ = ] { } 2map-as ;
: v? ( ? u v -- w ) [ ? ] pick 3map-as ;
: vlshift ( u n -- w ) '[ _ shift ] map ; : vlshift ( u n -- w ) '[ _ shift ] map ;
: vrshift ( u n -- w ) neg '[ _ shift ] map ; : vrshift ( u n -- w ) neg '[ _ shift ] map ;

View File

@ -3,9 +3,9 @@
! This file is based on the gl.h that comes with xorg-x11 6.8.2 ! This file is based on the gl.h that comes with xorg-x11 6.8.2
USING: alien alien.syntax combinators kernel parser sequences USING: alien alien.c-types alien.syntax combinators kernel parser
system words opengl.gl.extensions ; sequences system words opengl.gl.extensions ;
FROM: alien.c-types => short ;
IN: opengl.gl IN: opengl.gl
TYPEDEF: uint GLenum TYPEDEF: uint GLenum

View File

@ -5,6 +5,7 @@ kernel opengl opengl.gl opengl.capabilities combinators images
images.tesselation grouping sequences math math.vectors images.tesselation grouping sequences math math.vectors
math.matrices generalizations fry arrays namespaces system math.matrices generalizations fry arrays namespaces system
locals literals specialized-arrays ; locals literals specialized-arrays ;
FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float
IN: opengl.textures IN: opengl.textures

View File

@ -103,15 +103,15 @@ FUNCTION: void* BIO_f_buffer ( ) ;
CONSTANT: EVP_MAX_MD_SIZE 64 CONSTANT: EVP_MAX_MD_SIZE 64
TYPEDEF: void* EVP_MD*
TYPEDEF: void* ENGINE*
STRUCT: EVP_MD_CTX STRUCT: EVP_MD_CTX
{ digest EVP_MD* } { digest EVP_MD* }
{ engine ENGINE* } { engine ENGINE* }
{ flags ulong } { flags ulong }
{ md_data void* } ; { md_data void* } ;
TYPEDEF: void* EVP_MD*
TYPEDEF: void* ENGINE*
! Initialize ciphers and digest tables ! Initialize ciphers and digest tables
FUNCTION: void OpenSSL_add_all_ciphers ( ) ; FUNCTION: void OpenSSL_add_all_ciphers ( ) ;

View File

@ -1,9 +1,9 @@
! Copyright (C) 2007 Elie CHAFTARI ! Copyright (C) 2007 Elie CHAFTARI
! Portions copyright (C) 2008 Slava Pestov ! Portions copyright (C) 2008 Slava Pestov
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.syntax combinators kernel system namespaces USING: alien alien.c-types alien.syntax combinators kernel
assocs parser lexer sequences words quotations math.bitwise system namespaces assocs parser lexer sequences words
alien.libraries ; quotations math.bitwise alien.libraries ;
IN: openssl.libssl IN: openssl.libssl
@ -95,6 +95,17 @@ TYPEDEF: void* SSL*
LIBRARY: libssl LIBRARY: libssl
! ===============================================
! x509.h
! ===============================================
TYPEDEF: void* X509_NAME*
TYPEDEF: void* X509*
FUNCTION: int X509_NAME_get_text_by_NID ( X509_NAME* name, int nid, void* buf, int len ) ;
FUNCTION: X509_NAME* X509_get_subject_name ( X509* a ) ;
! =============================================== ! ===============================================
! ssl.h ! ssl.h
! =============================================== ! ===============================================
@ -258,17 +269,6 @@ CONSTANT: SSL_SESS_CACHE_NO_INTERNAL_STORE HEX: 0200
: SSL_SESS_CACHE_NO_INTERNAL ( -- n ) : SSL_SESS_CACHE_NO_INTERNAL ( -- n )
{ SSL_SESS_CACHE_NO_INTERNAL_LOOKUP SSL_SESS_CACHE_NO_INTERNAL_STORE } flags ; inline { SSL_SESS_CACHE_NO_INTERNAL_LOOKUP SSL_SESS_CACHE_NO_INTERNAL_STORE } flags ; inline
! ===============================================
! x509.h
! ===============================================
TYPEDEF: void* X509_NAME*
TYPEDEF: void* X509*
FUNCTION: int X509_NAME_get_text_by_NID ( X509_NAME* name, int nid, void* buf, int len ) ;
FUNCTION: X509_NAME* X509_get_subject_name ( X509* a ) ;
! =============================================== ! ===============================================
! x509_vfy.h ! x509_vfy.h
! =============================================== ! ===============================================

View File

@ -3,8 +3,12 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
! !
! pangocairo bindings, from pango/pangocairo.h ! pangocairo bindings, from pango/pangocairo.h
USING: alien alien.syntax combinators system cairo.ffi USING: arrays sequences alien alien.c-types alien.destructors
alien.libraries ; alien.libraries alien.syntax math math.functions math.vectors
destructors combinators colors fonts accessors assocs namespaces
kernel pango pango.fonts pango.layouts glib unicode.data images
cache init system math.rectangles fry memoize io.encodings.utf8
classes.struct cairo cairo.ffi ;
IN: pango.cairo IN: pango.cairo
<< { << {
@ -15,6 +19,9 @@ IN: pango.cairo
LIBRARY: pangocairo LIBRARY: pangocairo
TYPEDEF: void* PangoCairoFontMap*
TYPEDEF: void* PangoCairoFont*
FUNCTION: PangoFontMap* FUNCTION: PangoFontMap*
pango_cairo_font_map_new ( ) ; pango_cairo_font_map_new ( ) ;
@ -87,3 +94,150 @@ pango_cairo_layout_path ( cairo_t* cr, PangoLayout* layout ) ;
FUNCTION: void FUNCTION: void
pango_cairo_error_underline_path ( cairo_t* cr, double x, double y, double width, double height ) ; pango_cairo_error_underline_path ( cairo_t* cr, double x, double y, double width, double height ) ;
TUPLE: layout < disposable font string selection layout metrics ink-rect logical-rect image ;
SYMBOL: dpi
72 dpi set-global
: set-layout-font ( font layout -- )
swap cache-font-description pango_layout_set_font_description ;
: set-layout-text ( str layout -- )
#! Replace nulls with something else since Pango uses null-terminated
#! strings
swap -1 pango_layout_set_text ;
: layout-extents ( layout -- ink-rect logical-rect )
PangoRectangle <struct>
PangoRectangle <struct>
[ pango_layout_get_extents ] 2keep
[ PangoRectangle>rect ] bi@ ;
: layout-baseline ( layout -- baseline )
pango_layout_get_iter &pango_layout_iter_free
pango_layout_iter_get_baseline
pango>float ;
: set-foreground ( cr font -- )
foreground>> set-source-color ;
: fill-background ( cr font dim -- )
[ background>> set-source-color ]
[ [ { 0 0 } ] dip <rect> fill-rect ] bi-curry* bi ;
: rect-translate-x ( rect x -- rect' )
'[ _ 0 2array v- ] change-loc ;
: first-line ( layout -- line )
layout>> 0 pango_layout_get_line_readonly ;
: line-offset>x ( layout n -- x )
#! n is an index into the UTF8 encoding of the text
[ drop first-line ] [ swap string>> >utf8-index ] 2bi
0 0 <int> [ pango_layout_line_index_to_x ] keep
*int pango>float ;
: x>line-offset ( layout x -- n )
#! n is an index into the UTF8 encoding of the text
[
[ first-line ] dip
float>pango 0 <int> 0 <int>
[ pango_layout_line_x_to_index drop ] 2keep
[ *int ] bi@ swap
] [ drop string>> ] 2bi utf8-index> + ;
: selection-start/end ( selection -- start end )
selection>> [ start>> ] [ end>> ] bi ;
: selection-rect ( layout -- rect )
[ ink-rect>> dim>> ] [ ] [ selection-start/end ] tri [ line-offset>x ] bi-curry@ bi
[ drop nip 0 2array ] [ swap - swap second 2array ] 3bi <rect> ;
: fill-selection-background ( cr layout -- )
dup selection>> [
[ selection>> color>> set-source-color ]
[
[ selection-rect ] [ ink-rect>> loc>> first ] bi
rect-translate-x
fill-rect
] 2bi
] [ 2drop ] if ;
: text-position ( layout -- loc )
[ logical-rect>> ] [ ink-rect>> ] bi [ loc>> ] bi@ v- ;
: set-text-position ( cr loc -- )
first2 cairo_move_to ;
: draw-layout ( layout -- image )
dup ink-rect>> dim>> [ >fixnum ] map [
swap {
[ layout>> pango_cairo_update_layout ]
[ [ font>> ] [ ink-rect>> dim>> ] bi fill-background ]
[ fill-selection-background ]
[ text-position set-text-position ]
[ font>> set-foreground ]
[ layout>> pango_cairo_show_layout ]
} 2cleave
] make-bitmap-image ;
: escape-nulls ( str -- str' )
{ { 0 CHAR: zero-width-no-break-space } } substitute ;
: unpack-selection ( layout string/selection -- layout )
dup selection? [
[ string>> escape-nulls >>string ] [ >>selection ] bi
] [ escape-nulls >>string ] if ; inline
: set-layout-resolution ( layout -- )
pango_layout_get_context dpi get pango_cairo_context_set_resolution ;
: <PangoLayout> ( text font -- layout )
dummy-cairo pango_cairo_create_layout |g_object_unref
[ set-layout-resolution ] keep
[ set-layout-font ] keep
[ set-layout-text ] keep ;
: glyph-height ( font string -- y )
swap <PangoLayout> &g_object_unref layout-extents drop dim>> second ;
MEMO: missing-font-metrics ( font -- metrics )
#! Pango doesn't provide x-height and cap-height but Core Text does, so we
#! simulate them on Pango.
[
[ metrics new ] dip
[ "x" glyph-height >>x-height ]
[ "Y" glyph-height >>cap-height ] bi
] with-destructors ;
: layout-metrics ( layout -- metrics )
dup font>> missing-font-metrics clone
swap
[ layout>> layout-baseline >>ascent ]
[ logical-rect>> dim>> [ first >>width ] [ second >>height ] bi ] bi
dup [ height>> ] [ ascent>> ] bi - >>descent ;
: <layout> ( font string -- line )
[
layout new-disposable
swap unpack-selection
swap >>font
dup [ string>> ] [ font>> ] bi <PangoLayout> >>layout
dup layout>> layout-extents [ >>ink-rect ] [ >>logical-rect ] bi*
dup layout-metrics >>metrics
dup draw-layout >>image
] with-destructors ;
M: layout dispose* layout>> g_object_unref ;
SYMBOL: cached-layouts
: cached-layout ( font string -- layout )
cached-layouts get [ <layout> ] 2cache ;
: cached-line ( font string -- line )
cached-layout layout>> first-line ;
[ <cache-assoc> cached-layouts set-global ] "pango.cairo" add-init-hook

View File

@ -15,6 +15,15 @@ PANGO_STYLE_OBLIQUE
PANGO_STYLE_ITALIC ; PANGO_STYLE_ITALIC ;
TYPEDEF: int PangoWeight TYPEDEF: int PangoWeight
TYPEDEF: void* PangoFont*
TYPEDEF: void* PangoFontFamily*
TYPEDEF: void* PangoFontFace*
TYPEDEF: void* PangoFontMap*
TYPEDEF: void* PangoFontMetrics*
TYPEDEF: void* PangoFontDescription*
TYPEDEF: void* PangoGlyphString*
TYPEDEF: void* PangoLanguage*
CONSTANT: PANGO_WEIGHT_THIN 100 CONSTANT: PANGO_WEIGHT_THIN 100
CONSTANT: PANGO_WEIGHT_ULTRALIGHT 200 CONSTANT: PANGO_WEIGHT_ULTRALIGHT 200
CONSTANT: PANGO_WEIGHT_LIGHT 300 CONSTANT: PANGO_WEIGHT_LIGHT 300
@ -102,4 +111,4 @@ MEMO: (cache-font-description) ( font -- description )
: cache-font-description ( font -- description ) : cache-font-description ( font -- description )
strip-font-colors (cache-font-description) ; strip-font-colors (cache-font-description) ;
[ \ (cache-font-description) reset-memoized ] "pango.fonts" add-init-hook [ \ (cache-font-description) reset-memoized ] "pango.fonts" add-init-hook

View File

@ -4,12 +4,16 @@
USING: arrays sequences alien alien.c-types alien.destructors USING: arrays sequences alien alien.c-types alien.destructors
alien.syntax math math.functions math.vectors destructors combinators alien.syntax math math.functions math.vectors destructors combinators
colors fonts accessors assocs namespaces kernel pango pango.fonts colors fonts accessors assocs namespaces kernel pango pango.fonts
pango.cairo cairo cairo.ffi glib unicode.data images cache init glib unicode.data images cache init
math.rectangles fry memoize io.encodings.utf8 classes.struct ; math.rectangles fry memoize io.encodings.utf8 classes.struct ;
IN: pango.layouts IN: pango.layouts
LIBRARY: pango LIBRARY: pango
TYPEDEF: void* PangoLayout*
TYPEDEF: void* PangoLayoutIter*
TYPEDEF: void* PangoLayoutLine*
FUNCTION: PangoLayout* FUNCTION: PangoLayout*
pango_layout_new ( PangoContext* context ) ; pango_layout_new ( PangoContext* context ) ;
@ -60,149 +64,3 @@ pango_layout_iter_free ( PangoLayoutIter* iter ) ;
DESTRUCTOR: pango_layout_iter_free DESTRUCTOR: pango_layout_iter_free
TUPLE: layout < disposable font string selection layout metrics ink-rect logical-rect image ;
SYMBOL: dpi
72 dpi set-global
: set-layout-font ( font layout -- )
swap cache-font-description pango_layout_set_font_description ;
: set-layout-text ( str layout -- )
#! Replace nulls with something else since Pango uses null-terminated
#! strings
swap -1 pango_layout_set_text ;
: set-layout-resolution ( layout -- )
pango_layout_get_context dpi get pango_cairo_context_set_resolution ;
: <PangoLayout> ( text font -- layout )
dummy-cairo pango_cairo_create_layout |g_object_unref
[ set-layout-resolution ] keep
[ set-layout-font ] keep
[ set-layout-text ] keep ;
: layout-extents ( layout -- ink-rect logical-rect )
PangoRectangle <struct>
PangoRectangle <struct>
[ pango_layout_get_extents ] 2keep
[ PangoRectangle>rect ] bi@ ;
: glyph-height ( font string -- y )
swap <PangoLayout> &g_object_unref layout-extents drop dim>> second ;
MEMO: missing-font-metrics ( font -- metrics )
#! Pango doesn't provide x-height and cap-height but Core Text does, so we
#! simulate them on Pango.
[
[ metrics new ] dip
[ "x" glyph-height >>x-height ]
[ "Y" glyph-height >>cap-height ] bi
] with-destructors ;
: layout-baseline ( layout -- baseline )
pango_layout_get_iter &pango_layout_iter_free
pango_layout_iter_get_baseline
pango>float ;
: set-foreground ( cr font -- )
foreground>> set-source-color ;
: fill-background ( cr font dim -- )
[ background>> set-source-color ]
[ [ { 0 0 } ] dip <rect> fill-rect ] bi-curry* bi ;
: rect-translate-x ( rect x -- rect' )
'[ _ 0 2array v- ] change-loc ;
: first-line ( layout -- line )
layout>> 0 pango_layout_get_line_readonly ;
: line-offset>x ( layout n -- x )
#! n is an index into the UTF8 encoding of the text
[ drop first-line ] [ swap string>> >utf8-index ] 2bi
0 0 <int> [ pango_layout_line_index_to_x ] keep
*int pango>float ;
: x>line-offset ( layout x -- n )
#! n is an index into the UTF8 encoding of the text
[
[ first-line ] dip
float>pango 0 <int> 0 <int>
[ pango_layout_line_x_to_index drop ] 2keep
[ *int ] bi@ swap
] [ drop string>> ] 2bi utf8-index> + ;
: selection-start/end ( selection -- start end )
selection>> [ start>> ] [ end>> ] bi ;
: selection-rect ( layout -- rect )
[ ink-rect>> dim>> ] [ ] [ selection-start/end ] tri [ line-offset>x ] bi-curry@ bi
[ drop nip 0 2array ] [ swap - swap second 2array ] 3bi <rect> ;
: fill-selection-background ( cr layout -- )
dup selection>> [
[ selection>> color>> set-source-color ]
[
[ selection-rect ] [ ink-rect>> loc>> first ] bi
rect-translate-x
fill-rect
] 2bi
] [ 2drop ] if ;
: text-position ( layout -- loc )
[ logical-rect>> ] [ ink-rect>> ] bi [ loc>> ] bi@ v- ;
: set-text-position ( cr loc -- )
first2 cairo_move_to ;
: layout-metrics ( layout -- metrics )
dup font>> missing-font-metrics clone
swap
[ layout>> layout-baseline >>ascent ]
[ logical-rect>> dim>> [ first >>width ] [ second >>height ] bi ] bi
dup [ height>> ] [ ascent>> ] bi - >>descent ;
: draw-layout ( layout -- image )
dup ink-rect>> dim>> [ >fixnum ] map [
swap {
[ layout>> pango_cairo_update_layout ]
[ [ font>> ] [ ink-rect>> dim>> ] bi fill-background ]
[ fill-selection-background ]
[ text-position set-text-position ]
[ font>> set-foreground ]
[ layout>> pango_cairo_show_layout ]
} 2cleave
] make-bitmap-image ;
: escape-nulls ( str -- str' )
{ { 0 CHAR: zero-width-no-break-space } } substitute ;
: unpack-selection ( layout string/selection -- layout )
dup selection? [
[ string>> escape-nulls >>string ] [ >>selection ] bi
] [ escape-nulls >>string ] if ; inline
: <layout> ( font string -- line )
[
layout new-disposable
swap unpack-selection
swap >>font
dup [ string>> ] [ font>> ] bi <PangoLayout> >>layout
dup layout>> layout-extents [ >>ink-rect ] [ >>logical-rect ] bi*
dup layout-metrics >>metrics
dup draw-layout >>image
] with-destructors ;
M: layout dispose* layout>> g_object_unref ;
SYMBOL: cached-layouts
: cached-layout ( font string -- layout )
cached-layouts get [ <layout> ] 2cache ;
: cached-line ( font string -- line )
cached-layout layout>> first-line ;
[ <cache-assoc> cached-layouts set-global ] "pango.layouts" add-init-hook

View File

@ -23,8 +23,9 @@ CONSTANT: PANGO_SCALE 1024
: pango>float ( n -- x ) PANGO_SCALE /f ; inline : pango>float ( n -- x ) PANGO_SCALE /f ; inline
: float>pango ( x -- n ) PANGO_SCALE * >integer ; inline : float>pango ( x -- n ) PANGO_SCALE * >integer ; inline
FUNCTION: PangoContext* TYPEDEF: void* PangoContext*
pango_context_new ( ) ;
FUNCTION: PangoContext* pango_context_new ( ) ;
STRUCT: PangoRectangle STRUCT: PangoRectangle
{ x int } { x int }

View File

@ -2,9 +2,9 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
! mersenne twister based on ! mersenne twister based on
! http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/CODES/mt19937ar.c ! http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/CODES/mt19937ar.c
USING: kernel math namespaces sequences sequences.private system USING: alien.c-types kernel math namespaces sequences
init accessors math.ranges random math.bitwise combinators sequences.private system init accessors math.ranges random
specialized-arrays fry ; math.bitwise combinators specialized-arrays fry ;
SPECIALIZED-ARRAY: uint SPECIALIZED-ARRAY: uint
IN: random.mersenne-twister IN: random.mersenne-twister

View File

@ -31,7 +31,7 @@ STRUCT: ud
{ inp_hook void* } { inp_hook void* }
{ inp_curr uchar } { inp_curr uchar }
{ inp_fill uchar } { inp_fill uchar }
{ inp_file FILE* } { inp_file void* }
{ inp_ctr uchar } { inp_ctr uchar }
{ inp_buff uchar* } { inp_buff uchar* }
{ inp_buff_end uchar* } { inp_buff_end uchar* }
@ -68,7 +68,7 @@ STRUCT: ud
{ c3 uchar } { c3 uchar }
{ inp_cache uchar[256] } { inp_cache uchar[256] }
{ inp_sess uchar[64] } { inp_sess uchar[64] }
{ itab_entry ud_itab_entry* } ; { itab_entry void* } ;
FUNCTION: void ud_translate_intel ( ud* u ) ; FUNCTION: void ud_translate_intel ( ud* u ) ;
FUNCTION: void ud_translate_att ( ud* u ) ; FUNCTION: void ud_translate_att ( ud* u ) ;

View File

@ -3,6 +3,7 @@
USING: kernel accessors math math.vectors locals sequences USING: kernel accessors math math.vectors locals sequences
specialized-arrays colors arrays combinators specialized-arrays colors arrays combinators
opengl opengl.gl ui.pens ui.pens.caching ; opengl opengl.gl ui.pens ui.pens.caching ;
FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float
IN: ui.pens.gradient IN: ui.pens.gradient

View File

@ -1,8 +1,8 @@
! Copyright (C) 2009 Slava Pestov. ! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors colors help.markup help.syntax kernel opengl USING: accessors alien.c-types colors help.markup help.syntax
opengl.gl sequences math.vectors ui.gadgets ui.pens kernel opengl opengl.gl sequences math.vectors ui.gadgets
specialized-arrays ; ui.pens specialized-arrays ;
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float
IN: ui.pens.polygon IN: ui.pens.polygon
@ -36,4 +36,4 @@ M: polygon draw-interior
: <polygon-gadget> ( color points -- gadget ) : <polygon-gadget> ( color points -- gadget )
[ <polygon> ] [ { 0 0 } [ vmax ] reduce ] bi [ <polygon> ] [ { 0 0 } [ vmax ] reduce ] bi
[ <gadget> ] 2dip [ >>interior ] [ >>dim ] bi* ; [ <gadget> ] 2dip [ >>interior ] [ >>dim ] bi* ;

View File

@ -1,6 +1,6 @@
USING: accessors assocs classes destructors functors kernel USING: alien.c-types accessors assocs classes destructors
lexer math parser sequences specialized-arrays ui.backend functors kernel lexer math parser sequences specialized-arrays
words ; ui.backend words ;
SPECIALIZED-ARRAY: int SPECIALIZED-ARRAY: int
IN: ui.pixel-formats IN: ui.pixel-formats

View File

@ -1,7 +1,7 @@
! Copyright (C) 2005, 2006 Slava Pestov. ! Copyright (C) 2005, 2006 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax classes.struct combinators system USING: alien.c-types alien.syntax classes.struct combinators
vocabs.loader ; system unix.types vocabs.loader ;
IN: unix IN: unix
CONSTANT: MAXPATHLEN 1024 CONSTANT: MAXPATHLEN 1024

View File

@ -1,9 +1,9 @@
! Copyright (C) 2008 Doug Coleman. ! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax ; USING: alien.c-types alien.syntax unix.statfs.macosx ;
IN: unix.getfsstat.macosx IN: unix.getfsstat.macosx
CONSTANT: MNT_WAIT 1 ! synchronously wait for I/O to complete CONSTANT: MNT_WAIT 1 ! synchronously wait for I/O to complete
CONSTANT: MNT_NOWAIT 2 ! start all I/O, but do not wait for it CONSTANT: MNT_NOWAIT 2 ! start all I/O, but do not wait for it
FUNCTION: int getfsstat64 ( statfs* buf, int bufsize, int flags ) ; FUNCTION: int getfsstat64 ( statfs64* buf, int bufsize, int flags ) ;

View File

@ -1,6 +1,6 @@
! 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: alien.syntax system sequences vocabs.loader words USING: alien.c-types alien.syntax system sequences vocabs.loader words
accessors ; accessors ;
IN: unix.kqueue IN: unix.kqueue

View File

@ -1,4 +1,4 @@
USING: alien.syntax classes.struct ; USING: alien.c-types alien.syntax classes.struct unix.time ;
IN: unix.kqueue IN: unix.kqueue
STRUCT: kevent STRUCT: kevent

View File

@ -1,6 +1,6 @@
USING: kernel alien.c-types alien.data alien.strings sequences USING: kernel alien.c-types alien.data alien.strings sequences
math alien.syntax unix namespaces continuations threads assocs math alien.syntax unix namespaces continuations threads assocs
io.backend.unix io.encodings.utf8 unix.utilities fry ; io.backend.unix io.encodings.utf8 unix.types unix.utilities fry ;
IN: unix.process IN: unix.process
! Low-level Unix process launching utilities. These are used ! Low-level Unix process launching utilities. These are used

View File

@ -1,8 +1,8 @@
USING: alien.c-types arrays accessors combinators classes.struct USING: alien.c-types arrays accessors combinators classes.struct
alien.syntax ; alien.syntax unix.time unix.types ;
IN: unix.stat IN: unix.stat
! Mac OS X ppc ! Mac OS X
! stat64 structure ! stat64 structure
STRUCT: stat STRUCT: stat

View File

@ -1,6 +1,6 @@
! Copyright (C) 2008 Doug Coleman. ! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax classes.struct ; USING: alien.c-types alien.syntax classes.struct unix.types ;
IN: unix.statvfs.macosx IN: unix.statvfs.macosx
STRUCT: statvfs STRUCT: statvfs

View File

@ -1,4 +1,4 @@
USING: kernel system alien.syntax combinators vocabs.loader ; USING: kernel system alien.c-types alien.syntax combinators vocabs.loader ;
IN: unix.types IN: unix.types
TYPEDEF: char int8_t TYPEDEF: char int8_t
@ -37,6 +37,12 @@ TYPEDEF: fsfilcnt_t __fsfilcnt_t
TYPEDEF: __uint64_t rlim_t TYPEDEF: __uint64_t rlim_t
TYPEDEF: uint32_t id_t TYPEDEF: uint32_t id_t
TYPEDEF: void* DIR*
TYPEDEF: void* FILE*
TYPEDEF: void* rlimit*
TYPEDEF: void* rusage*
TYPEDEF: void* sockaddr*
os { os {
{ linux [ "unix.types.linux" require ] } { linux [ "unix.types.linux" require ] }
{ macosx [ "unix.types.macosx" require ] } { macosx [ "unix.types.macosx" require ] }
@ -45,3 +51,4 @@ os {
{ netbsd [ "unix.types.netbsd" require ] } { netbsd [ "unix.types.netbsd" require ] }
{ winnt [ ] } { winnt [ ] }
} case } case

View File

@ -5,7 +5,7 @@ USING: alien alien.c-types alien.syntax kernel libc
sequences continuations byte-arrays strings math namespaces sequences continuations byte-arrays strings math namespaces
system combinators vocabs.loader accessors system combinators vocabs.loader accessors
stack-checker macros locals generalizations unix.types stack-checker macros locals generalizations unix.types
io vocabs classes.struct ; io vocabs classes.struct unix.time ;
IN: unix IN: unix
CONSTANT: PROT_NONE 0 CONSTANT: PROT_NONE 0
@ -35,12 +35,6 @@ CONSTANT: DT_LNK 10
CONSTANT: DT_SOCK 12 CONSTANT: DT_SOCK 12
CONSTANT: DT_WHT 14 CONSTANT: DT_WHT 14
STRUCT: group
{ gr_name char* }
{ gr_passwd char* }
{ gr_gid int }
{ gr_mem char** } ;
LIBRARY: libc LIBRARY: libc
FUNCTION: char* strerror ( int errno ) ; FUNCTION: char* strerror ( int errno ) ;
@ -68,6 +62,26 @@ MACRO:: unix-system-call ( quot -- )
] ]
] ; ] ;
<<
{
{ [ os linux? ] [ "unix.linux" require ] }
{ [ os bsd? ] [ "unix.bsd" require ] }
{ [ os solaris? ] [ "unix.solaris" require ] }
} cond
"debugger" vocab [
"unix.debugger" require
] when
>>
STRUCT: group
{ gr_name char* }
{ gr_passwd char* }
{ gr_gid int }
{ gr_mem char** } ;
FUNCTION: int accept ( int s, void* sockaddr, socklen_t* socklen ) ; FUNCTION: int accept ( int s, void* sockaddr, socklen_t* socklen ) ;
FUNCTION: int bind ( int s, void* name, socklen_t namelen ) ; FUNCTION: int bind ( int s, void* name, socklen_t namelen ) ;
FUNCTION: int chdir ( char* path ) ; FUNCTION: int chdir ( char* path ) ;
@ -86,7 +100,7 @@ FUNCTION: int dup2 ( int oldd, int newd ) ;
! FUNCTION: int dup ( int oldd ) ; ! FUNCTION: int dup ( int oldd ) ;
: _exit ( status -- * ) : _exit ( status -- * )
#! We throw to give this a terminating stack effect. #! We throw to give this a terminating stack effect.
"int" f "_exit" { "int" } alien-invoke "Exit failed" throw ; int f "_exit" { int } alien-invoke "Exit failed" throw ;
FUNCTION: void endpwent ( ) ; FUNCTION: void endpwent ( ) ;
FUNCTION: int fchdir ( int fd ) ; FUNCTION: int fchdir ( int fd ) ;
FUNCTION: int fchown ( int fd, uid_t owner, gid_t group ) ; FUNCTION: int fchown ( int fd, uid_t owner, gid_t group ) ;
@ -207,12 +221,3 @@ FUNCTION: int utimes ( char* path, timeval[2] times ) ;
FUNCTION: ssize_t write ( int fd, void* buf, size_t nbytes ) ; FUNCTION: ssize_t write ( int fd, void* buf, size_t nbytes ) ;
{
{ [ os linux? ] [ "unix.linux" require ] }
{ [ os bsd? ] [ "unix.bsd" require ] }
{ [ os solaris? ] [ "unix.solaris" require ] }
} cond
"debugger" vocab [
"unix.debugger" require
] when

View File

@ -1,9 +1,10 @@
! Copyright (C) 2009 Phil Dawes. ! Copyright (C) 2009 Phil Dawes.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: classes.struct alien.syntax ; USING: classes.struct alien.c-types alien.syntax ;
IN: vm IN: vm
TYPEDEF: void* cell TYPEDEF: void* cell
TYPEDEF: void* context*
STRUCT: zone STRUCT: zone
{ start cell } { start cell }

View File

@ -3,7 +3,7 @@
! Based on X.h ! Based on X.h
USING: alien alien.syntax math x11.xlib ; USING: alien alien.c-types alien.syntax math x11.xlib ;
IN: x11.constants IN: x11.constants
TYPEDEF: ulong Mask TYPEDEF: ulong Mask
@ -406,4 +406,4 @@ CONSTANT: MSBFirst 1
! * EXTENDED WINDOW MANAGER HINTS ! * EXTENDED WINDOW MANAGER HINTS
! ***************************************************************** ! *****************************************************************
C-ENUM: _NET_WM_STATE_REMOVE _NET_WM_STATE_ADD _NET_WM_STATE_TOGGLE ; C-ENUM: _NET_WM_STATE_REMOVE _NET_WM_STATE_ADD _NET_WM_STATE_TOGGLE ;

View File

@ -410,10 +410,6 @@ STRUCT: XCharStruct
{ descent short } { descent short }
{ attributes ushort } ; { attributes ushort } ;
X-FUNCTION: Font XLoadFont ( Display* display, char* name ) ;
X-FUNCTION: XFontStruct* XQueryFont ( Display* display, XID font_ID ) ;
X-FUNCTION: XFontStruct* XLoadQueryFont ( Display* display, char* name ) ;
STRUCT: XFontStruct STRUCT: XFontStruct
{ ext_data XExtData* } { ext_data XExtData* }
{ fid Font } { fid Font }
@ -432,6 +428,10 @@ STRUCT: XFontStruct
{ ascent int } { ascent int }
{ descent int } ; { descent int } ;
X-FUNCTION: Font XLoadFont ( Display* display, char* name ) ;
X-FUNCTION: XFontStruct* XQueryFont ( Display* display, XID font_ID ) ;
X-FUNCTION: XFontStruct* XLoadQueryFont ( Display* display, char* name ) ;
X-FUNCTION: int XTextWidth ( XFontStruct* font_struct, char* string, int count ) ; X-FUNCTION: int XTextWidth ( XFontStruct* font_struct, char* string, int count ) ;
! 8.6 - Drawing Text ! 8.6 - Drawing Text

View File

@ -1,4 +1,5 @@
USING: sequences kernel math specialized-arrays fry ; USING: alien.c-types sequences kernel math specialized-arrays
fry ;
SPECIALIZED-ARRAY: int SPECIALIZED-ARRAY: int
IN: benchmark.dawes IN: benchmark.dawes

View File

@ -1,4 +1,4 @@
USING: make math sequences splitting grouping USING: alien.c-types make math sequences splitting grouping
kernel columns specialized-arrays bit-arrays ; kernel columns specialized-arrays bit-arrays ;
SPECIALIZED-ARRAY: double SPECIALIZED-ARRAY: double
IN: benchmark.dispatch2 IN: benchmark.dispatch2
@ -29,4 +29,4 @@ IN: benchmark.dispatch2
1000000 sequences 1000000 sequences
[ [ 0 swap nth don't-flush-me ] each ] curry times ; [ [ 0 swap nth don't-flush-me ] each ] curry times ;
MAIN: dispatch-test MAIN: dispatch-test

View File

@ -1,4 +1,4 @@
USING: sequences math mirrors splitting grouping USING: alien.c-types sequences math mirrors splitting grouping
kernel make assocs alien.syntax columns kernel make assocs alien.syntax columns
specialized-arrays bit-arrays ; specialized-arrays bit-arrays ;
SPECIALIZED-ARRAY: double SPECIALIZED-ARRAY: double

View File

@ -1,7 +1,7 @@
! 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: alien.c-types math kernel io io.files locals multiline
sequences.private benchmark.reverse-complement hints assocs sequences sequences.private benchmark.reverse-complement
io.encodings.ascii byte-arrays specialized-arrays ; hints io.encodings.ascii byte-arrays specialized-arrays ;
SPECIALIZED-ARRAY: double SPECIALIZED-ARRAY: double
IN: benchmark.fasta IN: benchmark.fasta

View File

@ -1,8 +1,8 @@
! Copyright (C) 2008, 2009 Slava Pestov. ! Copyright (C) 2008, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors fry kernel locals math math.constants USING: accessors alien.c-types fry kernel locals math
math.functions math.vectors math.vectors.simd prettyprint math.constants math.functions math.vectors math.vectors.simd
combinators.smart sequences hints classes.struct prettyprint combinators.smart sequences hints classes.struct
specialized-arrays ; specialized-arrays ;
SIMD: double SIMD: double
IN: benchmark.nbody-simd IN: benchmark.nbody-simd

View File

@ -1,8 +1,9 @@
! Copyright (C) 2008, 2009 Slava Pestov. ! Copyright (C) 2008, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors specialized-arrays fry kernel locals math USING: accessors specialized-arrays fry kernel
math.constants math.functions math.vectors prettyprint locals math math.constants math.functions math.vectors
combinators.smart sequences hints arrays ; prettyprint combinators.smart sequences hints arrays ;
FROM: alien.c-types => double ;
SPECIALIZED-ARRAY: double SPECIALIZED-ARRAY: double
IN: benchmark.nbody IN: benchmark.nbody

View File

@ -1,10 +1,10 @@
! Factor port of the raytracer benchmark from ! Factor port of the raytracer benchmark from
! http://www.ffconsultancy.com/free/ray_tracer/languages.html ! http://www.ffconsultancy.com/free/ray_tracer/languages.html
USING: arrays accessors specialized-arrays io
USING: arrays accessors specialized-arrays io io.files io.files io.files.temp io.encodings.binary kernel math
io.files.temp io.encodings.binary kernel math math.constants math.constants math.functions math.vectors math.parser make
math.functions math.vectors math.parser make sequences sequences sequences.private words hints ;
sequences.private words hints ; FROM: alien.c-types => double ;
SPECIALIZED-ARRAY: double SPECIALIZED-ARRAY: double
IN: benchmark.raytracer IN: benchmark.raytracer

View File

@ -1,7 +1,8 @@
! Factor port of ! Factor port of
! http://shootout.alioth.debian.org/gp4/benchmark.php?test=spectralnorm&lang=all ! http://shootout.alioth.debian.org/gp4/benchmark.php?test=spectralnorm&lang=all
USING: specialized-arrays kernel math math.functions USING: alien.c-types specialized-arrays kernel math
math.vectors sequences prettyprint words hints locals ; math.functions math.vectors sequences prettyprint words hints
locals ;
SPECIALIZED-ARRAY: double SPECIALIZED-ARRAY: double
IN: benchmark.spectral-norm IN: benchmark.spectral-norm

View File

@ -3,6 +3,7 @@
USING: accessors classes.struct combinators.smart fry kernel USING: accessors classes.struct combinators.smart fry kernel
math math.functions math.order math.parser sequences math math.functions math.order math.parser sequences
specialized-arrays io ; specialized-arrays io ;
FROM: alien.c-types => float ;
IN: benchmark.struct-arrays IN: benchmark.struct-arrays
STRUCT: point { x float } { y float } { z float } ; STRUCT: point { x float } { y float } { z float } ;

View File

@ -1,6 +1,6 @@
! Copyright (C) 2005, 2007 Slava Pestov. ! Copyright (C) 2005, 2007 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.syntax kernel system combinators USING: alien alien.c-types alien.syntax kernel system combinators
alien.libraries classes.struct ; alien.libraries classes.struct ;
IN: freetype IN: freetype
@ -38,8 +38,8 @@ TYPEDEF: long FT_F26Dot6
FUNCTION: FT_Error FT_Init_FreeType ( void* library ) ; FUNCTION: FT_Error FT_Init_FreeType ( void* library ) ;
! circular reference between glyph and face ! circular reference between glyph and face
TYPEDEF: void face TYPEDEF: void* face*
TYPEDEF: void glyph TYPEDEF: void* glyph*
STRUCT: glyph STRUCT: glyph
{ library void* } { library void* }
@ -166,6 +166,8 @@ STRUCT: FT_Bitmap
{ palette_mode char } { palette_mode char }
{ palette void* } ; { palette void* } ;
TYPEDEF: void* FT_Face*
FUNCTION: FT_Error FT_New_Face ( void* library, FT_Char* font, FT_Long index, face* face ) ; FUNCTION: FT_Error FT_New_Face ( void* library, FT_Char* font, FT_Long index, face* face ) ;
FUNCTION: FT_Error FT_New_Memory_Face ( void* library, FT_Byte* file_base, FT_Long file_size, FT_Long face_index, FT_Face* aface ) ; FUNCTION: FT_Error FT_New_Memory_Face ( void* library, FT_Byte* file_base, FT_Long file_size, FT_Long face_index, FT_Face* aface ) ;

View File

@ -1,9 +1,11 @@
! (c)2009 Joe Groff bsd license ! (c)2009 Joe Groff bsd license
USING: alien alien.syntax byte-arrays classes gpu.buffers USING: alien alien.c-types alien.syntax byte-arrays classes
gpu.framebuffers gpu.shaders gpu.textures help.markup gpu.buffers gpu.framebuffers gpu.shaders gpu.textures help.markup
help.syntax images kernel math sequences help.syntax images kernel math sequences
specialized-arrays strings ; specialized-arrays strings ;
SPECIALIZED-ARRAY: float QUALIFIED-WITH: alien.c-types c
QUALIFIED-WITH: math m
SPECIALIZED-ARRAY: c:float
SPECIALIZED-ARRAY: int SPECIALIZED-ARRAY: int
SPECIALIZED-ARRAY: uint SPECIALIZED-ARRAY: uint
SPECIALIZED-ARRAY: ulong SPECIALIZED-ARRAY: ulong
@ -49,7 +51,7 @@ $nl
"Uniform parameters are passed from Factor to the shader program through the uniform tuple as follows:" "Uniform parameters are passed from Factor to the shader program through the uniform tuple as follows:"
{ $list { $list
{ { $link int-uniform } "s and " { $link uint-uniform } "s take their values from Factor " { $link integer } "s." } { { $link int-uniform } "s and " { $link uint-uniform } "s take their values from Factor " { $link integer } "s." }
{ { $link float-uniform } "s take their values from Factor " { $link float } "s." } { { $link float-uniform } "s take their values from Factor " { $link m:float } "s." }
{ { $link bool-uniform } "s take their values from Factor " { $link boolean } "s." } { { $link bool-uniform } "s take their values from Factor " { $link boolean } "s." }
{ { $link texture-uniform } "s take their values from " { $link texture } " objects." } { { $link texture-uniform } "s take their values from " { $link texture } " objects." }
{ "Vector uniforms take their values from Factor " { $link sequence } "s of the corresponding component type." { "Vector uniforms take their values from Factor " { $link sequence } "s of the corresponding component type."

View File

@ -1,6 +1,7 @@
! (c)2009 Joe Groff bsd license ! (c)2009 Joe Groff bsd license
USING: gpu.buffers gpu.render gpu.shaders gpu.textures images kernel USING: gpu.buffers gpu.render gpu.shaders gpu.textures images kernel
specialized-arrays ; specialized-arrays ;
FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float
IN: gpu.util IN: gpu.util

View File

@ -5,6 +5,7 @@ gpu.render gpu.state kernel literals
locals math math.constants math.functions math.matrices locals math math.constants math.functions math.matrices
math.order math.vectors opengl.gl sequences math.order math.vectors opengl.gl sequences
ui ui.gadgets.worlds specialized-arrays ; ui ui.gadgets.worlds specialized-arrays ;
FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float
IN: gpu.util.wasd IN: gpu.util.wasd

View File

@ -1,6 +1,7 @@
! (c)2009 Joe Groff bsd license ! (c)2009 Joe Groff bsd license
USING: accessors arrays destructors kernel math opengl USING: accessors arrays destructors kernel math opengl
opengl.gl sequences sequences.product specialized-arrays ; opengl.gl sequences sequences.product specialized-arrays ;
FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float
IN: grid-meshes IN: grid-meshes

View File

@ -1,7 +1,9 @@
! Copyright (C) 2009 Doug Coleman ! Copyright (C) 2009 Doug Coleman
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: kernel accessors grouping sequences combinators math USING: alien.c-types kernel accessors grouping sequences
byte-arrays fry images half-floats specialized-arrays ; combinators math byte-arrays fry images half-floats
specialized-arrays ;
FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: uint SPECIALIZED-ARRAY: uint
SPECIALIZED-ARRAY: ushort SPECIALIZED-ARRAY: ushort
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float

View File

@ -4,7 +4,8 @@ USING: accessors colors.constants combinators jamshred.log
jamshred.oint jamshred.sound jamshred.tunnel kernel locals math jamshred.oint jamshred.sound jamshred.tunnel kernel locals math
math.constants math.order math.ranges math.vectors math.matrices math.constants math.order math.ranges math.vectors math.matrices
sequences shuffle specialized-arrays strings system ; sequences shuffle specialized-arrays strings system ;
SPECIALIZED-ARRAY: float QUALIFIED-WITH: alien.c-types c
SPECIALIZED-ARRAY: c:float
IN: jamshred.player IN: jamshred.player
TUPLE: player < oint TUPLE: player < oint

View File

@ -5,6 +5,7 @@ kernel literals locals math math.constants math.matrices
math.order math.quadratic math.ranges math.vectors random math.order math.quadratic math.ranges math.vectors random
sequences specialized-arrays vectors ; sequences specialized-arrays vectors ;
FROM: jamshred.oint => distance ; FROM: jamshred.oint => distance ;
FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float
IN: jamshred.tunnel IN: jamshred.tunnel

View File

@ -1,5 +1,6 @@
USING: alien.syntax io io.encodings.utf16n io.encodings.utf8 io.files USING: alien.c-types alien.syntax io io.encodings.utf16n
kernel namespaces sequences system threads unix.utilities ; io.encodings.utf8 io.files kernel namespaces sequences system threads
unix.utilities ;
IN: native-thread-test IN: native-thread-test
FUNCTION: void* start_standalone_factor_in_new_thread ( int argc, char** argv ) ; FUNCTION: void* start_standalone_factor_in_new_thread ( int argc, char** argv ) ;
@ -22,4 +23,4 @@ M: unix native-string-encoding utf8 ;
: testthread ( -- ) : testthread ( -- )
"/tmp/hello" utf8 [ "hello!\n" write ] with-file-appender 5000000 sleep ; "/tmp/hello" utf8 [ "hello!\n" write ] with-file-appender 5000000 sleep ;
MAIN: testthread MAIN: testthread

View File

@ -1,7 +1,8 @@
! (c)2009 Joe Groff bsd license ! (c)2009 Joe Groff bsd license
USING: accessors arrays grouping kernel locals math math.order USING: accessors alien.c-types arrays grouping kernel locals
math.ranges math.vectors math.vectors.homogeneous sequences math math.order math.ranges math.vectors
specialized-arrays ; math.vectors.homogeneous sequences specialized-arrays ;
FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float
IN: nurbs IN: nurbs

View File

@ -122,7 +122,7 @@ FUNCTION: int ogg_sync_pageout ( ogg-sync-state* oy, ogg-page* og ) ;
FUNCTION: int ogg_stream_pagein ( ogg-stream-state* os, ogg-page* og ) ; FUNCTION: int ogg_stream_pagein ( ogg-stream-state* os, ogg-page* og ) ;
FUNCTION: int ogg_stream_packetout ( ogg-stream-state* os, ogg-packet* op ) ; FUNCTION: int ogg_stream_packetout ( ogg-stream-state* os, ogg-packet* op ) ;
FUNCTION: int ogg_stream_packetpeek ( ogg-stream-state* os, ogg-packet* op ) ; FUNCTION: int ogg_stream_packetpeek ( ogg-stream-state* os, ogg-packet* op ) ;
FUNCTION: int ogg_stream_init (ogg-stream-state* os, int serialno ) ; FUNCTION: int ogg_stream_init ( ogg-stream-state* os, int serialno ) ;
FUNCTION: int ogg_stream_clear ( ogg-stream-state* os ) ; FUNCTION: int ogg_stream_clear ( ogg-stream-state* os ) ;
FUNCTION: int ogg_stream_reset ( ogg-stream-state* os ) ; FUNCTION: int ogg_stream_reset ( ogg-stream-state* os ) ;
FUNCTION: int ogg_stream_reset_serialno ( ogg-stream-state* os, int serialno ) ; FUNCTION: int ogg_stream_reset_serialno ( ogg-stream-state* os, int serialno ) ;

View File

@ -1,7 +1,7 @@
! Copyright (C) 2007 Chris Double. ! Copyright (C) 2007 Chris Double.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.c-types kernel alien alien.syntax shuffle USING: alien.c-types kernel alien alien.syntax shuffle
openal.backend namespaces system generalizations ; openal openal.backend namespaces system generalizations ;
IN: openal.macosx IN: openal.macosx
LIBRARY: alut LIBRARY: alut

View File

@ -1,7 +1,7 @@
! Copyright (C) 2007 Chris Double. ! Copyright (C) 2007 Chris Double.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.c-types alien.syntax combinators generalizations USING: alien.c-types alien.syntax combinators generalizations
kernel openal.backend ; kernel openal openal.backend ;
IN: openal.other IN: openal.other
LIBRARY: alut LIBRARY: alut

View File

@ -1,7 +1,7 @@
! Copyright (C) 2005 Alex Chapman. ! Copyright (C) 2005 Alex Chapman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.libraries alien.syntax kernel sequences words system USING: alien alien.c-types alien.libraries alien.syntax kernel
combinators ; sequences words system combinators opengl.gl ;
IN: opengl.glu IN: opengl.glu
<< <<
@ -268,4 +268,4 @@ FUNCTION: GLint gluUnProject ( GLdouble winX, GLdouble winY, GLdouble winZ, GLdo
! FUNCTION: GLint gluUnProject4 ( GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, GLdouble* model, GLdouble* proj, GLint* view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW ) ; ! FUNCTION: GLint gluUnProject4 ( GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, GLdouble* model, GLdouble* proj, GLint* view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW ) ;
: gl-look-at ( eye focus up -- ) : gl-look-at ( eye focus up -- )
[ first3 ] tri@ gluLookAt ; [ first3 ] tri@ gluLookAt ;

View File

@ -9,6 +9,7 @@ terrain.generation terrain.shaders ui ui.gadgets
ui.gadgets.worlds ui.pixel-formats game-worlds method-chains ui.gadgets.worlds ui.pixel-formats game-worlds method-chains
math.affine-transforms noise ui.gestures combinators.short-circuit math.affine-transforms noise ui.gestures combinators.short-circuit
destructors grid-meshes ; destructors grid-meshes ;
FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: float
IN: terrain IN: terrain

View File

@ -6,6 +6,7 @@ IN: tokyo.alien.tchdb
LIBRARY: tokyocabinet LIBRARY: tokyocabinet
TYPEDEF: void* TCXSTR*
TYPEDEF: void* TCHDB* TYPEDEF: void* TCHDB*
CONSTANT: HDBFOPEN 1 CONSTANT: HDBFOPEN 1

View File

@ -8,6 +8,7 @@ LIBRARY: tokyocabinet
TYPEDEF: void* TDBIDX* TYPEDEF: void* TDBIDX*
TYPEDEF: void* TCTDB* TYPEDEF: void* TCTDB*
TYPEDEF: void* TCMAP*
CONSTANT: TDBFOPEN HDBFOPEN CONSTANT: TDBFOPEN HDBFOPEN
CONSTANT: TDBFFATAL HDBFFATAL CONSTANT: TDBFFATAL HDBFFATAL

View File

@ -23,11 +23,11 @@ else
set iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255 set iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
endif endif
syn cluster factorCluster contains=factorComment,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorCompileDirective,factorString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorCharErr,factorBackslash,@factorWordOps,factorAlien,factorTuple syn cluster factorCluster contains=factorComment,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorCompileDirective,factorString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorCharErr,factorBackslash,@factorWordOps,factorAlien,factorTuple,factorStruct
syn match factorTodo /\(TODO\|FIXME\|XXX\):\=/ contained syn match factorTodo /\(TODO\|FIXME\|XXX\):\=/ contained
syn match factorComment /\<#! .*/ contains=factorTodo syn match factorComment /\<#!\>.*/ contains=factorTodo
syn match factorComment /\<! .*/ contains=factorTodo syn match factorComment /\<!\>.*/ contains=factorTodo
syn cluster factorDefnContents contains=@factorCluster,factorStackEffect,factorLiteralStackEffect,factorArray0,factorQuotation0 syn cluster factorDefnContents contains=@factorCluster,factorStackEffect,factorLiteralStackEffect,factorArray0,factorQuotation0
@ -84,13 +84,18 @@ syn match factorChar /\<CHAR:\s\+\\\=\S\>/
syn match factorBackslash /\<\\\>\s\+\S\+\>/ syn match factorBackslash /\<\\\>\s\+\S\+\>/
syn region factorUsing start=/\<USING:\>/ end=/;/ syn region factorUsing start=/\<USING:\>/ end=/;/
syn match factorQualified /\<QUALIFIED:\s\+\S\+\>/
syn match factorQualifiedWith /\<QUALIFIED-WITH:\s\+\S\+\s\+\S\+\>/
syn region factorFrom start=/\<FROM:\>/ end=/;/
syn region factorSingletons start=/\<SINGLETONS:\>/ end=/;/ syn region factorSingletons start=/\<SINGLETONS:\>/ end=/;/
syn match factorSymbol /\<SYMBOL:\s\+\S\+\>/ syn match factorSymbol /\<SYMBOL:\s\+\S\+\>/
syn region factorSymbols start=/\<SYMBOLS:\>/ end=/;/ syn region factorSymbols start=/\<SYMBOLS:\>/ end=/;/
syn region factorConstructor2 start=/\<CONSTRUCTOR:\?/ end=/;/ syn region factorConstructor2 start=/\<CONSTRUCTOR:\?/ end=/;/
syn region factorTuple start=/\<TUPLE:\>/ end=/\<;\>/ syn region factorTuple start=/\<TUPLE:\>/ end=/\<;\>/
syn region factorStruct start=/\<\(UNION-STRUCT:\|STRUCT:\)\>/ end=/\<;\>/
syn match factorConstant /\<CONSTANT:\s\+\S\+\>/ syn match factorConstant /\<CONSTANT:\s\+\S\+\>/
syn match factorAlias /\<ALIAS:\s\+\S\+\>/
syn match factorSingleton /\<SINGLETON:\s\+\S\+\>/ syn match factorSingleton /\<SINGLETON:\s\+\S\+\>/
syn match factorPostpone /\<POSTPONE:\s\+\S\+\>/ syn match factorPostpone /\<POSTPONE:\s\+\S\+\>/
syn match factorDefer /\<DEFER:\s\+\S\+\>/ syn match factorDefer /\<DEFER:\s\+\S\+\>/
@ -102,8 +107,7 @@ syn match factorMain /\<MAIN:\s\+\S\+\>/
syn match factorConstructor /\<C:\s\+\S\+\s\+\S\+\>/ syn match factorConstructor /\<C:\s\+\S\+\s\+\S\+\>/
syn match factorAlien /\<ALIEN:\s\+\d\+\>/ syn match factorAlien /\<ALIEN:\s\+\d\+\>/
syn cluster factorWordOps contains=factorSymbol,factorPostpone,factorDefer,factorForget,factorMixin,factorInstance,factorHook,factorMain,factorConstructor syn cluster factorWordOps contains=factorConstant,factorAlias,factorSingleton,factorSingletons,factorSymbol,factorSymbols,factorPostpone,factorDefer,factorForget,factorMixin,factorInstance,factorHook,factorMain,factorConstructor
"TODO: "TODO:
"misc: "misc:
@ -113,20 +117,10 @@ syn cluster factorWordOps contains=factorSymbol,factorPostpone,factorDefer
" PRIMITIVE: " PRIMITIVE:
"C interface: "C interface:
" FIELD:
" BEGIN-STRUCT:
" C-ENUM: " C-ENUM:
" FUNCTION: " FUNCTION:
" END-STRUCT
" DLL"
" TYPEDEF: " TYPEDEF:
" LIBRARY: " LIBRARY:
" C-UNION:
"QUALIFIED:
"QUALIFIED-WITH:
"FROM:
"ALIAS:
"! POSTPONE: "
"#\ " "#\ "
syn region factorString start=/"/ skip=/\\"/ end=/"/ oneline syn region factorString start=/"/ skip=/\\"/ end=/"/ oneline
@ -143,18 +137,18 @@ syn match factorLiteralStackEffect /\<(( .*--.* ))\>/
"adapted from lisp.vim "adapted from lisp.vim
if exists("g:factor_norainbow") if exists("g:factor_norainbow")
syn region factorQuotation matchgroup=factorDelimiter start=/\<\(\('\|\$\|\)\[\)\|\[\(let\||\)\>/ matchgroup=factorDelimiter end=/\<\]\>/ contains=ALL syn region factorQuotation matchgroup=factorDelimiter start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ matchgroup=factorDelimiter end=/\<\]\>/ contains=ALL
else else
syn region factorQuotation0 matchgroup=hlLevel0 start=/\<\(\('\|\$\|\)\[\)\|\[\(let\||\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation1,factorArray1 syn region factorQuotation0 matchgroup=hlLevel0 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation1,factorArray1
syn region factorQuotation1 contained matchgroup=hlLevel1 start=/\<\(\('\|\$\|\)\[\)\|\[\(let\||\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation2,factorArray2 syn region factorQuotation1 contained matchgroup=hlLevel1 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation2,factorArray2
syn region factorQuotation2 contained matchgroup=hlLevel2 start=/\<\(\('\|\$\|\)\[\)\|\[\(let\||\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation3,factorArray3 syn region factorQuotation2 contained matchgroup=hlLevel2 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation3,factorArray3
syn region factorQuotation3 contained matchgroup=hlLevel3 start=/\<\(\('\|\$\|\)\[\)\|\[\(let\||\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation4,factorArray4 syn region factorQuotation3 contained matchgroup=hlLevel3 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation4,factorArray4
syn region factorQuotation4 contained matchgroup=hlLevel4 start=/\<\(\('\|\$\|\)\[\)\|\[\(let\||\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation5,factorArray5 syn region factorQuotation4 contained matchgroup=hlLevel4 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation5,factorArray5
syn region factorQuotation5 contained matchgroup=hlLevel5 start=/\<\(\('\|\$\|\)\[\)\|\[\(let\||\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation6,factorArray6 syn region factorQuotation5 contained matchgroup=hlLevel5 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation6,factorArray6
syn region factorQuotation6 contained matchgroup=hlLevel6 start=/\<\(\('\|\$\|\)\[\)\|\[\(let\||\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation7,factorArray7 syn region factorQuotation6 contained matchgroup=hlLevel6 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation7,factorArray7
syn region factorQuotation7 contained matchgroup=hlLevel7 start=/\<\(\('\|\$\|\)\[\)\|\[\(let\||\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation8,factorArray8 syn region factorQuotation7 contained matchgroup=hlLevel7 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation8,factorArray8
syn region factorQuotation8 contained matchgroup=hlLevel8 start=/\<\(\('\|\$\|\)\[\)\|\[\(let\||\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation9,factorArray9 syn region factorQuotation8 contained matchgroup=hlLevel8 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation9,factorArray9
syn region factorQuotation9 contained matchgroup=hlLevel9 start=/\<\(\('\|\$\|\)\[\)\|\[\(let\||\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation0,factorArray0 syn region factorQuotation9 contained matchgroup=hlLevel9 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation0,factorArray0
endif endif
if exists("g:factor_norainbow") if exists("g:factor_norainbow")
@ -222,6 +216,9 @@ if version >= 508 || !exists("did_factor_syn_inits")
HiLink factorFloat Float HiLink factorFloat Float
HiLink factorInt Number HiLink factorInt Number
HiLink factorUsing Include HiLink factorUsing Include
HiLink factorQualified Include
HiLink factorQualifiedWith Include
HiLink factorFrom Include
HiLink factorUse Include HiLink factorUse Include
HiLink factorUnuse Include HiLink factorUnuse Include
HiLink factorIn Define HiLink factorIn Define
@ -243,6 +240,7 @@ if version >= 508 || !exists("did_factor_syn_inits")
HiLink factorForget Define HiLink factorForget Define
HiLink factorAlien Define HiLink factorAlien Define
HiLink factorTuple Typedef HiLink factorTuple Typedef
HiLink factorStruct Typedef
if &bg == "dark" if &bg == "dark"
hi hlLevel0 ctermfg=red guifg=red1 hi hlLevel0 ctermfg=red guifg=red1