diff --git a/extra/cuda/libraries/libraries.factor b/extra/cuda/libraries/libraries.factor index 21eef3d46e..41afac8602 100644 --- a/extra/cuda/libraries/libraries.factor +++ b/extra/cuda/libraries/libraries.factor @@ -4,7 +4,7 @@ USING: accessors alien.data alien.parser arrays assocs byte-arrays classes.struct classes.struct.private combinators combinators.short-circuit cuda cuda.ffi fry generalizations io.backend kernel locals macros math namespaces sequences -variants words ; +variants vocabs.loader words ; QUALIFIED-WITH: alien.c-types c IN: cuda.libraries @@ -201,3 +201,5 @@ ERROR: bad-cuda-abi abi ; : add-cuda-library ( name abi path -- ) normalize-path <cuda-library> dup name>> cuda-libraries get-global set-at ; + +{ "cuda.libraries" "prettyprint" } "cuda.prettyprint" require-when diff --git a/extra/cuda/prettyprint/prettyprint.factor b/extra/cuda/prettyprint/prettyprint.factor new file mode 100644 index 0000000000..a802c21b2b --- /dev/null +++ b/extra/cuda/prettyprint/prettyprint.factor @@ -0,0 +1,29 @@ +USING: accessors alien.prettyprint combinators +combinators.short-circuit cuda.libraries cuda.syntax definitions +effects kernel prettyprint.backend prettyprint.sections see +see.private sequences words ; +IN: cuda.prettyprint + +PREDICATE: cuda-function-word < word + def>> { [ length 14 = ] [ last \ cuda-invoke eq? ] } 1&& ; + +: pprint-cuda-library ( library -- ) + [ \ CUDA-LIBRARY: [ text ] pprint-prefix ] when* ; + +: pprint-cuda-function ( word quot -- ) + [ + <block "(" text + [ def>> third ] [ stack-effect in>> ] bi + pprint-function-args + ")" text block> + ] bi ; inline + +M: cuda-function-word definer drop \ CUDA-FUNCTION: \ ; ; +M: cuda-function-word definition drop f ; +M: cuda-function-word synopsis* + { + [ seeing-word ] + [ definer. ] + [ [ pprint-word ] pprint-cuda-function ] + } cleave ; + diff --git a/extra/cuda/syntax/syntax.factor b/extra/cuda/syntax/syntax.factor index baf7b18ec8..6c886b751e 100644 --- a/extra/cuda/syntax/syntax.factor +++ b/extra/cuda/syntax/syntax.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2010 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. -USING: alien.parser cuda cuda.libraries io.backend -fry kernel lexer namespaces parser ; +USING: alien.parser cuda.libraries fry kernel lexer namespaces +parser ; IN: cuda.syntax SYNTAX: CUDA-LIBRARY: