diff --git a/README.txt b/README.txt index dfe70c00f4..bd9da0ab2b 100755 --- a/README.txt +++ b/README.txt @@ -24,7 +24,7 @@ The Factor runtime is written in GNU C99, and is built with GNU make and gcc. Factor supports various platforms. For an up-to-date list, see -. +. Factor requires gcc 3.4 or later. @@ -36,17 +36,6 @@ arguments for make. Run 'make' ('gmake' on *BSD) with no parameters to build the Factor VM. -Compilation will yield an executable named 'factor' on Unix, -'factor.exe' on Windows XP/Vista, and 'factor-ce.exe' on Windows CE. - -* Libraries needed for compilation - -For X11 support, you need recent development libraries for libc, -Freetype, X11, OpenGL and GLUT. On a Debian-derived Linux distribution -(like Ubuntu), you can use the following line to grab everything: - - sudo apt-get install libc6-dev libfreetype6-dev libx11-dev glutg3-dev - * Bootstrapping the Factor image Once you have compiled the Factor runtime, you must bootstrap the Factor @@ -69,6 +58,12 @@ machines. On Unix, Factor can either run a graphical user interface using X11, or a terminal listener. +For X11 support, you need recent development libraries for libc, +Pango, X11, OpenGL and GLUT. On a Debian-derived Linux distribution +(like Ubuntu), you can use the following line to grab everything: + + sudo apt-get install libc6-dev libpango-1.0-dev libx11-dev glutg3-dev + If your DISPLAY environment variable is set, the UI will start automatically: @@ -78,14 +73,6 @@ To run an interactive terminal listener: ./factor -run=listener -If you're inside a terminal session, you can start the UI with one of -the following two commands: - - ui - [ ui ] in-thread - -The latter keeps the terminal listener running. - * Running Factor on Mac OS X - Cocoa UI On Mac OS X, a Cocoa UI is available in addition to the terminal @@ -110,7 +97,7 @@ When compiling Factor, pass the X11=1 parameter: Then bootstrap with the following switches: - ./factor -i=boot..image -ui-backend=x11 + ./factor -i=boot..image -ui-backend=x11 -ui-text-backend=pango Now if $DISPLAY is set, running ./factor will start the UI. @@ -126,6 +113,12 @@ the command prompt using the console application: factor.com -i=boot..image +Before bootstrapping, you will need to download the DLLs for the Pango +text rendering library. The required DLLs are listed in +build-support/dlls.txt and are available from the following location: + + + Once bootstrapped, double-clicking factor.exe or factor.com starts the Factor UI. @@ -135,7 +128,9 @@ To run the listener in the command prompt: * The Factor FAQ -The Factor FAQ is available at . +The Factor FAQ is available at the following location: + + * Command line usage diff --git a/basis/colors/constants/constants-docs.factor b/basis/colors/constants/constants-docs.factor index 633bd20ed2..49d6fce3a1 100644 --- a/basis/colors/constants/constants-docs.factor +++ b/basis/colors/constants/constants-docs.factor @@ -2,7 +2,7 @@ IN: colors.constants USING: help.markup help.syntax strings colors ; HELP: named-color -{ $values { "string" string } { "color" color } } +{ $values { "name" string } { "color" color } } { $description "Outputs a named color from the " { $snippet "rgb.txt" } " database." } { $notes "In most cases, " { $link POSTPONE: COLOR: } " should be used instead." } { $errors "Throws an error if the color is not listed in " { $snippet "rgb.txt" } "." } ; diff --git a/basis/colors/constants/constants.factor b/basis/colors/constants/constants.factor index 0e5610a144..91621c110b 100644 --- a/basis/colors/constants/constants.factor +++ b/basis/colors/constants/constants.factor @@ -27,7 +27,7 @@ PRIVATE> ERROR: no-such-color name ; -: named-color ( name -- rgb ) +: named-color ( name -- color ) dup rgb.txt at [ ] [ no-such-color ] ?if ; : COLOR: scan named-color parsed ; parsing \ No newline at end of file diff --git a/basis/core-foundation/attributed-strings/tags.txt b/basis/core-foundation/attributed-strings/tags.txt new file mode 100644 index 0000000000..2320bdd648 --- /dev/null +++ b/basis/core-foundation/attributed-strings/tags.txt @@ -0,0 +1,2 @@ +unportable +bindings diff --git a/basis/delegate/delegate-docs.factor b/basis/delegate/delegate-docs.factor index 9456941880..42b727852e 100644 --- a/basis/delegate/delegate-docs.factor +++ b/basis/delegate/delegate-docs.factor @@ -13,8 +13,8 @@ HELP: PROTOCOL: { define-protocol POSTPONE: PROTOCOL: } related-words HELP: define-consult -{ $values { "class" "a class" } { "group" "a protocol, generic word or tuple class" } { "quot" "a quotation" } } -{ $description "Defines a class to consult, using the given quotation, on the generic words contained in the group." } +{ $values { "consultation" consultation } } +{ $description "Defines a class to consult, using the quotation, on the generic words contained in the group." } { $notes "Usually, " { $link POSTPONE: CONSULT: } " should be used instead. This is only for runtime use." } ; HELP: CONSULT: diff --git a/basis/farkup/farkup-tests.factor b/basis/farkup/farkup-tests.factor index 60a9f785e6..246da48b32 100644 --- a/basis/farkup/farkup-tests.factor +++ b/basis/farkup/farkup-tests.factor @@ -99,6 +99,7 @@ link-no-follow? off [ "

