<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Commentaires sur : #!/usr/bin/gcc (bis)</title>
	<atom:link href="http://linux-attitude.fr/post/usrbingcc-bis/feed" rel="self" type="application/rss+xml" />
	<link>http://linux-attitude.fr/post/usrbingcc-bis</link>
	<description>Le libre est un état d&#039;esprit</description>
	<lastBuildDate>Wed, 21 Jul 2010 14:01:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Par : #!/usr/bin/clang</title>
		<link>http://linux-attitude.fr/post/usrbingcc-bis/comment-page-1#comment-277</link>
		<dc:creator>#!/usr/bin/clang</dc:creator>
		<pubDate>Mon, 24 Nov 2008 02:50:51 +0000</pubDate>
		<guid isPermaLink="false">http://linux-attitude.fr/post/usrbingcc-bis#comment-277</guid>
		<description>&lt;p&gt;Avec clang/llvm: :)&lt;/p&gt;


&lt;pre&gt;#!/bin/sh
tail -n+3 &quot;$0&quot;&#124;clang -emit-llvm -o -&#124;llvm-as&#124;lli - &quot;$@&quot;; exit $?
//
// Code C
//
#include &lt;stdio.h&gt;
int main(int argc, char** argv)
{
        printf( &quot;Appel de %s avec %d arguments\n&quot;, argv[0], argc-1 );
        return 0;
}&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>Avec clang/llvm: :)</p>
<pre>#!/bin/sh
tail -n+3 "$0"|clang -emit-llvm -o -|llvm-as|lli - "$@"; exit $?
//
// Code C
//
#include &lt;stdio.h&gt;
int main(int argc, char** argv)
{
        printf( "Appel de %s avec %d arguments\n", argv[0], argc-1 );
        return 0;
}</pre>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Peck</title>
		<link>http://linux-attitude.fr/post/usrbingcc-bis/comment-page-1#comment-275</link>
		<dc:creator>Peck</dc:creator>
		<pubDate>Sun, 23 Nov 2008 21:32:53 +0000</pubDate>
		<guid isPermaLink="false">http://linux-attitude.fr/post/usrbingcc-bis#comment-275</guid>
		<description>&lt;p&gt;@MadX : pas mal, mais l&#039;inconvénient est que du coup le code C c&#039;est pas distribuable. De plus il prends les paramètres pour gcc et pas pour le binaire (cela peut être un avantage comme un inconvénient).&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>@MadX : pas mal, mais l&#8217;inconvénient est que du coup le code C c&#8217;est pas distribuable. De plus il prends les paramètres pour gcc et pas pour le binaire (cela peut être un avantage comme un inconvénient).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : fred</title>
		<link>http://linux-attitude.fr/post/usrbingcc-bis/comment-page-1#comment-273</link>
		<dc:creator>fred</dc:creator>
		<pubDate>Sat, 22 Nov 2008 11:10:21 +0000</pubDate>
		<guid isPermaLink="false">http://linux-attitude.fr/post/usrbingcc-bis#comment-273</guid>
		<description>&lt;p&gt;Sinon, il y a aussi l&#039;option - run de &lt;a href=&quot;http://bellard.org/tcc/&quot;&gt;tcc&lt;/a&gt; .&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;!/usr/local/bin/tcc -run&lt;/li&gt;
&lt;/ol&gt;</description>
		<content:encoded><![CDATA[<p>Sinon, il y a aussi l&#8217;option &#8211; run de <a href="http://bellard.org/tcc/">tcc</a> .</p>
<ol>
<li>!/usr/local/bin/tcc -run</li>
</ol>
]]></content:encoded>
	</item>
	<item>
		<title>Par : MadX</title>
		<link>http://linux-attitude.fr/post/usrbingcc-bis/comment-page-1#comment-272</link>
		<dc:creator>MadX</dc:creator>
		<pubDate>Fri, 21 Nov 2008 18:59:14 +0000</pubDate>
		<guid isPermaLink="false">http://linux-attitude.fr/post/usrbingcc-bis#comment-272</guid>
		<description>&lt;p&gt;C&#039;et marrant, j&#039;avais fait le même genre de truc tout simplement en bash:&lt;/p&gt;


&lt;p&gt;&lt;code&gt;#!/bin/bash&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;# Just-In-Time C Compiling&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;# or almost....&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;tmp=/tmp/jitc.$$&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;file=`basename $1&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;bin=$tmp/${file%.c}&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;shift&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;mkdir -p $tmp&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;cat $file &#124; tail -n+2 &gt; $tmp/$file&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;gcc -o &quot;$bin&quot; $@ &quot;$tmp/$file&quot;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;chmod +x &quot;$bin&quot;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;$bin&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;rm -Rf $tmp&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Jamais testé sur des trucs très complexes par contre :D L&#039;avantage, c&#039;est qu&#039;il suffit de mettre le shebang qui va bien dans le code C, du genre (sur ma machine):&lt;/p&gt;


&lt;p&gt;&lt;code&gt;#!/usr/bin/env /home/madx/dev/jitc/jitc&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;#include &lt;stdio.h&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;int main(int argc, char *argv&lt;a href=&quot;&quot;&gt;&lt;/a&gt;) {&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;  printf(&quot;Hello, world !\n&quot;);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;  return 0;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>C&#8217;et marrant, j&#8217;avais fait le même genre de truc tout simplement en bash:</p>
<p><code>#!/bin/bash</code><br />
<code># Just-In-Time C Compiling</code><br />
<code># or almost....</code><br />
<code>tmp=/tmp/jitc.$$</code><br />
<code>file=`basename $1</code><br />
<code>bin=$tmp/${file%.c}</code><br />
<code>shift</code><br />
<code>mkdir -p $tmp</code><br />
<code>cat $file | tail -n+2 &gt; $tmp/$file</code><br />
<code>gcc -o "$bin" $@ "$tmp/$file"</code><br />
<code>chmod +x "$bin"</code><br />
<code>$bin</code><br />
<code>rm -Rf $tmp</code></p>
<p>Jamais testé sur des trucs très complexes par contre :D L&#8217;avantage, c&#8217;est qu&#8217;il suffit de mettre le shebang qui va bien dans le code C, du genre (sur ma machine):</p>
<p><code>#!/usr/bin/env /home/madx/dev/jitc/jitc</code><br />
<code>#include &lt;stdio.h&gt;</code><br />
<code>int main(int argc, char *argv<a href=""></a>) {</code><br />
<code>  printf("Hello, world !\n");</code><br />
<code>  return 0;</code><br />
<code>}</code></p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using apc (user agent is rejected)
Database Caching using apc

Served from: linux-attitude.fr @ 2010-07-31 03:34:16 -->