<?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>Comentários sobre: Bug ou comportamento indesejado?</title>
	<atom:link href="http://blog.triveos.com.br/2005/10/31/bug-ou-comportamento-indesejado/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.triveos.com.br/2005/10/31/bug-ou-comportamento-indesejado/</link>
	<description>Python e Django — Cursos e Desenvolvimento Web</description>
	<lastBuildDate>Sat, 04 Feb 2012 15:37:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Por: Roger</title>
		<link>http://blog.triveos.com.br/2005/10/31/bug-ou-comportamento-indesejado/comment-page-1/#comment-100</link>
		<dc:creator>Roger</dc:creator>
		<pubDate>Fri, 04 Nov 2005 08:15:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.triveos.com.br/?p=36#comment-100</guid>
		<description>Is the work you are doing going to apply to the S60 smartphones too? From the announcements yesterday, it seems that Nokia is settling on python as its language of choice.

Alas for me. I am one of those who found python hazy and ruby clear, so I turned down the ruby path and know nothing of python.

Roger</description>
		<content:encoded><![CDATA[<p>Is the work you are doing going to apply to the S60 smartphones too? From the announcements yesterday, it seems that Nokia is settling on python as its language of choice.</p>
<p>Alas for me. I am one of those who found python hazy and ruby clear, so I turned down the ruby path and know nothing of python.</p>
<p>Roger</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Osvaldo Santana Neto</title>
		<link>http://blog.triveos.com.br/2005/10/31/bug-ou-comportamento-indesejado/comment-page-1/#comment-99</link>
		<dc:creator>Osvaldo Santana Neto</dc:creator>
		<pubDate>Wed, 02 Nov 2005 00:05:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.triveos.com.br/?p=36#comment-99</guid>
		<description>Ok, vou mandar pra lá, mas já chegou na lista sim:

http://thread.gmane.org/gmane.comp.python.brasil/12593</description>
		<content:encoded><![CDATA[<p>Ok, vou mandar pra lá, mas já chegou na lista sim:</p>
<p><a href="http://thread.gmane.org/gmane.comp.python.brasil/12593" rel="nofollow">http://thread.gmane.org/gmane.comp.python.brasil/12593</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Gustavo Sverzut Barbieri</title>
		<link>http://blog.triveos.com.br/2005/10/31/bug-ou-comportamento-indesejado/comment-page-1/#comment-98</link>
		<dc:creator>Gustavo Sverzut Barbieri</dc:creator>
		<pubDate>Tue, 01 Nov 2005 23:49:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.triveos.com.br/?p=36#comment-98</guid>
		<description>Qual lista você mandou o email? Na python brasil ainda não chegou nada.

Bom, manda o patch renovado para lá que eu vejo o que ficou &quot;faltando&quot; :-)</description>
		<content:encoded><![CDATA[<p>Qual lista você mandou o email? Na python brasil ainda não chegou nada.</p>
<p>Bom, manda o patch renovado para lá que eu vejo o que ficou &#8220;faltando&#8221; :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Osvaldo Santana Neto</title>
		<link>http://blog.triveos.com.br/2005/10/31/bug-ou-comportamento-indesejado/comment-page-1/#comment-97</link>
		<dc:creator>Osvaldo Santana Neto</dc:creator>
		<pubDate>Tue, 01 Nov 2005 21:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.triveos.com.br/?p=36#comment-97</guid>
		<description>Ah! e eu comentei no meu e-mail que iria retirar as referências à INDT do patch :P :)</description>
		<content:encoded><![CDATA[<p>Ah! e eu comentei no meu e-mail que iria retirar as referências à INDT do patch :P :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Osvaldo Santana Neto</title>
		<link>http://blog.triveos.com.br/2005/10/31/bug-ou-comportamento-indesejado/comment-page-1/#comment-96</link>
		<dc:creator>Osvaldo Santana Neto</dc:creator>
		<pubDate>Tue, 01 Nov 2005 21:22:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.triveos.com.br/?p=36#comment-96</guid>
		<description>Aqui não é um local muito agradável para discutir patches mas vamos lá :)

Já mudei o patch para usar &#039;else if&#039; e tirei os continues. Pra você ver como fazer um patch &#039;nas coxas&#039; só aumenta o trabalho :)

Não entendi o que você quis dizer no parágrafo que fala sobre espaços em branco e sobre os testes duplicados (criei uma thread lá na lista, vamos mudar a discussão pra lá?)

strcpy(): Eu sei que é harmful, mas mantive a mesma construção do original. Sim, o import.c original usa strcpy() e a verificação de &quot;strlen()</description>
		<content:encoded><![CDATA[<p>Aqui não é um local muito agradável para discutir patches mas vamos lá :)</p>
<p>Já mudei o patch para usar &#8216;else if&#8217; e tirei os continues. Pra você ver como fazer um patch &#8216;nas coxas&#8217; só aumenta o trabalho :)</p>
<p>Não entendi o que você quis dizer no parágrafo que fala sobre espaços em branco e sobre os testes duplicados (criei uma thread lá na lista, vamos mudar a discussão pra lá?)</p>
<p>strcpy(): Eu sei que é harmful, mas mantive a mesma construção do original. Sim, o import.c original usa strcpy() e a verificação de &#8220;strlen()</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Gustavo Sverzut Barbieri</title>
		<link>http://blog.triveos.com.br/2005/10/31/bug-ou-comportamento-indesejado/comment-page-1/#comment-95</link>
		<dc:creator>Gustavo Sverzut Barbieri</dc:creator>
		<pubDate>Tue, 01 Nov 2005 20:02:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.triveos.com.br/?p=36#comment-95</guid>
		<description>Eu também acho o comportamento incoerente.

Sobre o Patch, legal, mas alguns comentários que podem te ajudar a tê-lo aceito:

&lt;b&gt;
-           if (strcmp(filetab-&gt;suffix, &quot;.pyc&quot;) == 0)
+           if (strcmp(filetab-&gt;suffix, &quot;.pyc&quot;) == 0) {
                filetab-&gt;suffix = &quot;.pyo&quot;;
+                continue;
+            }
+           if (strcmp(filetab-&gt;suffix, &quot;.pyo&quot;) == 0) {
+               filetab-&gt;suffix = &quot;.pyc&quot;;
+                continue;
+            }
&lt;/b&gt;

pode ser substituído por:

&lt;b&gt;
+           else if (strcmp(filetab-&gt;suffix, &quot;.pyo&quot;) == 0)
+               filetab-&gt;suffix = &quot;.pyc&quot;;
&lt;/b&gt;

eliminando os &quot;&lt;i&gt;continue&lt;/i&gt;&quot;.

Depois, tem algo não relevante, em &quot;&lt;i&gt;/* Try .py */&lt;/i&gt;&quot; juntamente com a linha em branco acima. Idem para &quot;&lt;i&gt;/* Try pyo/pyc */&lt;/i&gt;&quot; e as mudanças em &lt;i&gt;whitespace&lt;/i&gt; no bloco todo! Aliás, a repetição deste bloco deveria ser feita dentro do primeiro, para os valores diferentes &quot;&lt;i&gt;(!Py_OptimizeFlag)&lt;/i&gt;&quot;, você está conferindo a mesma coisa duas vezes! :-).

Tirar o &quot;&lt;i&gt;/* XXX INDT */&lt;/i&gt;&quot; ajuda :-)


&lt;i&gt;strcpy() is harmful!&lt;/i&gt; Troque por:

&lt;b&gt;
strncpy(module_filename, filename, MAXPATHLEN);
module_filename[ MAXPATHLEN ] = &#039;&#039;; /* vide man strncpy por que */
&lt;/b&gt;

com isso a comparação &quot;&lt;i&gt;strlen(module_filename) &quot; torna-se sempre verdadeira (no seu código atual se ela for falsa --&gt; SEGFAULT!)

Então você deve trocar a comparação por &lt;/i&gt;&lt;i&gt;MAXPATHLEN-1&lt;/i&gt;, para caber o &quot;c&quot; ou &quot;o&quot; da extensão.

Uma pequena optimização nesta última parte é fazer:

&lt;b&gt;
size_t l = strlen( module_filename );

if ( l

eliminando, assim, cópia desnecessária das strings e ainda chamadas de função.

Valeu!&lt;/b&gt;</description>
		<content:encoded><![CDATA[<p>Eu também acho o comportamento incoerente.</p>
<p>Sobre o Patch, legal, mas alguns comentários que podem te ajudar a tê-lo aceito:</p>
<p><b><br />
-           if (strcmp(filetab-&gt;suffix, &#8220;.pyc&#8221;) == 0)<br />
+           if (strcmp(filetab-&gt;suffix, &#8220;.pyc&#8221;) == 0) {<br />
                filetab-&gt;suffix = &#8220;.pyo&#8221;;<br />
+                continue;<br />
+            }<br />
+           if (strcmp(filetab-&gt;suffix, &#8220;.pyo&#8221;) == 0) {<br />
+               filetab-&gt;suffix = &#8220;.pyc&#8221;;<br />
+                continue;<br />
+            }<br />
</b></p>
<p>pode ser substituído por:</p>
<p><b><br />
+           else if (strcmp(filetab-&gt;suffix, &#8220;.pyo&#8221;) == 0)<br />
+               filetab-&gt;suffix = &#8220;.pyc&#8221;;<br />
</b></p>
<p>eliminando os &#8220;<i>continue</i>&#8220;.</p>
<p>Depois, tem algo não relevante, em &#8220;<i>/* Try .py */</i>&#8221; juntamente com a linha em branco acima. Idem para &#8220;<i>/* Try pyo/pyc */</i>&#8221; e as mudanças em <i>whitespace</i> no bloco todo! Aliás, a repetição deste bloco deveria ser feita dentro do primeiro, para os valores diferentes &#8220;<i>(!Py_OptimizeFlag)</i>&#8220;, você está conferindo a mesma coisa duas vezes! :-).</p>
<p>Tirar o &#8220;<i>/* XXX INDT */</i>&#8221; ajuda :-)</p>
<p><i>strcpy() is harmful!</i> Troque por:</p>
<p><b><br />
strncpy(module_filename, filename, MAXPATHLEN);<br />
module_filename[ MAXPATHLEN ] = &#8221;; /* vide man strncpy por que */<br />
</b></p>
<p>com isso a comparação &#8220;<i>strlen(module_filename) &#8221; torna-se sempre verdadeira (no seu código atual se ela for falsa &#8211;&gt; SEGFAULT!)</p>
<p>Então você deve trocar a comparação por </i><i>MAXPATHLEN-1</i>, para caber o &#8220;c&#8221; ou &#8220;o&#8221; da extensão.</p>
<p>Uma pequena optimização nesta última parte é fazer:</p>
<p><b><br />
size_t l = strlen( module_filename );</p>
<p>if ( l</p>
<p>eliminando, assim, cópia desnecessária das strings e ainda chamadas de função.</p>
<p>Valeu!</b></p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Osvaldo Santana Neto</title>
		<link>http://blog.triveos.com.br/2005/10/31/bug-ou-comportamento-indesejado/comment-page-1/#comment-94</link>
		<dc:creator>Osvaldo Santana Neto</dc:creator>
		<pubDate>Tue, 01 Nov 2005 19:06:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.triveos.com.br/?p=36#comment-94</guid>
		<description>Sidnei,

Eu criei um patch de sugestão em
http://pymaemo.sourceforge.net/cgi-bin/moin.cgi/OsvaldoSantanaNeto

Roger,

Thanks for the quote in your blog. I&#039;ll try to publish my posts in english in near future to make reader&#039;s life easier :)</description>
		<content:encoded><![CDATA[<p>Sidnei,</p>
<p>Eu criei um patch de sugestão em<br />
<a href="http://pymaemo.sourceforge.net/cgi-bin/moin.cgi/OsvaldoSantanaNeto" rel="nofollow">http://pymaemo.sourceforge.net/cgi-bin/moin.cgi/OsvaldoSantanaNeto</a></p>
<p>Roger,</p>
<p>Thanks for the quote in your blog. I&#8217;ll try to publish my posts in english in near future to make reader&#8217;s life easier :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Roger</title>
		<link>http://blog.triveos.com.br/2005/10/31/bug-ou-comportamento-indesejado/comment-page-1/#comment-93</link>
		<dc:creator>Roger</dc:creator>
		<pubDate>Tue, 01 Nov 2005 18:43:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.triveos.com.br/?p=36#comment-93</guid>
		<description>Trackback to Internet Tablet Users blog: http://www.internettablettalk.com/blog/?p=130</description>
		<content:encoded><![CDATA[<p>Trackback to Internet Tablet Users blog: <a href="http://www.internettablettalk.com/blog/?p=130" rel="nofollow">http://www.internettablettalk.com/blog/?p=130</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Sidnei da Silva</title>
		<link>http://blog.triveos.com.br/2005/10/31/bug-ou-comportamento-indesejado/comment-page-1/#comment-92</link>
		<dc:creator>Sidnei da Silva</dc:creator>
		<pubDate>Tue, 01 Nov 2005 18:36:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.triveos.com.br/?p=36#comment-92</guid>
		<description>Realmente esse comportamento nao eh consistente.

Eu concordo que o comportamento do zipimport eh o mais adequado.

Eu ja tropecei no mesmo problema mas nao tinha notado que o zipimport se comportava de forma diferente. Seria otimo se isso fosse consertado.</description>
		<content:encoded><![CDATA[<p>Realmente esse comportamento nao eh consistente.</p>
<p>Eu concordo que o comportamento do zipimport eh o mais adequado.</p>
<p>Eu ja tropecei no mesmo problema mas nao tinha notado que o zipimport se comportava de forma diferente. Seria otimo se isso fosse consertado.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