\"teh

" ] [ "[[image:lol.jpg|teh lol]]" convert-farkup ] unit-test [ "

http://lol.com

" ] [ "[[http://lol.com]]" convert-farkup ] unit-test [ "

haha

" ] [ "[[http://lol.com|haha]]" convert-farkup ] unit-test +[ "

haha

" ] [ "[[http://lol.com/search?q=sex|haha]]" convert-farkup ] unit-test [ "

Bar

" ] [ "[[Foo/Bar]]" convert-farkup ] unit-test "/wiki/view/" relative-link-prefix [ diff --git a/basis/farkup/farkup.factor b/basis/farkup/farkup.factor index 50ee938659..4041d92773 100755 --- a/basis/farkup/farkup.factor +++ b/basis/farkup/farkup.factor @@ -165,12 +165,12 @@ CONSTANT: invalid-url "javascript:alert('Invalid URL in farkup');" { [ dup [ 127 > ] any? ] [ drop invalid-url ] } { [ dup first "/\\" member? ] [ drop invalid-url ] } { [ CHAR: : over member? ] [ dup absolute-url? [ drop invalid-url ] unless ] } - [ relative-link-prefix get prepend "" like ] - } cond url-encode ; + [ relative-link-prefix get prepend "" like url-encode ] + } cond ; : write-link ( href text -- xml ) - [ check-url link-no-follow? get "true" and ] dip - [XML nofollow=<->><-> XML] ; + [ check-url link-no-follow? get "nofollow" and ] dip + [XML rel=<->><-> XML] ; : write-image-link ( href text -- xml ) disable-images? get [ diff --git a/basis/http/http-tests.factor b/basis/http/http-tests.factor index 229d05615e..0d4282b1d7 100644 --- a/basis/http/http-tests.factor +++ b/basis/http/http-tests.factor @@ -9,14 +9,10 @@ IN: http.tests [ "text/html" utf8 ] [ "text/html; charset=UTF-8" parse-content-type ] unit-test +[ "text/html" utf8 ] [ "text/html; charset=\"utf-8\"" parse-content-type ] unit-test + [ "application/octet-stream" binary ] [ "application/octet-stream" parse-content-type ] unit-test -[ { } ] [ "" parse-cookie ] unit-test -[ { } ] [ "" parse-set-cookie ] unit-test - -! Make sure that totally invalid cookies don't confuse us -[ { } ] [ "hello world; how are you" parse-cookie ] unit-test - : lf>crlf "\n" split "\r\n" join ; STRING: read-request-test-1 diff --git a/basis/http/http.factor b/basis/http/http.factor index a64a11690c..bf58f5c238 100755 --- a/basis/http/http.factor +++ b/basis/http/http.factor @@ -34,7 +34,7 @@ IN: http : check-header-string ( str -- str ) #! http://en.wikipedia.org/wiki/HTTP_Header_Injection - dup "\r\n\"" intersects? + dup "\r\n" intersects? [ "Header injection attack" throw ] when ; : write-header ( assoc -- ) @@ -213,7 +213,10 @@ TUPLE: post-data data params content-type content-encoding ; swap >>content-type ; : parse-content-type-attributes ( string -- attributes ) - " " split harvest [ "=" split1 [ >lower ] dip ] { } map>assoc ; + " " split harvest [ + "=" split1 + [ >lower ] [ "\"" ?head drop "\"" ?tail drop ] bi* + ] { } map>assoc ; : parse-content-type ( content-type -- type encoding ) ";" split1 diff --git a/basis/http/parsers/parsers-tests.factor b/basis/http/parsers/parsers-tests.factor new file mode 100644 index 0000000000..f87ed47f00 --- /dev/null +++ b/basis/http/parsers/parsers-tests.factor @@ -0,0 +1,16 @@ +IN: http.parsers.tests +USING: http http.parsers tools.test ; + +[ { } ] [ "" parse-cookie ] unit-test +[ { } ] [ "" parse-set-cookie ] unit-test + +! Make sure that totally invalid cookies don't confuse us +[ { } ] [ "hello world; how are you" parse-cookie ] unit-test + +[ { T{ cookie { name "__s" } { value "12345567" } } } ] +[ "__s=12345567" parse-cookie ] +unit-test + +[ { T{ cookie { name "__s" } { value "12345567" } } } ] +[ "__s=12345567;" parse-cookie ] +unit-test \ No newline at end of file diff --git a/basis/http/parsers/parsers.factor b/basis/http/parsers/parsers.factor index d72147b381..2520c35acb 100644 --- a/basis/http/parsers/parsers.factor +++ b/basis/http/parsers/parsers.factor @@ -162,7 +162,7 @@ PEG: (parse-set-cookie) ( string -- alist ) 'value' , 'space' , ] seq* - [ ";,=" member? not ] satisfy repeat1 [ drop f ] action + [ ";,=" member? not ] satisfy repeat0 [ drop f ] action 2choice ; PEG: (parse-cookie) ( string -- alist ) diff --git a/basis/http/server/cgi/cgi.factor b/basis/http/server/cgi/cgi.factor index a64fe9af3c..d2f453034a 100644 --- a/basis/http/server/cgi/cgi.factor +++ b/basis/http/server/cgi/cgi.factor @@ -53,9 +53,9 @@ IN: http.server.cgi "CGI output follows" >>message swap '[ binary encode-output - _ output-stream get swap binary [ + output-stream get _ binary [ post-request? [ request get post-data>> data>> write flush ] when - '[ _ write ] each-block + '[ _ stream-write ] each-block ] with-stream ] >>body ; diff --git a/basis/io/encodings/euc-kr/euc-kr-docs.factor b/basis/io/encodings/euc-kr/euc-kr-docs.factor index 5e109f3536..60cd41ac57 100644 --- a/basis/io/encodings/euc-kr/euc-kr-docs.factor +++ b/basis/io/encodings/euc-kr/euc-kr-docs.factor @@ -3,8 +3,11 @@ USING: help.syntax help.markup ; IN: io.encodings.euc-kr -ABOUT: euc-kr - HELP: euc-kr -{ $class-description "This encoding class implements Microsoft's code page #949 encoding, also called Unified Hangul Code or ks_c_5601-1987, UHC. CP949 is extended version of EUC-KR and downward-compatibility to EUC-KR, in practice." } +{ $class-description "This encoding class implements Microsoft's CP949 encoding, also called Unified Hangul Code or ks_c_5601-1987, UHC. CP949 is extended version of EUC-KR and downward-compatible with EUC-KR in practice." } { $see-also "encodings-introduction" } ; + +ARTICLE: "io.encodings.euc-kr" "EUC-KR encoding" +{ $subsection euc-kr } ; + +ABOUT: "io.encodings.euc-kr" \ No newline at end of file diff --git a/basis/io/encodings/johab/johab-docs.factor b/basis/io/encodings/johab/johab-docs.factor index 1d707e0f7d..d2eac30b25 100644 --- a/basis/io/encodings/johab/johab-docs.factor +++ b/basis/io/encodings/johab/johab-docs.factor @@ -3,7 +3,10 @@ USING: help.syntax help.markup ; IN: io.encodings.johab -ABOUT: johab - HELP: johab { $class-description "Korean Johab encoding (KSC5601-1992). This encoding is not commonly used anymore." } ; + +ARTICLE: "io.encodings.johab" "Korean Johab encoding" +{ $subsection johab } ; + +ABOUT: "io.encodings.johab" \ No newline at end of file diff --git a/basis/models/models-docs.factor b/basis/models/models-docs.factor index 4db71c4595..82dd035467 100644 --- a/basis/models/models-docs.factor +++ b/basis/models/models-docs.factor @@ -137,7 +137,7 @@ $nl { $subsection "models-delay" } ; ARTICLE: "models-impl" "Implementing models" -"New types of models can be defined, for example see " { $vocab-link "models.filter" } "." +"New types of models can be defined, for example see " { $vocab-link "models.arrow" } "." $nl "Models can execute hooks when activated:" { $subsection model-activated } diff --git a/basis/simple-flat-file/simple-flat-file.factor b/basis/simple-flat-file/simple-flat-file.factor index 721f4986a0..403fc4d14b 100644 --- a/basis/simple-flat-file/simple-flat-file.factor +++ b/basis/simple-flat-file/simple-flat-file.factor @@ -7,10 +7,13 @@ IN: simple-flat-file [ "#" split1 drop ] map harvest ; : split-column ( line -- columns ) - " \t" split harvest 2 head ; + " \t" split harvest 2 short head 2 f pad-tail ; : parse-hex ( s -- n ) - 2 short tail hex> ; + dup [ + "0x" ?head [ "U+" ?head [ "Missing 0x or U+" throw ] unless ] unless + hex> + ] when ; : parse-line ( line -- code-unicode ) split-column [ parse-hex ] map ; diff --git a/basis/tools/deploy/backend/backend.factor b/basis/tools/deploy/backend/backend.factor index 7d8f357240..28a32790dc 100755 --- a/basis/tools/deploy/backend/backend.factor +++ b/basis/tools/deploy/backend/backend.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2007, 2008 Slava Pestov. +! Copyright (C) 2007, 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: namespaces make continuations.private kernel.private init assocs kernel vocabs words sequences memory io system arrays @@ -14,9 +14,14 @@ IN: tools.deploy.backend : copy-vm ( executable bundle-name -- vm ) prepend-path vm over copy-file ; -: copy-fonts ( name dir -- ) +CONSTANT: theme-path "basis/ui/gadgets/theme/" + +: copy-theme ( name dir -- ) deploy-ui? get [ - append-path "resource:fonts/" swap copy-tree-into + append-path + theme-path append-path + [ make-directories ] + [ theme-path "resource:" prepend swap copy-tree ] bi ] [ 2drop ] if ; : image-name ( vocab bundle-name -- str ) diff --git a/basis/tools/deploy/unix/unix.factor b/basis/tools/deploy/unix/unix.factor index c9bf308357..f88cf06ef7 100755 --- a/basis/tools/deploy/unix/unix.factor +++ b/basis/tools/deploy/unix/unix.factor @@ -7,7 +7,7 @@ tools.deploy.config.editor assocs hashtables prettyprint ; IN: tools.deploy.unix : create-app-dir ( vocab bundle-name -- vm ) - dup "" copy-fonts + dup "" copy-theme copy-vm dup OCT: 755 set-file-permissions ; diff --git a/basis/tools/deploy/windows/windows.factor b/basis/tools/deploy/windows/windows.factor index 0e9146b26e..bfa096ad2f 100755 --- a/basis/tools/deploy/windows/windows.factor +++ b/basis/tools/deploy/windows/windows.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2007, 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: io io.files io.pathnames io.directories kernel namespaces +USING: io io.files io.pathnames io.directories io.encodings.ascii kernel namespaces sequences locals system splitting tools.deploy.backend tools.deploy.config tools.deploy.config.editor assocs hashtables prettyprint combinators windows.shell32 windows.user32 ; @@ -9,11 +9,10 @@ IN: tools.deploy.windows : copy-dll ( bundle-name -- ) "resource:factor.dll" swap copy-file-into ; -: copy-freetype ( bundle-name -- ) - { - "resource:freetype6.dll" - "resource:zlib1.dll" - } swap copy-files-into ; +: copy-pango ( bundle-name -- ) + "resource:build-support/dlls.txt" ascii file-lines + [ "resource:" prepend-path ] map + swap copy-files-into ; :: copy-vm ( executable bundle-name extension -- vm ) vm "." split1-last drop extension append @@ -23,8 +22,8 @@ IN: tools.deploy.windows : create-exe-dir ( vocab bundle-name -- vm ) dup copy-dll deploy-ui? get [ - [ copy-freetype ] - [ "" copy-fonts ] + [ copy-pango ] + [ "" copy-theme ] [ ".exe" copy-vm ] tri ] [ ".com" copy-vm ] if ; diff --git a/basis/ui/gadgets/panes/panes.factor b/basis/ui/gadgets/panes/panes.factor index aef8fda066..d322cb995b 100644 --- a/basis/ui/gadgets/panes/panes.factor +++ b/basis/ui/gadgets/panes/panes.factor @@ -29,11 +29,14 @@ selection-color caret mark selecting? ; : init-current ( pane -- pane ) dup prototype>> clone >>current ; inline +: focus-input ( pane -- ) + input>> [ request-focus ] when* ; + : next-line ( pane -- ) clear-selection [ input>> unparent ] [ init-current prepare-last-line ] - [ input>> [ request-focus ] when* ] tri ; + [ focus-input ] tri ; : pane-caret&mark ( pane -- caret mark ) [ caret>> ] [ mark>> ] bi ; inline @@ -364,9 +367,8 @@ M: paragraph stream-format interleave ] if ; -: caret>mark ( pane -- pane ) - dup caret>> >>mark - dup relayout-1 ; +: caret>mark ( pane -- ) + dup caret>> >>mark relayout-1 ; GENERIC: sloppy-pick-up* ( loc gadget -- n ) @@ -388,45 +390,46 @@ M: f sloppy-pick-up* [ 3drop { } ] if ; -: move-caret ( pane loc -- pane ) +: move-caret ( pane loc -- ) over screen-loc v- over sloppy-pick-up >>caret - dup relayout-1 ; + relayout-1 ; : begin-selection ( pane -- ) f >>selecting? - hand-loc get move-caret + dup hand-loc get move-caret f >>mark drop ; : extend-selection ( pane -- ) hand-moved? [ - dup selecting?>> [ - hand-loc get move-caret - ] [ - dup hand-clicked get child? [ - t >>selecting? - dup hand-clicked set-global - hand-click-loc get move-caret - caret>mark - ] when - ] if - dup dup caret>> gadget-at-path scroll>gadget - ] when drop ; + [ + dup selecting?>> [ + hand-loc get move-caret + ] [ + dup hand-clicked get child? [ + t >>selecting? + [ hand-clicked set-global ] + [ hand-click-loc get move-caret ] + [ caret>mark ] + tri + ] [ drop ] if + ] if + ] [ dup caret>> gadget-at-path scroll>gadget ] bi + ] [ drop ] if ; : end-selection ( pane -- ) f >>selecting? - hand-moved? [ - [ com-copy-selection ] [ request-focus ] bi - ] [ - relayout-1 - ] if ; + hand-moved? + [ [ com-copy-selection ] [ request-focus ] bi ] + [ [ relayout-1 ] [ focus-input ] bi ] + if ; : select-to-caret ( pane -- ) t >>selecting? - dup mark>> [ caret>mark ] unless - hand-loc get move-caret - dup request-focus - com-copy-selection ; + [ dup mark>> [ dup caret>mark ] unless hand-loc get move-caret ] + [ com-copy-selection ] + [ request-focus ] + tri ; : pane-menu ( pane -- ) { com-copy } show-commands-menu ; diff --git a/basis/ui/gestures/gestures.factor b/basis/ui/gestures/gestures.factor index 744cb1dc50..2e52a2fe1e 100644 --- a/basis/ui/gestures/gestures.factor +++ b/basis/ui/gestures/gestures.factor @@ -306,12 +306,18 @@ M: macosx modifiers>string M: object modifiers>string [ name>> ] map "" join ; +HOOK: keysym>string os ( keysym -- string ) + +M: macosx keysym>string >upper ; + +M: object keysym>string ; + M: key-down gesture>string [ mods>> ] [ sym>> ] bi { { [ dup { [ length 1 = ] [ first LETTER? ] } 1&& ] [ [ S+ prefix ] dip ] } { [ dup " " = ] [ drop "SPACE" ] } - [ >upper ] + [ keysym>string ] } cond [ modifiers>string ] dip append ; diff --git a/basis/ui/tools/browser/browser.factor b/basis/ui/tools/browser/browser.factor index 8fcd14c95f..078ece6546 100644 --- a/basis/ui/tools/browser/browser.factor +++ b/basis/ui/tools/browser/browser.factor @@ -86,7 +86,9 @@ M: browser-gadget focusable-child* search-field>> ; [ [ raise-window ] [ gadget-child show-help ] bi ] [ (browser-window) ] if* ; -: show-browser ( -- ) "handbook" com-browse ; +: show-browser ( -- ) + [ browser-gadget? ] find-window + [ raise-window ] [ browser-window ] if* ; \ show-browser H{ { +nullary+ t } } define-command diff --git a/basis/unix/bsd/freebsd/freebsd.factor b/basis/unix/bsd/freebsd/freebsd.factor index 4536c532bf..05642b5065 100644 --- a/basis/unix/bsd/freebsd/freebsd.factor +++ b/basis/unix/bsd/freebsd/freebsd.factor @@ -1,7 +1,7 @@ USING: alien.syntax ; IN: unix -: FD_SETSIZE 1024 ; +CONSTANT: FD_SETSIZE 1024 C-STRUCT: addrinfo { "int" "flags" } diff --git a/basis/windows/com/com-docs.factor b/basis/windows/com/com-docs.factor index 8c7584828f..3a7b7272d7 100644 --- a/basis/windows/com/com-docs.factor +++ b/basis/windows/com/com-docs.factor @@ -15,11 +15,11 @@ HELP: com-release { $description "A small wrapper around " { $link IUnknown::Release } ". Decrements the reference count on " { $snippet "interface" } ", releasing the underlying object if the reference count has reached zero." } ; HELP: &com-release -{ $values { "interface" "Pointer to a COM interface implementing " { $snippet "IUnknown" } } } +{ $values { "alien" "pointer to a COM interface implementing " { $snippet "IUnknown" } } } { $description "Marks the given COM interface for unconditional release via " { $link com-release } " at the end of the enclosing " { $link with-destructors } " scope." } ; HELP: |com-release -{ $values { "interface" "Pointer to a COM interface implementing " { $snippet "IUnknown" } } } +{ $values { "alien" "pointer to a COM interface implementing " { $snippet "IUnknown" } } } { $description "Marks the given COM interface for release via " { $link com-release } " in the event of an error at the end of the enclosing " { $link with-destructors } " scope." } ; { com-release &com-release |com-release } related-words diff --git a/build-support/dlls.txt b/build-support/dlls.txt new file mode 100644 index 0000000000..97d0cf6e9c --- /dev/null +++ b/build-support/dlls.txt @@ -0,0 +1,12 @@ +libcairo-2.dll +libgio-2.0-0.dll +libglib-2.0-0.dll +libgmodule-2.0-0.dll +libgobject-2.0-0.dll +libgthread-2.0-0.dll +libpango-1.0-0.dll +libpangocairo-1.0-0.dll +libpangowin32-1.0-0.dll +libpng12-0.dll +libtiff3.dll +zlib1.dll diff --git a/build-support/factor.sh b/build-support/factor.sh index 3517d8f4ba..cf6aacb84f 100755 --- a/build-support/factor.sh +++ b/build-support/factor.sh @@ -447,31 +447,11 @@ get_url() { maybe_download_dlls() { if [[ $OS == winnt ]] ; then - get_url http://factorcode.org/dlls/freetype6.dll - get_url http://factorcode.org/dlls/zlib1.dll - get_url http://factorcode.org/dlls/OpenAL32.dll - get_url http://factorcode.org/dlls/alut.dll - get_url http://factorcode.org/dlls/comerr32.dll - get_url http://factorcode.org/dlls/gssapi32.dll - get_url http://factorcode.org/dlls/iconv.dll - get_url http://factorcode.org/dlls/k5sprt32.dll - get_url http://factorcode.org/dlls/krb5_32.dll - get_url http://factorcode.org/dlls/libcairo-2.dll - get_url http://factorcode.org/dlls/libeay32.dll - get_url http://factorcode.org/dlls/libiconv2.dll - get_url http://factorcode.org/dlls/libintl3.dll - get_url http://factorcode.org/dlls/libpq.dll - get_url http://factorcode.org/dlls/libxml2.dll - get_url http://factorcode.org/dlls/libxslt.dll - get_url http://factorcode.org/dlls/msvcr71.dll - get_url http://factorcode.org/dlls/ogg.dll - get_url http://factorcode.org/dlls/pgaevent.dll - get_url http://factorcode.org/dlls/sqlite3.dll - get_url http://factorcode.org/dlls/ssleay32.dll - get_url http://factorcode.org/dlls/theora.dll - get_url http://factorcode.org/dlls/vorbis.dll - chmod 777 *.dll - check_ret chmod + for file in `cat build-support/dlls.txt`; do + get_url http://factorcode.org/dlls/$file + chmod 777 *.dll + check_ret chmod + done fi } @@ -522,7 +502,7 @@ make_boot_image() { } install_build_system_apt() { - sudo apt-get --yes install libc6-dev libfreetype6-dev libx11-dev xorg-dev glutg3-dev wget git-core git-doc rlwrap gcc make + sudo apt-get --yes install libc6-dev libpango-1.0-dev libx11-dev xorg-dev glutg3-dev wget git-core git-doc rlwrap gcc make check_ret sudo } diff --git a/extra/mason/child/child.factor b/extra/mason/child/child.factor index 087ed2c3cb..1999c76d83 100644 --- a/extra/mason/child/child.factor +++ b/extra/mason/child/child.factor @@ -1,21 +1,22 @@ -! Copyright (C) 2008 Eduardo Cavazos, Slava Pestov. +! Copyright (C) 2008, 2009 Eduardo Cavazos, Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors arrays calendar combinators.short-circuit -continuations debugger http.client io.directories io.files -io.launcher io.pathnames kernel make mason.common mason.config +continuations debugger http.client io.directories io.files io.launcher +io.pathnames io.encodings.ascii kernel make mason.common mason.config mason.platform mason.report mason.email namespaces sequences ; IN: mason.child : make-cmd ( -- args ) gnu-make platform 2array ; +: dll-url ( -- url ) + "http://factorcode.org/dlls/" + target-cpu get "x86.64" = [ "64/" append ] when ; + : download-dlls ( -- ) target-os get "winnt" = [ - "http://factorcode.org/dlls/" - target-cpu get "x86.64" = [ "64/" append ] when - [ "freetype6.dll" append ] - [ "zlib1.dll" append ] bi - [ download ] bi@ + dll-url "build-support/dlls.txt" ascii file-lines + [ append download ] with each ] when ; : make-vm ( -- ) diff --git a/extra/webapps/planet/planet.xml b/extra/webapps/planet/planet.xml index 412f42c64e..08cf07d4ce 100644 --- a/extra/webapps/planet/planet.xml +++ b/extra/webapps/planet/planet.xml @@ -2,6 +2,8 @@ + [ planet-factor ] + [ planet-factor ]