<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">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.<div><br><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">primtype DoubleVec#</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">primop ExtractDoubleVecOp "extractDoubleVec#" GenPrimOp</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp; DoubleVec# -&gt; Int# -&gt; Double#</div></div><div><br></div><div><div>make -r --no-print-directory -f ghc.mk phase=1 phase_1_builds</div><div>/usr/bin/gcc -E &nbsp;-undef -traditional -P -Iincludes &nbsp;-x c compiler/prelude/primops.txt.pp | grep -v '^#pragma GCC' &gt; compiler/prelude/primops.txt</div><div>"inplace/bin/genprimopcode" --data-decl &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt; compiler/prelude/primops.txt &gt; compiler/primop-data-decl.hs-incl</div><div>"inplace/bin/genprimopcode" --primop-tag &nbsp; &nbsp; &nbsp; &nbsp; &lt; compiler/prelude/primops.txt &gt; compiler/primop-tag.hs-incl</div><div>"inplace/bin/genprimopcode" --primop-list &nbsp; &nbsp; &nbsp; &nbsp;&lt; compiler/prelude/primops.txt &gt; compiler/primop-list.hs-incl</div><div>"inplace/bin/genprimopcode" --has-side-effects &nbsp; &lt; compiler/prelude/primops.txt &gt; compiler/primop-has-side-effects.hs-incl</div><div>"inplace/bin/genprimopcode" --out-of-line &nbsp; &nbsp; &nbsp; &nbsp;&lt; compiler/prelude/primops.txt &gt; compiler/primop-out-of-line.hs-incl</div><div>"inplace/bin/genprimopcode" --commutable &nbsp; &nbsp; &nbsp; &nbsp; &lt; compiler/prelude/primops.txt &gt; compiler/primop-commutable.hs-incl</div><div>"inplace/bin/genprimopcode" --code-size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt; compiler/prelude/primops.txt &gt; compiler/primop-code-size.hs-incl</div><div>"inplace/bin/genprimopcode" --can-fail &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt; compiler/prelude/primops.txt &gt; compiler/primop-can-fail.hs-incl</div><div>"inplace/bin/genprimopcode" --strictness &nbsp; &nbsp; &nbsp; &nbsp; &lt; compiler/prelude/primops.txt &gt; compiler/primop-strictness.hs-incl</div><div>"inplace/bin/genprimopcode" --primop-primop-info &lt; compiler/prelude/primops.txt &gt; compiler/primop-primop-info.hs-incl</div><div>genprimopcode: ppType: can't handle: TyApp "DoubleVec#" []</div><div><br></div><div>make[1]: *** [compiler/primop-primop-info.hs-incl] Error 1</div><div>make[1]: *** Deleting file `compiler/primop-primop-info.hs-incl'</div><div>make: *** [all] Error 2</div><div><br></div><div>And:</div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">primop ExtractDoubleVecOp "extractDoubleVec#" GenPrimOp</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp; DoubleVec# a -&gt; Int# -&gt; Double#</div></div><div><br></div><div><div>make -r --no-print-directory -f ghc.mk phase=1 phase_1_builds</div><div>/usr/bin/gcc -E &nbsp;-undef -traditional -P -Iincludes &nbsp;-x c compiler/prelude/primops.txt.pp | grep -v '^#pragma GCC' &gt; compiler/prelude/primops.txt</div><div>"inplace/bin/genprimopcode" --data-decl &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt; compiler/prelude/primops.txt &gt; compiler/primop-data-decl.hs-incl</div><div>"inplace/bin/genprimopcode" --primop-tag &nbsp; &nbsp; &nbsp; &nbsp; &lt; compiler/prelude/primops.txt &gt; compiler/primop-tag.hs-incl</div><div>"inplace/bin/genprimopcode" --primop-list &nbsp; &nbsp; &nbsp; &nbsp;&lt; compiler/prelude/primops.txt &gt; compiler/primop-list.hs-incl</div><div>"inplace/bin/genprimopcode" --has-side-effects &nbsp; &lt; compiler/prelude/primops.txt &gt; compiler/primop-has-side-effects.hs-incl</div><div>"inplace/bin/genprimopcode" --out-of-line &nbsp; &nbsp; &nbsp; &nbsp;&lt; compiler/prelude/primops.txt &gt; compiler/primop-out-of-line.hs-incl</div><div>"inplace/bin/genprimopcode" --commutable &nbsp; &nbsp; &nbsp; &nbsp; &lt; compiler/prelude/primops.txt &gt; compiler/primop-commutable.hs-incl</div><div>"inplace/bin/genprimopcode" --code-size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt; compiler/prelude/primops.txt &gt; compiler/primop-code-size.hs-incl</div><div>"inplace/bin/genprimopcode" --can-fail &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt; compiler/prelude/primops.txt &gt; compiler/primop-can-fail.hs-incl</div><div>"inplace/bin/genprimopcode" --strictness &nbsp; &nbsp; &nbsp; &nbsp; &lt; compiler/prelude/primops.txt &gt; compiler/primop-strictness.hs-incl</div><div>"inplace/bin/genprimopcode" --primop-primop-info &lt; compiler/prelude/primops.txt &gt; compiler/primop-primop-info.hs-incl</div><div>genprimopcode: ppType: can't handle: TyApp "DoubleVec#" [TyVar "a"]</div><div><br></div><div>make[1]: *** [compiler/primop-primop-info.hs-incl] Error 1</div><div>make[1]: *** Deleting file `compiler/primop-primop-info.hs-incl'</div><div>make: *** [all] Error 2</div></div><div><br></div><div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Paul Monday</div><div>Parallel Scientific, LLC.</div><div><a href="mailto:paul.monday@parsci.com">paul.monday@parsci.com</a></div><div><br></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br><div><div>On Oct 10, 2011, at 5:10 PM, Daniel Fischer wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>On Tuesday 11 October 2011, 00:57:39, Paul Monday wrote:<br><blockquote type="cite">There seems to be plenty of documentation around on implementing a new<br></blockquote><blockquote type="cite">primop, much of it needs some tweaking as files have moved and such. &nbsp;I<br></blockquote><blockquote type="cite">can't seem to find any documentation about how to implement primtypes<br></blockquote><blockquote type="cite">though.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">For example, I want to experiment with a new primtype "DV#", my<br></blockquote><blockquote type="cite">assumption that the type was first declared in the primops.txt.pp seems<br></blockquote><blockquote type="cite">incorrect. &nbsp;So I'm trying to backtrack a bit and see where primtypes<br></blockquote><blockquote type="cite">first appear, I'm hoping someone can at least give me a pointer :-)<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">For example:<br></blockquote><blockquote type="cite">./compiler/prelude/primops.txt.pp<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Add the following:<br></blockquote><blockquote type="cite">primtype DoubleVec# a<br></blockquote><br>Has a type parameter<br><br><blockquote type="cite"><br></blockquote><blockquote type="cite">Compiles fine<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Add a primop on the type:<br></blockquote><blockquote type="cite">primop ExtractDoubleVecOp "extractDoubleVec#" GenPrimOp<br></blockquote><blockquote type="cite"> &nbsp;&nbsp;DoubleVec# -&gt; Int# -&gt; Double#<br></blockquote><br>Used without type parameter<br><br>Might be as simple as that.<br><br><blockquote type="cite">genprimopcode: ppType: can't handle: TyApp "DoubleVec#" []<br></blockquote><br></div></blockquote></div><br></div></div></body></html>