Hi,
(Please ignore my (quite a bit) earlier complaint about green-card (it
was another case of version mismatch)).
There is a more persistent problem with green-card-2.0. It generates c
files, as follows:
Foo.gc ==> Foo.hs, Foo.c, Foo.h
which is a bit confusing for make:
Foo.hs ==> Foo.o
Foo.c ==> Foo.o
Also it generates Foo.c even when it is empty.
The patch below modifies green-card-2.0 so that the generated c file
is named <stem>_gc.c, and is only generated if it will be non-empty.
The patch also removes a spurious ^G from one of the makefiles -
consequently the patch has a ^G in it. To ensure it will go through
email okay I have uuencoded the patch! Use uudecode to decode it.
Tim
--
begin 644 green-card-2.0-patch
M9&EF9B`M<B`M8R!G<F5E;BUC87)D+3(N,"YE87)L:65R+TUA:V5F:6QE(&=R
M965N+6-A<F0M,BXP+TUA:V5F:6QE"BHJ*B!G<F5E;BUC87)D+3(N,"YE87)L
M:65R+TUA:V5F:6QE"5=E9"!*86X@,C$@,#0Z,3<Z,C$@,3DY.`HM+2T@9W)E
M96XM8V%R9"TR+C`O36%K969I;&4)4V%T($9E8B`R,2`Q-#HR-#HS-B`Q.3DX
M"BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@,BPV("HJ*BH*("`*("!A;&[email protected]*("`)
M0&9O<B!I(&EN("0H4U5"[email protected]!D;R!<"B$@"2`@)"A-04M%*2`M0R`D
M)&D@+68@36%K969I;&4N9&ES="`D*$U&3$%'4RD@)$`[(%P*("`)9&]N90HM
M+2T@,BPV("TM+2T*("`*("!A;&[email protected]*("`)0&9O<B!I(&EN("0H4U5"1$E2
[email protected]!D;R!<"B$@"2`@)"A-04M%*2`M0R`D)&D@+68@36%K969I;&4@)"A-
M1DQ!1U,I("1`.R!<"B`@"61O;F4*3VYL>2!I;B!G<F5E;BUC87)D+3(N,"YE
M87)L:65R.B!G<F5E;BUC87)D"F1I9F8@+7(@+6,@9W)E96XM8V%R9"TR+C`N
M96%R;&EE<B]L:6(O36%K969I;&4@9W)E96XM8V%R9"TR+C`O;&EB+TUA:V5F
M:6QE"BHJ*B!G<F5E;BUC87)D+3(N,"YE87)L:65R+VQI8B]-86ME9FEL90E7
M960@2F%N(#(Q(#`T.C$X.C,W(#$Y.3@*+2TM(&=R965N+6-A<F0M,BXP+VQI
M8B]-86ME9FEL90E3870@1F5B(#(Q(#$T.C(U.C$X(#$Y.3@**BHJ*BHJ*BHJ
M*BHJ*BHJ"BHJ*B`R+#8@*BHJ*@H@(`H@(&%L;"`Z.@H@(`E`9F]R(&D@:6X@
M)"A354)$25)3*2`[(&1O(%P*(2`)("`D*$U!2T4I("U#("0D:2`M9B!-86ME
M9FEL92YD:7-T("0H349,04=3*2`D0#L@7`H@(`ED;VYE"BTM+2`R+#8@+2TM
M+0H@(`H@(&%L;"`Z.@H@(`E`9F]R(&D@:6X@)"A354)$25)3*2`[(&1O(%P*
M(2`)("`D*$U!2T4I("U#("0D:2`M9B!-86ME9FEL92`D*$U&3$%'4RD@)$`[
M(%P*("`)9&]N90I/;FQY(&EN(&=R965N+6-A<F0M,BXP+VQI8CH@36%K969I
M;&5^"F1I9F8@+7(@+6,@9W)E96XM8V%R9"TR+C`N96%R;&EE<B]L:6(O9VAC
M+TUA:V5F:6QE(&=R965N+6-A<F0M,BXP+VQI8B]G:&,O36%K969I;&4**BHJ
M(&=R965N+6-A<F0M,BXP+F5A<FQI97(O;&EB+V=H8R]-86ME9FEL90E7960@
M2F%N(#(Q(#`T.C$X.C4R(#$Y.3@*+2TM(&=R965N+6-A<F0M,BXP+VQI8B]G
M:&,O36%K969I;&4)4V%T($9E8B`R."`Q-#HS.3HQ,2`Q.3DX"BHJ*BHJ*BHJ
M*BHJ*BHJ*@HJ*BH@,2PX("HJ*BH*(2`'(R`H1TY5*2!-86ME9FEL92!F;W(@
M1W)E96X@0V%R9"`H1TA#*0H@(`H@(",C(R!5<V5R('-E<G9I8V5A8FQE('!A
M<G1S("`C(R,*("`C2$,@("`@("`@/2`O<&%T:"]T;R]G:&,*(2!(0R`@("`@
M("`@/2`O9G!T;V]L<R]G:&,O9')I=F5R+V=H8PH@($=2145.0T%21"`]("XN
M+RXN+W-R8R]G<F5E;BUC87)D"B`@(R!/<'1I;VYS('1O(&-O;7!I;&4@=&AE
M('-O=7)C97,@=VET:"X*("`*+2TM(#$L."`M+2TM"B$@(R`H1TY5*2!-86ME
M9FEL92!F;W(@1W)E96X@0V%R9"`H1TA#*0H@(`H@(",C(R!5<V5R('-E<G9I
M8V5A8FQE('!A<G1S("`C(R,*("`C2$,@("`@("`@/2`O<&%T:"]T;R]G:&,*
M(2!(0R`@("`@("`@/2!G:&,*("!'4D5%3D-!4D0@/2`N+B\N+B]S<F,O9W)E
M96XM8V%R9`H@(",@3W!T:6]N<R!T;R!C;VUP:6QE('1H92!S;W5R8V5S('=I
M=&@N"B`@"D]N;'D@:6X@9W)E96XM8V%R9"TR+C`O;&EB+V=H8SH@36%K969I
M;&5^"D]N;'D@:6X@9W)E96XM8V%R9"TR+C`O;&EB+VAU9W,Z($UA:V5F:6QE
M?@ID:69F("UR("UC(&=R965N+6-A<F0M,BXP+F5A<FQI97(O<W)C+TUA:V5F
M:6QE(&=R965N+6-A<F0M,BXP+W-R8R]-86ME9FEL90HJ*BH@9W)E96XM8V%R
M9"TR+C`N96%R;&EE<B]S<F,O36%K969I;&4)5V5D($IA;B`R,2`P-#HQ,#HU
M,R`Q.3DX"BTM+2!G<F5E;BUC87)D+3(N,"]S<F,O36%K969I;&4)4W5N($9E
M8B`R,B`Q-#HP-SHP,B`Q.3DX"BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@,2PQ-"`J
M*BHJ"B`@(R`H1TY5*2!-86ME9FEL92!F;W(@1W)E96X@0V%R9"`H1TA#*0H@
M(`H@(",C(R!5<V5R('-E<G9I8V5A8FQE('!A<G1S("`C(R,*(2!(0R`@("`@
M(#T@+W!A=&@O=&\O9VAC"B`@0T,@("`@("`](&=C8PH@(%)-("`@("`@/2!R
M;0H@(`H@(",@3W!T:6]N<R!T;R!C;VUP:6QE('1H92!S;W5R8V5S('=I=&@N
M"B`@"B`@(R!&;W(@1TA#.@HA(%-20U](0U]/4%13("`@("`]("UR96-O;7`@
M+4\*("!,97A?2$-?3U!44R`@("`@/2`M2#$P;0H@(%!A<G-E7TA#7T]05%,@
M("`]("U(,3!M("UF9VQA<V=O=RUE>'1S"B`@4')O8V5S<U](0U]/4%13(#T@
M+4@X;0HM+2T@,2PQ-"`M+2TM"B`@(R`H1TY5*2!-86ME9FEL92!F;W(@1W)E
M96X@0V%R9"`H1TA#*0H@(`H@(",C(R!5<V5R('-E<G9I8V5A8FQE('!A<G1S
M("`C(R,*(2!(0R`@("`@(#T@9VAC"B`@0T,@("`@("`](&=C8PH@(%)-("`@
M("`@/2!R;0H@(`H@(",@3W!T:6]N<R!T;R!C;VUP:6QE('1H92!S;W5R8V5S
M('=I=&@N"B`@"B`@(R!&;W(@1TA#.@HA(%-20U](0U]/4%13("`@("`]("UR
M96-O;7`@+4\@+6DO=7-R+VQO8V%L+V9P=&]O;',O;&EB+VEM<&]R=',O97AT
M<PH@($QE>%](0U]/4%13("`@("`]("U(,3!M"B`@4&%R<V5?2$-?3U!44R`@
M(#T@+4@Q,&T@+69G;&%S9V]W+65X=',*("!0<F]C97-S7TA#7T]05%,@/2`M
M2#AM"D]N;'D@:6X@9W)E96XM8V%R9"TR+C`O<W)C.B!-86ME9FEL97X*9&EF
M9B`M<B`M8R!G<F5E;BUC87)D+3(N,"YE87)L:65R+W-R8R]0<F]C97-S+FQH
M<R!G<F5E;BUC87)D+3(N,"]S<F,O4')O8V5S<RYL:',**BHJ(&=R965N+6-A
M<F0M,BXP+F5A<FQI97(O<W)C+U!R;V-E<W,N;&AS"5=E9"!*86X@,C$@,#0Z
M,34Z-#8@,3DY.`HM+2T@9W)E96XM8V%R9"TR+C`O<W)C+U!R;V-E<W,N;&AS
M"5-A="!&96(@,C@@,30Z,S,Z,38@,3DY.`HJ*BHJ*BHJ*BHJ*BHJ*BH**BHJ
M(#0P+#0U("HJ*BH*+2TM(#0P+#0Y("TM+2T*("`*("!<8F5G:6Y[8V]D97T*
M("`**R!W<FET94YO;D5M<'1Y1FEL92`Z.B!&:6QE4&%T:"`M/B!3=')I;F<@
M+3X@24\@*"D**R!W<FET94YO;D5M<'1Y1FEL92!?(%M=(#T@<F5T=7)N("@I
M"BL@=W)I=&5.;VY%;7!T>49I;&4@<"!S("`]('=R:71E1FEL92!P(',**R`*
M("!P<F]C97-S1FEL92`Z.B!487)G970@+3X@0F]O;"`M/B!";V]L("T^($)O
M;VP@+3X@6U-T<FEN9UT@+3X@4W1R:6YG("T^(%-T<FEN9R`M/B!)3R`H*0H@
M('!R;V-E<W-&:6QE('1A<F=E="!D96)U9R!V97)B;W-E('-A9F4@<&%T:"!F
M:6QE(&]F:6QE(#T@9&\*("`@(&UB<F%W9&5C;',@/"T@=')Y4F5A9"!V97)B
M;W-E('!A=&@@9FEL90HJ*BHJ*BHJ*BHJ*BHJ*BH**BHJ(#8V+#<R("HJ*BH*
M("`@("`@("!C;VYS=%!R;V-S(#T@8V]N8V%T36%P("AG96Y#;VYS=',@9&ES
M1&5F<RD@8V]N<W1S"B`@("`@("`@<')O8W,@("`@("`]('!R;W1O4')O8W,@
M*RL@8V]N<W10<F]C<PH@("`@("`@(&AF:6QE("`@/2!O9FEL92LK(BYH<R(*
M(2`@("`@("!C9FEL92`@(#T@;V9I;&4K*R(N8R(*("`*("`@("`@96UI="!D
M96)U9R`B4&%R<V5D(B`H<VAO=T1E8VQS(')A=V1E8VQS*0H@("`@("!E;6ET
M(&1E8G5G(")0<F]T;W,B("AR96YD97(@*'9S97!-87`@<'!0<F]T;U!R;V,@
M<')O=&]0<F]C<RDI"BTM+2`W,"PW-B`M+2TM"B`@("`@("`@8V]N<W10<F]C
M<R`](&-O;F-A=$UA<"`H9V5N0V]N<W1S(&1I<T1E9G,I(&-O;G-T<PH@("`@
M("`@('!R;V-S("`@("`@/2!P<F]T;U!R;V-S("LK(&-O;G-T4')O8W,*("`@
M("`@("!H9FEL92`@(#T@;V9I;&4K*R(N:',B"B$@("`@("`@8V9I;&4@("`]
M(&]F:6QE*RLB7V=C+F,B"B`@"B`@("`@(&5M:70@9&5B=6<@(E!A<G-E9"(@
M*'-H;W=$96-L<R!R87=D96-L<RD*("`@("`@96UI="!D96)U9R`B4')O=&]S
M(B`H<F5N9&5R("AV<V5P36%P('!P4')O=&]0<F]C('!R;W1O4')O8W,I*0HJ
M*BHJ*BHJ*BHJ*BHJ*BH**BHJ(#@U+#DQ("HJ*BH*("`@("`@("`@8V%S92!T
M87)G970@;V8*("`@("`@("`@($=(0U]C87-M("T^(&1O"B`@("`@("`@("`@
M=W)I=&5&:6QE(&AF:6QE(&AA<VME;&P*(2`@("`@("`@("!W<FET949I;&4@
M8V9I;&4@8PH@("`@("`@("`@(&5M:70@9&5B=6<@(DAA<VME;&P@;W5T<'5T
M(B!H87-K96QL"B`@("`@("`@("`@96UI="!D96)U9R`B0R!O=71P=70B(&,*
M("`@("`@("`@("`@=VAE<F4*+2TM(#@Y+#DU("TM+2T*("`@("`@("`@8V%S
M92!T87)G970@;V8*("`@("`@("`@($=(0U]C87-M("T^(&1O"B`@("`@("`@
M("`@=W)I=&5&:6QE(&AF:6QE(&AA<VME;&P*(2`@("`@("`@("!W<FET94YO
M;D5M<'1Y1FEL92!C9FEL92!C"B`@("`@("`@("`@96UI="!D96)U9R`B2&%S
M:V5L;"!O=71P=70B(&AA<VME;&P*("`@("`@("`@("!E;6ET(&1E8G5G(")#
M(&]U='!U="(@8PH@("`@("`@("`@("!W:&5R90HJ*BHJ*BHJ*BHJ*BHJ*BH*
M*BHJ(#DY+#$P-2`J*BHJ"B`@"B`@("`@("`@("!'2$-?8V-A;&P@+3X@9&\*
M("`@("`@("`@("!W<FET949I;&4@:&9I;&4@:&%S:V5L;`HA("`@("`@("`@
M('=R:71E1FEL92!C9FEL92!C"B`@("`@("`@("`@=W)I=&5&:6QE("AO9FEL
M92`K*R`B+F@B*2`@<')O=&]S"B`@("`@("`@("`@=W)I=&5&:6QE("AO9FEL
M92`K*R`B7V=H8RYH(BD@('!R;W1O<U]G:&,*("`@("`@("`@("!E;6ET(&1E
M8G5G(")(87-K96QL(&]U='!U="(@:&%S:V5L;`HM+2T@,3`S+#$P.2`M+2TM
M"B`@"B`@("`@("`@("!'2$-?8V-A;&P@+3X@9&\*("`@("`@("`@("!W<FET
M949I;&4@:&9I;&4@:&%S:V5L;`HA("`@("`@("`@('=R:71E3F]N16UP='E&
M:6QE(&-F:6QE(&,*("`@("`@("`@("!W<FET949I;&4@*&]F:6QE("LK("(N
M:"(I("!P<F]T;W,*("`@("`@("`@("!W<FET949I;&4@*&]F:6QE("LK(")?
M9VAC+F@B*2`@<')O=&]S7V=H8PH@("`@("`@("`@(&5M:70@9&5B=6<@(DAA
M<VME;&P@;W5T<'5T(B!H87-K96QL"BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@,3$X
M+#$R-"`J*BHJ"B`@("`@("`@("`@('!R;W1O<U]G:&,@/2!R96YD97(@*'9C
M870@:&5A9&5R<RD*("`@("`@("`@($AU9W,@+3X@9&\*("`@("`@("`@("!W
M<FET949I;&4@:&9I;&4@:&%S:V5L;"`*(2`@("`@("`@("!W<FET949I;&4@
M8V9I;&4@8PH@("`@("`@("`@(&5M:70@9&5B=6<@(DAA<VME;&P@;W5T<'5T
M(B!H87-K96QL"B`@("`@("`@("`@96UI="!D96)U9R`B0R!O=71P=70B(&,*
M("`@("`@("`@("`@=VAE<F4*+2TM(#$R,BPQ,C@@+2TM+0H@("`@("`@("`@
M("!P<F]T;W-?9VAC(#T@<F5N9&5R("AV8V%T(&AE861E<G,I"B`@("`@("`@
M("!(=6=S("T^(&1O"B`@("`@("`@("`@=W)I=&5&:6QE(&AF:6QE(&AA<VME
M;&P@"B$@("`@("`@("`@=W)I=&5.;VY%;7!T>49I;&4@8V9I;&4@8PH@("`@
M("`@("`@(&5M:70@9&5B=6<@(DAA<VME;&P@;W5T<'5T(B!H87-K96QL"B`@
M("`@("`@("`@96UI="!D96)U9R`B0R!O=71P=70B(&,*("`@("`@("`@("`@
M=VAE<F4**BHJ*BHJ*BHJ*BHJ*BHJ"BHJ*B`Q,S8L,30R("HJ*BH*("`@("`@
M("`@("`@("`@("`@("`@("`@("`@("`I"B`@"B`@("`@("`@("!.2$,@+3X@
M9&\*(2`@("`@("`@("!W<FET949I;&4@8V9I;&4@8PH@("`@("`@("`@('=R
M:71E1FEL92!H9FEL92!H87-K96QL"B`@("`@("`@("`@96UI="!D96)U9R`B
M2&%S:V5L;"!O=71P=70B(&AA<VME;&P*("`@("`@("`@("!E;6ET(&1E8G5G
M(")#(&]U='!U="(@8PHM+2T@,30P+#$T-B`M+2TM"B`@("`@("`@("`@("`@
M("`@("`@("`@("`@("`@*0H@(`H@("`@("`@("`@3DA#("T^(&1O"B$@("`@
M("`@("`@=W)I=&5.;VY%;7!T>49I;&4@8V9I;&4@8PH@("`@("`@("`@('=R
M:71E1FEL92!H9FEL92!H87-K96QL"B`@("`@("`@("`@96UI="!D96)U9R`B
M2&%S:V5L;"!O=71P=70B(&AA<VME;&P*("`@("`@("`@("!E;6ET(&1E8G5G
M(")#(&]U='!U="(@8PI/;FQY(&EN(&=R965N+6-A<F0M,BXP+W-R8SH@4')O
M8V5S<RYL:',N;W)I9PI/;FQY(&EN(&=R965N+6-A<F0M,BXP+W-R8SH@4')O
*8V5S<RYL:'-^"@``
`
end