<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Jan 19, 2008, at 08:26, Geoffrey S. Knauth wrote:</div><div><i><font class="Apple-style-span" color="#663399">Since updating from svn last night, I can no longer compile mysql-mzscheme glue code. &nbsp;This worked a few days ago. &nbsp;Did something change in mzc recently?</font></i></div><br></div>I built David Van Horn's mysql-drscheme interface using mzc&nbsp;v3.99.0.9 &nbsp;and v372. &nbsp;v372 compiled it OK, v3.99.0.9 did not. &nbsp;In looking through<font class="Apple-style-span" color="#336633"> mysqlclient3m.c generated by v372</font> <i>vs.</i> <font class="Apple-style-span" color="#993300">mysqlclient_ss3m.c generated by 3.99.0.9</font>, the C files were very similar for the first 1300 lines. &nbsp;I noticed a declaration missing from the new one:<div><br class="webkit-block-placeholder"></div><div><font class="Apple-style-span" color="#3300CC">int mysql_refresh (MYSQL * mysql , unsigned int refresh_options ) ;</font>&nbsp;</div><div><br class="webkit-block-placeholder"></div><div>About 100 lines later, I started to see more significant differences. &nbsp;I'll just show one, which is typical.</div><div><br class="webkit-block-placeholder"></div><div><font class="Apple-style-span" size="4"><span class="Apple-style-span" style="font-size: 14px;">C code generated by v3.99.0.9 that fails with a gcc error:</span></font></div><div><br class="webkit-block-placeholder"></div><div><div><font class="Apple-style-span" color="#990000">Scheme_Object * mzc_cffi_0 (int argc , Scheme_Object * * argv ) {</font></div><div><font class="Apple-style-span" color="#990000">&nbsp;&nbsp;/* No conversion */</font></div><div><font class="Apple-style-span" color="#990000">&nbsp;&nbsp;mysql_affected_rows } &nbsp;/* <font class="Apple-style-span" color="#FF3300"><b>error: syntax error before '}' token&nbsp;</b></font>*/</font></div><br></div><div><font class="Apple-style-span" size="4"><span class="Apple-style-span" style="font-size: 14px;">C code generated by v372 that compiled OK:</span></font></div><div><br class="webkit-block-placeholder"></div><div><div><font class="Apple-style-span" color="#336633">Scheme_Object * mzc_cffi_0 (int argc , Scheme_Object * * argv ) {</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;MYSQL * ___arg1 ;&nbsp;</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;unsigned long ___result ;&nbsp;</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;Scheme_Object * converted_result ;&nbsp;</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;DECL_RET_SAVE (Scheme_Object * ) PREPARE_VAR_STACK_ONCE(1);</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;BLOCK_SETUP_TOP((PUSH(converted_result, 0)));</font></div><div><font class="Apple-style-span" color="#336633"># define XfOrM1_COUNT (1)</font></div><div><font class="Apple-style-span" color="#336633"># define SETUP_XfOrM1(x) SETUP(XfOrM1_COUNT)</font></div><div><font class="Apple-style-span" color="#336633"># define BLOCK_SETUP(x) BLOCK_SETUP_once(x)</font></div><div><font class="Apple-style-span" color="#336633"># define FUNCCALL(s, x) FUNCCALL_once(s, x)</font></div><div><font class="Apple-style-span" color="#336633"># define FUNCCALL_EMPTY(x) FUNCCALL_EMPTY_once(x)</font></div><div><font class="Apple-style-span" color="#336633"># define FUNCCALL_AGAIN(x) FUNCCALL_AGAIN_once(x)</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;___arg1 = NULLED_OUT ;&nbsp;</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;converted_result = NULLED_OUT ;&nbsp;</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;if (((((argv [0 ] ) ) == (scheme_false ) ) || ((((Scheme_Type ) (((((long ) (argv [0 ] ) ) &amp; 0x1 ) ? (Scheme_Type ) scheme_integer_type : ((Scheme_Object * ) (argv [0 ] ) ) -&gt; type ) ) == (Scheme_Type ) (scheme_cpointer_type ) ) || ((Scheme_Type ) (((((long ) (argv [0 ] ) ) &amp; 0x1 ) ? (Scheme_Type ) scheme_integer_type : ((Scheme_Object * ) (argv [0 ] ) ) -&gt; type ) ) == (Scheme_Type ) (scheme_offset_cpointer_type ) ) ) &amp;&amp; ((Scheme_Type ) (((((long ) ((((Scheme_Cptr * ) (argv [0 ] ) ) -&gt; type ) ) ) &amp; 0x1 ) ? (Scheme_Type ) scheme_integer_type : ((Scheme_Object * ) ((((Scheme_Cptr * ) (argv [0 ] ) ) -&gt; type ) ) ) -&gt; type ) ) == (Scheme_Type ) (scheme_byte_string_type ) ) &amp;&amp; ! (strcmp ((((Scheme_Simple_Object * ) ((((Scheme_Cptr * ) (argv [0 ] ) ) -&gt; type ) ) ) -&gt; u . byte_str_val . string_val ) , "MYSQL" ) ) ) ) ) {</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp; &nbsp;___arg1 = ((! (((argv [0 ] ) ) == (scheme_false ) ) ) ? (((Scheme_Cptr * ) (argv [0 ] ) ) -&gt; val ) : ((void * ) 0 ) ) ;&nbsp;</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;}</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;else {</font></div><div><font class="Apple-style-span" color="#336633"># &nbsp; define XfOrM3_COUNT (0+XfOrM1_COUNT)</font></div><div><font class="Apple-style-span" color="#336633"># &nbsp; define SETUP_XfOrM3(x) SETUP_XfOrM1(x)</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp; &nbsp;FUNCCALL_EMPTY(scheme_wrong_type ("affected-rows" , "cpointer of type \"MYSQL\" or #f" , 0 , argc , argv ) );&nbsp;</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp; &nbsp;RET_VALUE_START (((void * ) 0 ) ) RET_VALUE_END ;&nbsp;</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;}</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;{</font></div><div><font class="Apple-style-span" color="#336633"># &nbsp; define XfOrM2_COUNT (0+XfOrM1_COUNT)</font></div><div><font class="Apple-style-span" color="#336633"># &nbsp; define SETUP_XfOrM2(x) SETUP_XfOrM1(x)</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp; &nbsp;___result = FUNCCALL(SETUP_XfOrM2(_), mysql_affected_rows (___arg1 ) );&nbsp;</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp; &nbsp;converted_result = FUNCCALL(SETUP_XfOrM2(_), scheme_make_integer_value_from_unsigned (___result ) );&nbsp;</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;}</font></div><div><font class="Apple-style-span" color="#336633">&nbsp;&nbsp;RET_VALUE_START (converted_result ) RET_VALUE_END ;&nbsp;</font></div><div><font class="Apple-style-span" color="#336633"># undef BLOCK_SETUP</font></div><div><font class="Apple-style-span" color="#336633"># undef FUNCCALL</font></div><div><font class="Apple-style-span" color="#336633"># undef FUNCCALL_EMPTY</font></div><div><font class="Apple-style-span" color="#336633"># undef FUNCCALL_AGAIN</font></div><div><font class="Apple-style-span" color="#336633">}</font></div><br></div><div><br class="webkit-block-placeholder"></div><div><br class="webkit-block-placeholder"></div></body></html>