From e76229a8f655fd025ac5ae68cbc0e7bccfd31a48 Mon Sep 17 00:00:00 2001 From: Jeremy Hughes Date: Tue, 7 Jul 2009 10:56:33 +1200 Subject: [PATCH 1/3] alien.inline.compiler: x86_64 check and hook methods --- basis/alien/inline/compiler/compiler.factor | 26 ++++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/basis/alien/inline/compiler/compiler.factor b/basis/alien/inline/compiler/compiler.factor index b5a7861d6b..2f5fd29aff 100644 --- a/basis/alien/inline/compiler/compiler.factor +++ b/basis/alien/inline/compiler/compiler.factor @@ -2,7 +2,7 @@ ! See http://factorcode.org/license.txt for BSD license. USING: accessors arrays combinators fry generalizations io.encodings.ascii io.files io.files.temp io.launcher kernel -locals sequences system ; +locals sequences system words ; IN: alien.inline.compiler SYMBOL: C @@ -27,20 +27,28 @@ SYMBOL: C++ { C++ [ "g++" ] } } case ; +HOOK: compiler-descr os ( lang -- descr ) + +M: word compiler-descr compiler 1array ; +M: macosx compiler-descr + call-next-method cpu x86.64? + [ { "-arch" "x86_64" } append ] when ; + +HOOK: link-descr os ( -- descr ) + +M: word link-descr { "-shared" "-o" } ; +M: macosx link-descr + { "-g" "-prebind" "-dynamiclib" "-o" } + cpu x86.64? [ { "-arch" "x86_64" } prepend ] when ; + : link-command ( in out lang -- descr ) - compiler os { - { [ dup linux? ] - [ drop { "-shared" "-o" } ] } - { [ dup macosx? ] - [ drop { "-g" "-prebind" "-dynamiclib" "-o" } ] } - [ name>> "unimplemented for: " prepend throw ] - } cond swap prefix prepend prepend ; + compiler-descr link-descr append prepend prepend ; :: compile-to-object ( lang contents name -- ) name ".o" append temp-file contents name lang src-suffix append temp-file [ ascii set-file-contents ] keep 2array - { "-fPIC" "-c" "-o" } lang compiler prefix prepend + lang compiler-descr { "-fPIC" "-c" "-o" } append prepend try-process ; :: link-object ( lang args name -- ) From da024f5547b43b65f59b6dd4eed98c34b5297da4 Mon Sep 17 00:00:00 2001 From: Jeremy Hughes Date: Tue, 7 Jul 2009 16:07:27 +1200 Subject: [PATCH 2/3] alien.inline: file get path>> instead of vocab-source-path --- basis/alien/inline/inline.factor | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/basis/alien/inline/inline.factor b/basis/alien/inline/inline.factor index ae4a95497a..365b56ca28 100644 --- a/basis/alien/inline/inline.factor +++ b/basis/alien/inline/inline.factor @@ -4,7 +4,7 @@ USING: accessors alien.inline.compiler alien.inline.types alien.libraries alien.parser arrays assocs effects fry generalizations grouping io.files io.files.info io.files.temp kernel lexer math math.order math.ranges multiline namespaces -sequences splitting strings system vocabs.loader +sequences source-files splitting strings system vocabs.loader vocabs.parser words ; IN: alien.inline @@ -48,7 +48,7 @@ SYMBOL: c-strings : compile-library? ( -- ? ) library-path dup exists? [ - current-vocab vocab-source-path + file get path>> [ file-info modified>> ] bi@ <=> +lt+ = ] [ drop t ] if ; From 66a740aaafad0f158a186a2064d6a8ea7e87b14b Mon Sep 17 00:00:00 2001 From: Jeremy Hughes Date: Tue, 7 Jul 2009 16:23:26 +1200 Subject: [PATCH 3/3] moved alien.inline tests to inline-tests.factor --- basis/alien/inline/{tests/tests.factor => inline-tests.factor} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename basis/alien/inline/{tests/tests.factor => inline-tests.factor} (100%) diff --git a/basis/alien/inline/tests/tests.factor b/basis/alien/inline/inline-tests.factor similarity index 100% rename from basis/alien/inline/tests/tests.factor rename to basis/alien/inline/inline-tests.factor