From 5e822dd454b38c266ce64ab2e5ca91c0a1462191 Mon Sep 17 00:00:00 2001 From: Jeremy Hughes <jedahu@gmail.com> Date: Tue, 7 Jul 2009 21:11:57 +1200 Subject: [PATCH] alien.inline: added DELETE-C-LIBRARY: word, mainly for tests --- basis/alien/inline/inline-tests.factor | 13 +++++-------- basis/alien/inline/inline.factor | 13 +++++++++---- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/basis/alien/inline/inline-tests.factor b/basis/alien/inline/inline-tests.factor index 60e6b3b594..837f27ceb7 100644 --- a/basis/alien/inline/inline-tests.factor +++ b/basis/alien/inline/inline-tests.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2009 Jeremy Hughes. ! See http://factorcode.org/license.txt for BSD license. -USING: tools.test alien.inline alien.inline.private io.files -io.directories kernel ; +USING: alien.inline alien.inline.private io.directories io.files +kernel namespaces tools.test ; IN: alien.inline.tests C-LIBRARY: const @@ -15,8 +15,7 @@ C-FUNCTION: const-int add ( int a, int b ) { 2 1 } [ add ] must-infer-as [ 5 ] [ 2 3 add ] unit-test -<< c-library get library-path dup exists? -[ delete-file ] [ drop ] if >> +DELETE-C-LIBRARY: const C-LIBRARY: cpplib @@ -35,8 +34,7 @@ C-FUNCTION: const-char* hello ( ) { 0 1 } [ hello ] must-infer-as [ "hello world" ] [ hello ] unit-test -<< c-library get library-path dup exists? -[ delete-file ] [ drop ] if >> +DELETE-C-LIBRARY: cpplib C-LIBRARY: compile-error @@ -47,5 +45,4 @@ C-FUNCTION: char* breakme ( ) << [ compile-c-library ] must-fail >> -<< c-library get library-path dup exists? -[ delete-file ] [ drop ] if >> +DELETE-C-LIBRARY: compile-error diff --git a/basis/alien/inline/inline.factor b/basis/alien/inline/inline.factor index 6390884dfb..8043dad24d 100644 --- a/basis/alien/inline/inline.factor +++ b/basis/alien/inline/inline.factor @@ -2,10 +2,10 @@ ! See http://factorcode.org/license.txt for BSD license. USING: accessors alien.inline.compiler alien.inline.types alien.libraries alien.parser arrays assocs combinators effects -fry generalizations grouping io.files io.files.info io.files.temp -kernel lexer locals math math.order math.ranges multiline -namespaces quotations sequences source-files splitting strings -system vocabs.loader words ; +fry generalizations grouping io.directories io.files +io.files.info io.files.temp kernel lexer locals math math.order +math.ranges multiline namespaces quotations sequences +source-files splitting strings system vocabs.loader words ; IN: alien.inline SYMBOL: c-library @@ -85,6 +85,9 @@ PRIVATE> : define-c-include ( str -- ) "#include " prepend c-strings get push ; +: delete-inline-library ( str -- ) + library-path dup exists? [ delete-file ] [ drop ] if ; + SYNTAX: C-LIBRARY: scan define-c-library ; SYNTAX: COMPILE-AS-C++ t library-is-c++ set ; @@ -101,3 +104,5 @@ SYNTAX: C-FUNCTION: function-types-effect define-c-function ; SYNTAX: ;C-LIBRARY compile-c-library ; + +SYNTAX: DELETE-C-LIBRARY: scan delete-inline-library ;