From bb0c4d94e05663e44af8e1da5abb1822bcb24a60 Mon Sep 17 00:00:00 2001 From: Erik Charlebois Date: Wed, 14 Apr 2010 00:08:10 -0700 Subject: [PATCH] Replace info and 2info macros with simple inline words. --- extra/opencl/opencl.factor | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/extra/opencl/opencl.factor b/extra/opencl/opencl.factor index ddcf16a3b2..91a264e85c 100644 --- a/extra/opencl/opencl.factor +++ b/extra/opencl/opencl.factor @@ -1,10 +1,9 @@ ! Copyright (C) 2010 Erik Charlebois. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors alien alien.accessors alien.c-types arrays -byte-arrays combinators combinators.smart continuations destructors -fry io.encodings.ascii io.encodings.string kernel libc locals macros -math math.order multiline opencl.ffi prettyprint sequences -specialized-arrays typed variants namespaces ; +USING: accessors alien alien.c-types arrays byte-arrays combinators +combinators.smart destructors io.encodings.ascii io.encodings.string +kernel libc locals math namespaces opencl.ffi sequences shuffle +specialized-arrays variants ; IN: opencl SPECIALIZED-ARRAYS: void* char size_t ; @@ -16,17 +15,25 @@ ERROR: cl-error err ; : cl-not-null ( err -- ) dup f = [ cl-error ] [ drop ] if ; inline + +: info-data-size ( handle name info-quot -- size_t ) + [ 0 f 0 ] dip [ call cl-success ] 2keep drop *size_t ; inline -MACRO: info ( info-quot lift-quot -- quot ) - [ dup ] dip '[ 2dup 0 f 0 _ '[ _ call cl-success ] keep - *size_t dup _ '[ f _ call cl-success ] keep - _ call ] ; - -MACRO: 2info ( info-quot lift-quot -- quot ) - [ dup ] dip '[ 3dup 0 f 0 _ '[ _ call cl-success ] keep - *size_t dup _ '[ f _ call cl-success ] keep - _ call ] ; - +: info-data-bytes ( handle name info-quot size -- bytes ) + swap [ dup f ] dip [ call cl-success ] 3keep 2drop ; inline + +: info ( handle name info-quot lift-quot -- value ) + [ 3dup info-data-size info-data-bytes ] dip call ; inline + +: 2info-data-size ( handle1 handle2 name info-quot -- size_t ) + [ 0 f 0 ] dip [ call cl-success ] 2keep drop *size_t ; inline + +: 2info-data-bytes ( handle1 handle2 name info-quot size -- bytes ) + swap [ dup f ] dip [ call cl-success ] 3keep 2drop ; inline + +: 2info ( handle1 handle2 name info_quot lift_quot -- value ) + [ 4dup 2info-data-size 2info-data-bytes ] dip call ; inline + : info-bool ( handle name quot -- ? ) [ *uint CL_TRUE = ] info ; inline