No, I've tried with and without the type parameter, it's the same "type" of 
error leading me to think there is something I'm missing about prim type 
declarations, here are the variations.


primtype DoubleVec#

primop ExtractDoubleVecOp "extractDoubleVec#" GenPrimOp
   DoubleVec# -> Int# -> Double#

make -r --no-print-directory -f ghc.mk phase=1 phase_1_builds
/usr/bin/gcc -E  -undef -traditional -P -Iincludes  -x c 
compiler/prelude/primops.txt.pp | grep -v '^#pragma GCC' > 
compiler/prelude/primops.txt
"inplace/bin/genprimopcode" --data-decl          < compiler/prelude/primops.txt 
> compiler/primop-data-decl.hs-incl
"inplace/bin/genprimopcode" --primop-tag         < compiler/prelude/primops.txt 
> compiler/primop-tag.hs-incl
"inplace/bin/genprimopcode" --primop-list        < compiler/prelude/primops.txt 
> compiler/primop-list.hs-incl
"inplace/bin/genprimopcode" --has-side-effects   < compiler/prelude/primops.txt 
> compiler/primop-has-side-effects.hs-incl
"inplace/bin/genprimopcode" --out-of-line        < compiler/prelude/primops.txt 
> compiler/primop-out-of-line.hs-incl
"inplace/bin/genprimopcode" --commutable         < compiler/prelude/primops.txt 
> compiler/primop-commutable.hs-incl
"inplace/bin/genprimopcode" --code-size          < compiler/prelude/primops.txt 
> compiler/primop-code-size.hs-incl
"inplace/bin/genprimopcode" --can-fail           < compiler/prelude/primops.txt 
> compiler/primop-can-fail.hs-incl
"inplace/bin/genprimopcode" --strictness         < compiler/prelude/primops.txt 
> compiler/primop-strictness.hs-incl
"inplace/bin/genprimopcode" --primop-primop-info < compiler/prelude/primops.txt 
> compiler/primop-primop-info.hs-incl
genprimopcode: ppType: can't handle: TyApp "DoubleVec#" []

make[1]: *** [compiler/primop-primop-info.hs-incl] Error 1
make[1]: *** Deleting file `compiler/primop-primop-info.hs-incl'
make: *** [all] Error 2

And:
primop ExtractDoubleVecOp "extractDoubleVec#" GenPrimOp
   DoubleVec# a -> Int# -> Double#

make -r --no-print-directory -f ghc.mk phase=1 phase_1_builds
/usr/bin/gcc -E  -undef -traditional -P -Iincludes  -x c 
compiler/prelude/primops.txt.pp | grep -v '^#pragma GCC' > 
compiler/prelude/primops.txt
"inplace/bin/genprimopcode" --data-decl          < compiler/prelude/primops.txt 
> compiler/primop-data-decl.hs-incl
"inplace/bin/genprimopcode" --primop-tag         < compiler/prelude/primops.txt 
> compiler/primop-tag.hs-incl
"inplace/bin/genprimopcode" --primop-list        < compiler/prelude/primops.txt 
> compiler/primop-list.hs-incl
"inplace/bin/genprimopcode" --has-side-effects   < compiler/prelude/primops.txt 
> compiler/primop-has-side-effects.hs-incl
"inplace/bin/genprimopcode" --out-of-line        < compiler/prelude/primops.txt 
> compiler/primop-out-of-line.hs-incl
"inplace/bin/genprimopcode" --commutable         < compiler/prelude/primops.txt 
> compiler/primop-commutable.hs-incl
"inplace/bin/genprimopcode" --code-size          < compiler/prelude/primops.txt 
> compiler/primop-code-size.hs-incl
"inplace/bin/genprimopcode" --can-fail           < compiler/prelude/primops.txt 
> compiler/primop-can-fail.hs-incl
"inplace/bin/genprimopcode" --strictness         < compiler/prelude/primops.txt 
> compiler/primop-strictness.hs-incl
"inplace/bin/genprimopcode" --primop-primop-info < compiler/prelude/primops.txt 
> compiler/primop-primop-info.hs-incl
genprimopcode: ppType: can't handle: TyApp "DoubleVec#" [TyVar "a"]

make[1]: *** [compiler/primop-primop-info.hs-incl] Error 1
make[1]: *** Deleting file `compiler/primop-primop-info.hs-incl'
make: *** [all] Error 2

Paul Monday
Parallel Scientific, LLC.
paul.mon...@parsci.com




On Oct 10, 2011, at 5:10 PM, Daniel Fischer wrote:

> On Tuesday 11 October 2011, 00:57:39, Paul Monday wrote:
>> There seems to be plenty of documentation around on implementing a new
>> primop, much of it needs some tweaking as files have moved and such.  I
>> can't seem to find any documentation about how to implement primtypes
>> though.
>> 
>> For example, I want to experiment with a new primtype "DV#", my
>> assumption that the type was first declared in the primops.txt.pp seems
>> incorrect.  So I'm trying to backtrack a bit and see where primtypes
>> first appear, I'm hoping someone can at least give me a pointer :-)
>> 
>> For example:
>> ./compiler/prelude/primops.txt.pp
>> 
>> Add the following:
>> primtype DoubleVec# a
> 
> Has a type parameter
> 
>> 
>> Compiles fine
>> 
>> Add a primop on the type:
>> primop ExtractDoubleVecOp "extractDoubleVec#" GenPrimOp
>>   DoubleVec# -> Int# -> Double#
> 
> Used without type parameter
> 
> Might be as simple as that.
> 
>> genprimopcode: ppType: can't handle: TyApp "DoubleVec#" []
> 

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to