This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: remove htdocs/java/faq-portugese.html


On Sun, 6 Apr 2003, Gerald Pfeifer wrote:
>> Approval, assuming you've made an attempt to contact the original
>> author or most recent active maintainer.  We should warn them
>> before removing it, and give them a last chance to update it.
> I have contacted the original submitter (ivanfg@bigfoot.com) and will
> wait a couple of days.

He responded quickly and asked me to wait one or two weeks; now we've
waited three and given this, the fact that he hadn't updated it for years
(which cost many of us time), your response and explicit approval by Tom
as well, I'm installing the following:

  2003-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* faq-portugese.html: Remove.
	* faq.html: Remove link to faq-portugese.html.

Gerald

Index: faq-portugese.html
===================================================================
RCS file: faq-portugese.html
diff -N faq-portugese.html
--- faq-portugese.html	31 Oct 2002 14:47:43 -0000	1.18
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,948 +0,0 @@
-<html>
-
-<head>
-   <title>The GCJ FAQ</title>
-</head>
-
-<body>
-
-
-<h1>O FAQ GCJ</h1>
-A &uacute;ltima vers&atilde;o deste documento sempre est&aacute; dispon&iacute;vel
-em <a href="http://gcc.gnu.org/java/faq-portugese.html";>http://gcc.gnu.org/java/faq-portugese.html</a></p>
-<p>This FAQ is also available in <a href="faq.html">English</a>.</p>
-<ol>
-<li>
-<a href="#1_0">Quest&otilde;es Gerais</a></li>
-
-<ol>
-<li>
-<a href="#1_1">Que licen&ccedil;a &eacute; usada para o libgcj?</a></li>
-
-<li>
-<a href="#1_2">Como fa&ccedil;o para relatar um bug no libgcj?</a></li>
-
-<li>
-<a href="#1_3">Como posso contribuir com o libgcj?</a></li>
-
-<li>
-<a href="#1_4">Por que o libgcj n&atilde;o &eacute; parte do GCC?</a></li>
-
-<li>
-<a href="#1_5">gcj e libgcj ir&atilde;o funcionar na minha m&aacute;quina?</a></li>
-
-<li>
-<a href="#1_6">Como fa&ccedil;o para depurar meu programa Java?</a></li>
-</ol>
-
-<li>
-<a href="#2_0">Suporte a Caracter&iacute;sticas Java</a>&nbsp;</li>
-
-<ol>
-<li>
-<a href="#2_1">Quais APIs do Java s&atilde;o suportadas? Qu&atilde;o completo
-&eacute; o suporte?&nbsp;</a></li>
-
-<li>
-<a href="#2_2">GCJ suporta o uso direto de m&eacute;todos nativos C &agrave;
-la JNI? CNI parece um tanto quanto dif&iacute;cil de usar.</a></li>
-
-<li>
-<a href="#2_3">Por que GCJ usa CNI?</a></li>
-
-<li>
-<a href="#2_4">Qual &eacute; o estado do suporte ao AWT?</a></li>
-
-<li>
-<a href="#2_5">E sobre o suporte ao Swing?</a></li>
-
-<li>
-<a href="#2_6">Que suporte existe para RMI?</a></li>
-
-<li>
-<a href="#2_7">Posso usar qualquer c&oacute;digo de outros projetos OpenSource
-para suplementar as caracter&iacute;sticas atuais do libgcj?</a></li>
-
-<li>
-<a href="#2_8">Quais caracter&iacute;sticas da linguagem Java s&atilde;o/n&atilde;o
-s&atilde;o suportadas?</a></li>
-</ol>
-
-<li>
-<a href="#3_0">Quest&otilde;es de Constru&ccedil;&atilde;o&nbsp;</a>&nbsp;</li>
-
-<ol>
-<li>
-<a href="#3_1">Preciso de algo mais recente que o &uacute;ltimo lan&ccedil;amento;
-Como devo constru&iacute;-lo?</a></li>
-
-<li>
-<a href="#3_2">Bug do <i>linkador</i> no Solaris</a>&nbsp;</li>
-</ol>
-
-<li>
-<a href="#4_0">GCJ:&nbsp; Quest&otilde;es de Compila&ccedil;&atilde;o/V&iacute;nculo</a><i>&nbsp;</i></li>
-
-<ol>
-<li>
-<a href="#4_1">Por que recebo erros de&nbsp; <tt>undefined reference to
-`main'</tt>?</a>&nbsp;</li>
-
-<li>
-<a href="#4_2">GCJ pode manipular apenas c&oacute;digo fonte?</a></li>
-
-<li>
-<a href="#4_3">"gcj -C" n&atilde;o parece funcionar como javac/jikes. O
-que acontece?&nbsp;</a></li>
-
-<li>
-<a href="#4_4">Onde o GCJ procura por arquivos? Como gcj decide se compila
-arquivos .class ou .java?</a></li>
-
-<li>
-<a href="#4_6">Estou tendo erros de v&iacute;nculo!</a>&nbsp;</li>
-</ol>
-
-<li>
-<a href="faq.html#5_0">Quest&otilde;es
-de <i>Runtime</i> (tempo de execu&ccedil;&atilde;o)</a></li>
-
-<ol>
-<li>
-<a href="#5_1">Est&aacute; ocorrendo "<i>core dumping"</i> com meu programa!
-O que acontece?</a>&nbsp;</li>
-
-<li>
-<a href="#5_2">Quando eu rodo o depurador obtenho um&nbsp; SEGV no GC!
-O que acontece?</a></li>
-
-<li>
-<a href="#5_3">H&aacute; pouco compilei e fiz o <i>benchmark</i> de minha
-aplica&ccedil;&atilde;o Java e ela parece estar rodando mais lento do que
-XXX JIT JVM. H&aacute; algo que eu possa fazer para faz&ecirc;-la rodar
-mais r&aacute;pido?</a></li>
-
-<li>
-<a href="#5_4">Posso tra&ccedil;ar a Coleta de Lixo ("Garbage Collection")?&nbsp;</a></li>
-
-<li>
-<a href="#5_5">Como posso aumentar os tamanhos m&aacute;ximo e inicial
-da <i>heap</i>?</a></li>
-
-<li>
-<a href="#5_6">Posso tra&ccedil;ar minha aplica&ccedil;&atilde;o?</a>&nbsp;</li>
-</ol>
-<a href="#6_0">T&oacute;picos de Programa&ccedil;&atilde;o&nbsp;</a>
-<ol>
-<li>
-<a href="#6_1">H&aacute; algum exemplo de como usar CNI?</a></li>
-</ol>
-</ol>
-
-<table BORDER=0 CELLPADDING=4 WIDTH="95%" >
-<tr BGCOLOR="#B0D0FF">
-<th ALIGN=LEFT>
-<h2>
-<a NAME="1_0"></a>Quest&otilde;es Gerais</h2>
-</th>
-</tr>
-</table>
-
-<dl>
-<h3>
-<a NAME="1_1"></a>1.1 Que licen&ccedil;a &eacute; usada para o libgcj?</h3>
-
-<dd>
-libgcj &eacute; distribu&iacute;do sob a licen&ccedil;a GPL.</dd>
-
-<dt>
-
-<hr></dt>
-
-<h3>
-<a NAME="1_2"></a>1.2 Como fa&ccedil;o para relatar um bug no libgcj?</h3>
-
-<dl>
-<dt>
-libgcj tem um&amp;nbsp; <a href="http://gcc.gnu.org/cgi-bin/gnatsweb.pl?user=guest&amp;password=gcc&amp;database=java&cmd=login";>banco
-de dados de bugs, Gnats,</a> correspondente que voc&ecirc; pode folhear.
-Voc&ecirc; tamb&eacute;m pode submeter um novo bug a partir da p&aacute;gina
-do Gnats.
-<hr></dt>
-</dl>
-
-<h3>
-<a NAME="1_3"></a>1.3 Como posso contribuir com o libgcj?</h3>
-
-<dl>
-<dt>
-Voc&ecirc; pode enviar reparos simples como remendos. Por favor, siga as
-seguintes <a href="http://gcc.gnu.org/contribute.html";>Diretrizes GCC
-para submiss&atilde;o de remendos</a>. "For more complex changes, you must
-sign copyright over to the Free Software Foundation." Veja a&nbsp; p&aacute;gina de <a href="contrib.html">contribui&ccedil;&otilde;es</a>
-para detalhes.
-<hr></dt>
-</dl>
-
-<h3>
-<a NAME="1_4"></a>1.4 Por que o libgcj n&atilde;o &eacute; parte do GCC?</h3>
-
-<dd>
-Por v&aacute;rias raz&otilde;es menores. &Eacute; prov&aacute;vel que libgcj
-termine no GCC em algum ponto no futuro.</dd>
-
-<dt>
-
-<hr></dt>
-
-<h3>
-<a NAME="1_5"></a>1.5 gcj e libgcj ir&atilde;o funcionar na minha m&aacute;quina?</h3>
-
-<dd>
-&Eacute; sabido que gcj e&nbsp; libgcj funcionam mais ou menos com IA-32
-e Sparc Solaris, bem como com Alpha and PowerPC Linux. Podem funcionar
-em outros sistemas, mas n&oacute;s n&atilde;o sabemos. Genericamente falando,
-a convers&atilde;o para um novo sistema n&atilde;o deveria ser dif&iacute;cil.&nbsp;
-Poderia ser uma boa id&eacute;ia para um volunt&aacute;rio.</dd>
-
-<dt>
-
-<hr></dt>
-
-<h3>
-<a NAME="1_6"></a>1.6 Como posso depurar meu programa Java?</h3>
-
-<dd>
-GDB inclui
-suporte para depura&ccedil;&atilde;o de programas Java compilados com gcj.&nbsp;
-Para Linux, voc&ecirc; precisar&aacute; usar uma vers&atilde;o recente
-do gdb&nbsp; <a href="ftp://sources.redhat.com/pub/gdb/snapshots/";>ftp://sources.redhat.com/pub/gdb/snapshots/</a>
-porque o padr&atilde;o&nbsp; 4.18 n&atilde;o tem suporte para linhas de
-execu&ccedil;&atilde;o (<i>threads)&nbsp;</i> Linux.</dd>
-
-<dt>
-&nbsp;</dt>
-</dl>
-
-<table BORDER=0 CELLPADDING=4 WIDTH="95%" >
-<tr BGCOLOR="#B0D0FF">
-<th ALIGN=LEFT>
-<h2>
-<a NAME="2_0"></a>Suporte a Caracter&iacute;sticas Java</h2>
-</th>
-</tr>
-</table>
-
-<dl>
-<dd>
-&nbsp;</dd>
-</dl>
-
-<h3>
-<a NAME="2_1"></a>2.1 Quais APIs do Java s&atilde;o suportadas? Qu&atilde;o
-completo &eacute; o suporte?</h3>
-
-<dl>
-<dd>
-<a href="mailto:mdw@cs.berkeley.edu";>Matt Welsh</a> escreve:</dd>
-
-<dl>
-<dd>
-Simplesmente olhe no diret&oacute;rio 'libjava' do libgcj e veja quais
-classes est&atilde;o l&aacute;. A maior parte das classes relacionadas
-a&nbsp; GUI n&atilde;o est&aacute; l&aacute; ainda, &eacute; verdade, mas
-muitas das outras s&atilde;o f&aacute;ceis de adicionar caso ainda n&atilde;o
-existam.</dd>
-
-<dt>
-&nbsp;</dt>
-
-<dd>
-Eu acho que &eacute; importante salientar que h&aacute; uma grande diferen&ccedil;a
-entre Java e as muitas bibliotecas que Java suporta. Infelizmente, a promessa
-da Sun de "escreva uma vez, rode em qualquer lugar" assume muito mais que
-uma&nbsp; JVM: voc&ecirc; necessitar&aacute; do conjunto completo de bibliotecas
-JDK. Considerando que novas APIs Java surgem toda semana, est&aacute; ficando
-imposs&iacute;vel rastrear tudo.</dd>
-
-<dt>
-&nbsp;</dt>
-
-<dd>
-Para fazer as coisas ainda piores, voc&ecirc; n&atilde;o pode simplesmente
-rodar as classes JDK da Sun em qualquer velha JVM -- elas assumem que uma
-penca de m&eacute;todos nativos est&atilde;o definidos tamb&eacute;m .</dd>
-
-<dl>
-<dt>
-Desde que essa necessidade de m&eacute;todo nativo n&atilde;o est&aacute;
-definida pela especifica&ccedil;&atilde;o JDK, voc&ecirc; est&aacute; efetivamente
-limitado a usar a JVM da Sun se quiser usar as bibliotecas JDK da Sun.
-Oh sim -- voc&ecirc;&nbsp; tamb&eacute;m poderia reimplementar todos esses
-m&eacute;todos nativos, certificando-se de que eles se comportam exatamente
-como aqueles feitos pela Sun. Note que eles n&atilde;o tem documenta&ccedil;&atilde;o.&nbsp;</dt>
-</dl>
-</dl>
-</dl>
-
-<hr>
-<h3>
-<a NAME="2_2"></a>2.2 GCJ suporta o uso direto de m&eacute;todos nativos
-C &agrave; la JNI? CNI parece um tanto quanto dif&iacute;cil de usar.</h3>
-
-<blockquote>Atualmente gcj n&atilde;o suporta JNI, mas isto pode mudar
-no futuro.
-<p><a href="mailto:per@bothner.com";>Per Bothner</a> explica o futuro dessas
-interfaces nativas:
-<br>&nbsp;
-<blockquote>(1) &Eacute; uma meta que gcj deveria suportar tanto JNI quanto
-CNI. Fazer isso n&atilde;o &eacute; dif&iacute;cil em princ&iacute;pio,
-especialmente lidar com JNI- usando bibliotecas que s&atilde;o conhecidas
-no tempo de v&iacute;nculo ("link") (desde que voc&ecirc; pode simplesmente
-gerar fun&ccedil;&otilde;es CNI inv&oacute;lucras&nbsp; que chamam os m&eacute;todos
-JNI correspondentes).&nbsp; Entretanto h&aacute; ainda certo trabalho tedioso
-que precisa ser feito para JNI.</blockquote>
-</blockquote>
-
-<dl>
-<blockquote>
-<blockquote>(2) N&oacute;s preferimos CNI, a medida que &eacute; mais eficiente,
-mais f&aacute;cil de escrever, e (pelo menos potencialmente) mais f&aacute;cil
-de depurar.&nbsp;
-<p>(3) Voc&ecirc; poderia em princ&iacute;pio escrever c&oacute;digo C++
-que implementa ambas interfaces CNI e JNI usando a m&aacute;gica do pr&eacute;-processamento.&nbsp;
-A quest&atilde;o &eacute; se n&oacute;s podemos faz&ecirc;-lo de tal maneira
-que n&atilde;o fosse mais simples&nbsp; e limpo do que simplesmente manter
-duas c&oacute;pias do c&oacute;digo. N&oacute;s n&atilde;o sabemos ainda.</blockquote>
-</blockquote>
-
-<dl>
-<dd>
-</dd>
-</dl>
-</dl>
-
-<hr>
-<h3>
-<a NAME="2_3"></a><font size=+1>2.3 Por que GCJ usa CNI?</font></h3>
-&nbsp;
-<blockquote><a href="mailto:per@bothner.com";>Per Bothner</a> explica:</blockquote>
-
-<blockquote>
-<blockquote>N&oacute;s usamos CNI porque n&oacute;s achamos que &eacute;
-a melhor solu&ccedil;&atilde;o, especialmente para uma implementa&ccedil;&atilde;o
-Java que &eacute; baseada na id&eacute;ia de que Java &eacute; apenas outra
-linguagem de programa&ccedil;&atilde;o que pode ser implementada usando
-t&eacute;cnicas padr&atilde;o de compila&ccedil;&atilde;o. Dado isso, e
-a id&eacute;ia que linguagens implementadas usando GCC deveriam ser compat&iacute;veis
-onde isso faz sentido, segue que a conven&ccedil;&atilde;o de chamadas
-do Java deveria ser t&atilde;o similar e t&atilde;o pr&aacute;tica quanto
-&agrave;quelas usadas por outras linguagens, especialmente C++; desde que
-n&oacute;s podemos pensar em Java como um subconjunto de C++. CNI &eacute;
-apenas um conjunto de fun&ccedil;&otilde;es auxiliares e conven&ccedil;&otilde;es
-constru&iacute;das sobre a id&eacute;ia de que Java e C++ tem a *mesma*
-conven&ccedil;&atilde;o de chamadas e layout de objetos; seus bin&aacute;rios
-s&atilde;o compat&iacute;veis. (Esta &eacute; uma simplifica&ccedil;&atilde;o,
-mas se aproxima o bastante.)</blockquote>
-</blockquote>
-
-<hr>
-<h3>
-<a NAME="2_4"></a>2.4 Qual &eacute; o estado do suporte ao AWT?</h3>
-
-<dl>
-<dd>
-Atualmente n&atilde;o h&aacute; suporte para o AWT.&nbsp; Arte pr&eacute;via
-que poderia ser usada para isto requer JNI. Poss&iacute;veis pontos de
-partida s&atilde;o dados a seguir.</dd>
-
-<dl>&nbsp;
-<br>QtAWT
-<br>&nbsp;
-<dt>
-QtAWT( ) fornece uma implementa&ccedil;&atilde;o baseada em Qt das classes
-pares usadas pelos componentes AWT. Isto consiste de um conjunto de classes
-Java que implementam as interfaces especificadas em java.awt.peer, e algumas
-poucas outras como java.awt.Toolkit. As classes s&atilde;o implementadas
-numa mistura de c&oacute;digo Java e c&oacute;digo nativo, com os c&oacute;digos
-nativos sendo chamados via JNI. Devido ao fato de que ele adere &agrave;
-APIs padr&atilde;o tais como JNI, QtAWT deveria ser port&aacute;vel o bastante
-para funcionar com qualquer JVM 1.1. Uma vez que os caminhos para a classe
-e para a biblioteca tenham sido ajustados corretamente, o QtAWT pode ser
-usado ao inv&eacute;s dos pares nativos fornecidos com sua JVM, ajustando
-a propriedade awt.toolkit para apontar para a implementa&ccedil;&atilde;o
-QtToolkit.&nbsp;</dt>
-</dl>
-
-<dl>
-<dd>
-<a href="http://developer.kde.org/language-bindings/java/qtawt/developer.html";>http://developer.kde.org/language-bindings/java/qtawt/developer.html</a></dd>
-
-<dt>
-&nbsp;</dt>
-
-<dt>
-GTK AWT</dt>
-
-<dd>
-Alguns membros do projeto Mozilla / Blackdown est&atilde;o fazendo algumas
-tentativas aqui (login gr&aacute;tis requerido):</dd>
-
-<dd>
-<a href="http://developer.java.sun.com/developer/restricted/java2cs/contribs/";>http://developer.java.sun.com/developer/restricted/java2cs/contribs/</a></dd>
-
-<dt>
-&nbsp;</dt>
-
-<dd>
-O projeto Classpath est&aacute;&nbsp; fazendo&nbsp; AWT com pares GTK ,
-e eles est&atilde;o procurando por algu&eacute;m que queira fazer Classpath
-funcionar com Kaffe ... <a href="http://www.gnu.org/software/classpath/";>http://www.gnu.org/software/classpath/</a></dd>
-
-<dt>
-&nbsp;</dt>
-</dl>
-
-<dl>
-<dt>
-<a href="http://www.kaffe.org/";>Kaffe</a> AWT</dt>
-
-<dd>
-Kaffe tem uma implementa&ccedil;&atilde;o de AWT baseada em JNI usando
-usando pares peso leve ("lightweight"). O trabalho est&aacute; atualmente
-em andamento para implementar usando GTK.</dd>
-</dl>
-</dl>
-
-<hr>
-<h3>
-<a NAME="2_5"></a>2.5 E sobre o suporte a Swing?</h3>
-
-<dl>
-<dl>
-<dt>
-Considerando que o suporte ao AWT ainda n&atilde;o est&aacute; pronto,
-n&atilde;o h&aacute; chance conseguir com que que Swing rode. Uma vez que
-tenhamos suporte ao AWT, o Swing 1.1.1 dever&aacute; ser us&aacute;vel
-e mesmo redistribu&iacute;vel, mas JFC ser&aacute; outro assunto, como
-<a href="mailto:moroz@metahood.ru";>Oleg
-Moroz</a> resume:</dt>
-
-<blockquote>1) Swing 1.1.1 para JDK 1.1.x com licen&ccedil;a que permita
-redistribuir como parte da applet ou aplica&ccedil;&atilde;o de valor adicionado.
-Isto precisa de alguma pesquisa, entretanto acredito que o termo "aplica&ccedil;&atilde;o
-de valor adicionado" pode incluir por exemplo o sistema de desenvolvimento
-baseado em gcj;&nbsp; se n&atilde;o por si s&oacute;, uma aplica&ccedil;&atilde;o
-simples baseada no Swing pode ser adicionada &agrave; aplica&ccedil;&atilde;o.
-Esta vers&atilde;o depende do AWT 1.1 apenas (bem, 1.1.x, x >= 7) e parece
-que a vers&atilde;o da Sun poderia ser usada para a maioria dos pr&oacute;positos
-que as pessoas gostariam.</blockquote>
-
-<blockquote>2) Swing (JFC) que &eacute; parte do Java2. Este n&atilde;o
-&eacute;, at&eacute; onde eu sei,&nbsp; dispon&iacute;vel como um produto
-separado e &eacute; protegido por uma licen&ccedil;a mais restritiva&nbsp;
-(neste caso pelo menos) que a do JDK ; ele tamb&eacute;m &eacute; dependente
-das caracter&iacute;sticas do AWT 1.2.&nbsp; N&oacute;s gostar&iacute;amos
-de desenvolver um substituto apenas quando nos movermos para a base de
-c&oacute;digo ("codebase") 1.2 e ent&atilde;o&nbsp; precisaremos tamb&eacute;m
-desenvolver um substituto AWT 1.2 sem considerar o Swing.</blockquote>
-</dl>
-
-<dl>
-<dt>
-<a href="mailto:per@bothner.com";>Per Bothner</a> acrescenta:</dt>
-
-<dd>
-&nbsp;</dd>
-
-<dd>
-Uma possibilidade que vale a pena ser considerada &eacute; desenvolver
-componentes Swing em conjun&ccedil;&atilde;o com AWT. Podemos implementar&nbsp;
-JTextArea e TextArea ao mesmo tempo. N&oacute;s poder&iacute;amos implementar
-ambos no topo de (digamos) alguma <i>widget </i>GTK; n&atilde;o necessariamente
-*ter&iacute;amos* que ir pela rota <i>"peerless"</i>. Ao inv&eacute;s,
-podemos tomar como base o "<i>plugable</i> <i>look-and-feel</i>" na&nbsp;
-"<i>themebility</i>" do (digamos) GTK.&nbsp;</dd>
-
-<dt>
-&nbsp;</dt>
-
-<dd>
-A maior consequ&ecirc;ncia potencial &eacute; a separa&ccedil;&atilde;o
-do Swing entre "modelo" (por exemplo, Document) e "vis&atilde;o" (por exemplo,
-JTextPane). Pode ser dif&iacute;cil fazer uso da funcionalidade de um conjunto
-de ferramentas existente como o GTK a menos que possamos usar
-<i>widgets
-</i>GTK
-com "modelos" separados de objetos.</dd>
-</dl>
-
-<hr></dl>
-
-<h3>
-<a NAME="2_6"></a>2.6 Que suporte existe para RMI?</h3>
-
-<dl>
-<dd>
-N&atilde;o h&aacute; suporte para RMI no momento.<a href="mailto:mdw@cs.berkeley.edu";>Matt
-Welsh</a> elabora:</dd>
-
-<dl>
-<dd>
-Eu estava trabalhando nisto, mas est&aacute; voltando ao forno agora. Ent&atilde;o,
-se algu&eacute;m pudesse me ajudar eu apreciaria. Tenho uma implementa&ccedil;&atilde;o
-gr&aacute;tis
-de RMI ("NinjaRMI") que &eacute; muito parecida com o RMI da Sun. Voc&ecirc;
-pode baix&aacute;-la de <a href="http://www.cs.berkeley.edu/%7Emdw/proj/ninja/";>http://www.cs.berkeley.edu/~mdw/proj/ninja</a></dd>
-</dl>
-
-<dd>
-</dd>
-</dl>
-
-<blockquote>
-<blockquote>Note que&nbsp; N&Atilde;O &eacute; Java RMI por si mesmo; &eacute;
-apenas muito similar em funcionalidade e&nbsp; projeto. Voc&ecirc; pode
-retirar algumas classes para obter suporte a RMI na libgcj. Entretanto,
-a implementa&ccedil;&atilde;o requer algumas classes em java.* e sun.*
-que n&atilde;o s&atilde;o parte da libgcj.</blockquote>
-&Eacute; poss&iacute;vel usar a <a href="http://wwwipd.ira.uka.de/~hauma/KaRMI/";>implementa&ccedil;&atilde;o
-RMI </a>de JavaParty , mas a licen&ccedil;a &eacute; muito mais restritiva
-que aquela da NinjaRMI. Detalhes abaixo:
-<blockquote>O muito mais r&aacute;pido e informal RMI e a apropriada eficiente
-serializa&ccedil;&atilde;o&nbsp; &eacute; projetada e implementada completamente
-em Java sem qualquer c&oacute;digo nativo. Al&eacute;m disso, o reprojetado
-RMI suporta redes de comunica&ccedil;&atilde;o n&atilde;o-TCP/IP, mesmo
-com protocolos de transporte heterog&ecirc;neos. Como subproduto, h&aacute;
-uma cole&ccedil;&atilde;o de <i>benchmarks</i> para RMI.</blockquote>
-</blockquote>
-
-<dl>
-<dt>
-&nbsp;</dt>
-
-<br>
-<hr></dl>
-
-<dl>
-<h3>
-<a NAME="2_7"></a>2.7 Posso usar qualquer c&oacute;digo de outros projetos
-OpenSource para suplementar as caracter&iacute;sticas atuais da libgcj?</h3>
-
-<dd>
-<font color="#FF6600">Algu&eacute;m pode apontar-me algumas palavras definitivas
-sobre esse assunto?</font></dd>
-</dl>
-
-<blockquote>
-<blockquote>&nbsp;</blockquote>
-</blockquote>
-
-<dl>
-<hr></dl>
-
-<dl>
-<h3>
-<a NAME="2_8"></a>2.8 Quais caracter&iacute;sticas da linguagem Java s&atilde;o/n&atilde;o
-s&atilde;o suportadas?</h3>
-
-<dd>
-No momento GCJ suporta todas as constru&ccedil;&otilde;es da linguagem
-Java conforme a <a href="http://java.sun.com/docs/books/jls/";>Java Language
-Specification v1.0</a>. O&nbsp; JDK 1.1 adicionou suporte para <i>Inner
-Classes</i>, que n&atilde;o s&atilde;o ainda suportadas ao compilar c&oacute;digo
-fonte, mas podem ser usadas na compila&ccedil;&atilde;o de bytecodes. Veja
-<i>4.2 GCJ pode manipular apenas c&oacute;digo fonte?</i>&nbsp;</dd>
-</dl>
-
-<dl>&nbsp;</dl>
-
-<table BORDER=0 CELLPADDING=4 WIDTH="95%" >
-<tr BGCOLOR="#B0D0FF">
-<th ALIGN=LEFT>
-<h2>
-<a NAME="3_0"></a>T&oacute;picos de Constru&ccedil;&atilde;o</h2>
-</th>
-</tr>
-</table>
-
-<dl>
-<h3>
-<a NAME="3_1"></a>3.1 Preciso de algo mais recente que o &uacute;ltimo
-lan&ccedil;amento;&nbsp; Como devo construir?</h3>
-
-<dd>
-Por favor, leia <a href="http://gcc.gnu.org/java/build-snapshot.html";>aqui</a>.&nbsp;</dd>
-
-<br>&nbsp;
-<p>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</dl>
-
-<dl>
-<h3>
-<a NAME="3_2"></a>3.2 Bug de v&iacute;nculo no Solaris</h3>
-
-<dd>
-H&aacute; um problema conhecido com o&nbsp;<a href="http://gcc.gnu.org/ml/gcc-bugs/1999-10/msg00159.html";>
-<i>linkador</i> nativo do Solaris</a> ao usar gcc/gcj. Uma boa indica&ccedil;&atilde;o
-de que voc&ecirc; se deparou com este problema &eacute; ter recebido um
-erro que parece com o seguinte durante a constru&ccedil;&atilde;o do libgcj:&nbsp;</dd>
-
-<pre>ld: warning: option -o appears more than once, first setting taken
-ld: fatal: file libfoo.so: cannot open file: No such file or directory
-ld: fatal: File processing errors. No output written to .libs/libfoo.so
-collect2: ld returned 1 exit status
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
-
-<dl>Um contorno conhecido para este e outros problemas de v&iacute;nculo
-relatados nos v&aacute;rios lan&ccedil;amentos do Solaris &eacute; construir
-gcc/gcj com o <a href="ftp://sources.redhat.com/pub/binutils/snapshots";>mais
-recente GNU binutils</a> ao inv&eacute;s do <tt>ld </tt>nativodo Solaris
-. A maneria mais direta de fazer isso &eacute; construir e instalar&nbsp;
-binutils, e ent&atilde;o referenci&aacute;-lo no&nbsp; configure para&nbsp;
-gcc via <tt>--with-ld=/path_to_binutils_install/bin/ld</tt> (<tt>--with-as</tt>
-pode ser similarmente especificado mas n&atilde;o acredita-se que seja
-requerido).&nbsp;
-<p>Por favor, note que&nbsp; gcc/gcj deve ter sido constru&iacute;do usando
-GNU ld antes de fazer&nbsp; uma constru&ccedil;&atilde;o limpa do libgcj!&nbsp;</dl>
-
-<br>&nbsp;</dl>
-
-<table BORDER=0 CELLPADDING=4 WIDTH="95%" >
-<tr BGCOLOR="#B0D0FF">
-<th ALIGN=LEFT>
-<h2>
-<a NAME="4_0"></a>Gcj - Quest&otilde;es sobre Compila&ccedil;&atilde;o/V&iacute;nculo&nbsp;</h2>
-</th>
-</tr>
-</table>
-
-<dl>
-<dt>
-&nbsp;</dt>
-
-<h3>
-<a NAME="4_1"></a>4.1 Por que eu recebo erros de <tt>undefined reference
-to `main'</tt>?</h3>
-</dl>
-
-<dl>
-<dd>
-Quando usar gcj para <i>linkar </i>um programa Java, voc&ecirc; deve usar
-a op&ccedil;&atilde;o&nbsp; <tt>--main=</tt> para indicar a classe que
-tem o m&eacute;todo&nbsp; <tt>main</tt> desejado. Isto porque cada classe
-Java pode ter um m&eacute;todo <tt>main</tt>, assim voc&ecirc; tem que
-dizer ao gcj qual deles usar.</dd>
-
-<dt>
-&nbsp;</dt>
-
-<br>
-<hr></dl>
-
-<dl>
-<dt>
-&nbsp;</dt>
-
-<h3>
-<a NAME="4_2"></a>4.2 GCJ pode manipular apenas c&oacute;digo fonte?</h3>
-</dl>
-
-<dl>
-<dl>O GCJ ir&aacute; compilar ambos, arquivos fonte java e .class, bytecodes.
-No momento, a compila&ccedil;&atilde;o de bytecodes ir&aacute; abranger
-mais aplica&ccedil;&otilde;es que a compila&ccedil;&atilde;o de fonte,
-j&aacute; que falta ao compilador de c&oacute;digo fonte suporte para "inner
-classes"<i>,&nbsp; </i>que s&atilde;o&nbsp; usadas pesadamente&nbsp; em
-programas escritos para o JDK 1.1 (AWT em particular).</dl>
-
-<br>&nbsp;
-<dl>Em muitos casos o c&oacute;digo nativo produzido pela compila&ccedil;&atilde;o
-de c&oacute;digo fonte &eacute; mais otimizado que o compilado de arquivos
-.class.&nbsp; Per Bothner explica:
-<dl>A raz&atilde;o &eacute; que quando compila para bytecode voc&ecirc;
-perde bastante informa&ccedil;&atilde;o sobre a estrutura do programa e
-etc.&nbsp; Essa informa&ccedil;&atilde;o ajuda na gera&ccedil;&atilde;o
-de melhor c&oacute;digo. N&oacute;s podemos em teoria recuperar a informa&ccedil;&atilde;o
-que n&oacute;s necessitamos analisando a estrutura dos bytecodes, mas isso
-&eacute; dif&iacute;cil algumas vezes - ou algumas vezes simplesmente ningu&eacute;m
-tratou disso.</dl>
-</dl>
-
-<dl>&nbsp;
-<p>Exemplos espec&iacute;ficos incluem estrutura de la&ccedil;o (gcc gera
-melhor c&oacute;digo com la&ccedil;os explicitos que com o equivalente
-c&oacute;digo espaguete),&nbsp; inicializadores de array, e a sintaxe JDK
-1.1 'CLASS.class', que s&atilde;o todos representados usando constru&ccedil;&otilde;es
-de mais baixo n&iacute;vel em bytecode.
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<dt>
-&nbsp;</dt>
-</dl>
-
-<hr>
-<dt>
-&nbsp;</dt>
-
-<h3>
-<a NAME="4_3"></a>4.3 "gcj -C" n&atilde;o parece estar funcionando como&nbsp;
-javac/jikes. O que acontece?&nbsp;</h3>
-
-<blockquote>O comportamento do "gcj-C"&nbsp; n&atilde;o &eacute; de todo
-como javac ou jikes, que ir&atilde;o compilar (n&atilde;o apenas varrer)
-todos os .java que est&atilde;o desatualizados com respeito aos seus .class.</blockquote>
-</dl>
-
-<dl>
-<dt>
-&nbsp;</dt>
-</dl>
-
-<dl>
-<h3>
-<a NAME="4_4"></a>4.4 Onde o GCJ procura pelos arquivos?&nbsp;</h3>
-
-<blockquote>GCJ procura pelos arquivos a ser compilados baseado na vari&aacute;vel
-de ambiente CLASSPATH. Presentemente uma limita&ccedil;&atilde;o importante
-&eacute; que gcj n&atilde;o manipula arquivos jar no seu classpath.</blockquote>
-</dl>
-
-<hr>
-<dl>
-<dt>
-&nbsp;</dt>
-</dl>
-
-<dl>
-<h3>
-<a NAME="4_5"></a>4.5 Como gcj decide se compila arquivos .class ou .java?</h3>
-
-<blockquote>GCJ parece favorecer arquivos .class no CLASSPATH, se houver
-algum,&nbsp; caso contr&aacute;rio usar&aacute; o fonte (.java), tamb&eacute;m
-no CLASSPATH. Ele tamb&eacute;m checa se a classe &eacute; mais nova que
-o arquivo .java. Se ele n&atilde;o consegue encontrar algum deles, ele
-lan&ccedil;a um erro.</blockquote>
-</dl>
-
-<dl>
-<dt>
-&nbsp;</dt>
-</dl>
-
-<dl>
-<h3>
-<a NAME="4_6"></a>4.6 Estou recebendo erros de v&iacute;nculo</h3>
-
-<blockquote>Se voc&ecirc; recebe erros no tempo de v&iacute;nculo que se
-relacionam a 'undefined reference to `java::lang::Object type_info function',
-verifique que voc&ecirc; compilou qualquer arquivo CNI C++ com a op&ccedil;&atilde;o&nbsp;
--fno_rtti .&nbsp;</blockquote>
-</dl>
-
-<dl>
-<dt>
-&nbsp;</dt>
-</dl>
-
-<dl>&nbsp;</dl>
-
-<table BORDER=0 CELLPADDING=4 WIDTH="95%" >
-<tr BGCOLOR="#B0D0FF">
-<th ALIGN=LEFT>
-<h2>
-<a NAME="5_0"></a>Quest&otilde;es de tempo de execu&ccedil;&atilde;o ("Runtime")</h2>
-</th>
-</tr>
-</table>
-
-<dl>
-<h3>
-<a NAME="5_1"></a>5.1 Est&aacute; acontecendo "<i>dumping core" </i>com
-meu programa! O que est&aacute; havendo?</h3>
-
-<dd>
-Podem ser v&aacute;rias coisas. Um erro comum &eacute; ter sua vari&aacute;vel
-de ambiente CLASSPATH apontando para java.lang (e amigos) de terceiros.&nbsp;
-Ou remova o conte&uacute;do do CLASSPATH, ou tenha certeza de que ele n&atilde;o
-se refere &agrave; outras bibliotecas b&aacute;sicas, sen&atilde;o &agrave;quelas
-encontradas em libgcj.zip.</dd>
-
-<br>&nbsp;
-<dl>Um outro sintoma coberto por este reparo &eacute; obter, ao rodar um
-programa tipo "Hello World", um monte de lixo, caracteres ASCII n&atilde;o
-imprim&iacute;veis, antes e/ou depois da sa&iacute;da. YMMW (Your Mileage
-May Vary).&nbsp;</dl>
-
-<dd>
-</dd>
-</dl>
-
-<dl>
-<dt>
-
-<hr></dt>
-
-<h3>
-<a NAME="5_2"></a>5.2 Quando rodo o depurador eu recebo um SEGV no GC!&nbsp;
-O que acontece?</h3>
-</dl>
-
-<dl>
-<dd>
-Isso &eacute; "normal"; O <i>Garbage Collector (</i>GC/Coletor de Lixo)
-usa-o para determinar os limites da pilha. Ele &eacute; comumente pego
-e manipulado pelo GC -- voc&ecirc; pode ver isso no depurador usando <tt>cont
-</tt>para continuar para o&nbsp; segv "real".</dd>
-
-<br>&nbsp;
-<dl>Isto n&atilde;o deveria acontecer mais, a medida que n&oacute;s n&atilde;o
-definimos MPROTECT_VDB no GC, pelo menos para Linux/386.</dl>
-
-<dt>
-&nbsp;</dt>
-</dl>
-
-<dl>
-<dt>
-
-<hr></dt>
-
-<h3>
-<a NAME="5_3"></a>5.3 Eu h&aacute; pouco compilei minha aplica&ccedil;&atilde;o
-Java e fiz um <i>benchmark </i>e ela parece rodar mais devagar que o JIT
-JVM XXX. H&aacute; algo que eu possa fazer para torn&aacute;-la mais r&aacute;pida?&nbsp;</h3>
-</dl>
-
-<dl>
-<dd>
-Algumas coisas:&nbsp;</dd>
-
-<ul>
-<li>
-Se seus programas alocam muitos objetos pequenos, de vida curta, a <i>heap
-</i>poderia
-estar cheia e ativando o GC muito frequentemente. Experimente aumentar
-os tamanhos inicial e m&aacute;ximo da <i>heap</i>&nbsp; como indicado
-em <i>5.5 Como aumento os tamanhos inicial e m&aacute;ximo da heap de tempo
-de execu&ccedil;&atilde;o?</i>&nbsp;</li>
-
-<li>
-RE - acessos de array. N&oacute;s temos checagem de c&oacute;digo de tempo
-de execu&ccedil;&atilde;o sub-&oacute;timos, e o compilador ainda n&atilde;o
-&eacute; t&atilde;o esperto a respeito da remo&ccedil;&atilde;o autom&aacute;tica
-de checagem de array.&nbsp; Se seu c&oacute;digo est&aacute; pronto e n&atilde;o
-cai dentro dessa situa&ccedil;&atilde;o, tente compilar com&nbsp; --no-bounds-check.&nbsp;</li>
-
-<li>
-Tente <i>linkagem</i> est&aacute;tica. A intera&ccedil;&atilde;o com boehm-gc
-parece incorrer em <i>overhead&nbsp;</i> extra quando bibliotecas compartilhadas
-s&atilde;o usadas. Em um programa que faz uso pesado do alocador eu consegui
-mais de 30% em ganho de perfonmance com <i>linkagem </i>est&aacute;tica.
-Essa quest&atilde;o deve desaparecer em breve com uma nova vers&atilde;o
-do GC.</li>
-
-<li>
-Se sua aplica&ccedil;&atilde;o Java n&atilde;o necessita de linhas de execu&ccedil;&atilde;o
-(<i>threads</i>), experimente construir libgcj usando&nbsp; --enable-threads=none.
-Por&ccedil;&otilde;es do <i>runtime </i>do libgcj s&atilde;o ainda mais
-eficientes quando trabalha com uma &uacute;nica linha de execu&ccedil;&atilde;o.</li>
-</ul>
-</dl>
-
-<dl>
-<dd>
-&nbsp;</dd>
-</dl>
-
-<dl>
-<hr>
-<dt>
-&nbsp;</dt>
-
-<h3>
-<a NAME="5_4"></a>5.4 Posso tra&ccedil;ar a Coleta de Lixo?</h3>
-
-<dd>
-&Eacute;&nbsp; poss&iacute;vel ativar a sa&iacute;da verbosa do GC suprimindo
-a bandeira -DSILENT durante a constru&ccedil;&atilde;o. Uma maneira de
-fazer isto &eacute; comentar a linha com #define SILENT 1 do boehm-gc/configure
-antes de configurar o&nbsp; libgcj.&nbsp;</dd>
-
-<dt>
-&nbsp;</dt>
-
-<dd>
-O GC ir&aacute; mostrar uma cole&ccedil;&atilde;o de estat&iacute;sticas
-na sa&iacute;da padr&atilde;o.&nbsp; (Reconstruir boehm-gc sozinho sem
-esta bandeira parece n&atilde;o funcionar.)</dd>
-
-<dt>
-&nbsp;</dt>
-
-<br>
-<hr>
-<dt>
-&nbsp;</dt>
-
-<h3>
-<a NAME="5_5"></a>5.5 Como aumento os tamanhos de <i>runtime</i> iniciais
-e m&aacute;ximo da <i>heap</i>?</h3>
-
-<dd>
-Alguns programas que alocam muitos objetos pequenos de curta dura&ccedil;&atilde;o
-podem provocar o r&aacute;pido enchimento da <i>heap </i>de tamanho padr&atilde;o,
-ativando GC frequentemente.&nbsp; Com o lan&ccedil;amento 2.95.1 n&atilde;o
-h&aacute; meios de ajustar a <i>heap </i>em tempo de execu&ccedil;&atilde;o.
-<i>snapshots</i> recentes fornecem os argumentos -ms and -mx para o gij&nbsp;
-para especificar os tamanhos inicial e m&aacute;ximo da <i>heap</i>, respectivamente.</dd>
-</dl>
-
-<hr>
-<dl>
-<h3>
-<a NAME="5_6"></a>5.6 Como posso tra&ccedil;ar minha aplica&ccedil;&atilde;o?</h3>
-
-<dd>
-O suporte para isto est&aacute; atrasado. Apenas c&oacute;digo Java de
-uma &uacute;nica linha de execu&ccedil;&atilde;o (<i>thread</i>)&nbsp;
-pode ser usado pelo tra&ccedil;ador (gprof). <i>Threads</i> POSIX parecem
-ser incompat&iacute;veis com o material gmon.</dd>
-</dl>
-
-<table BORDER=0 WIDTH="100%" >
-<tr ALIGN=LEFT BGCOLOR="#B0D0FF">
-<th>
-<h2>
-<a NAME="6_0"></a>T&oacute;picos de Programa&ccedil;&atilde;o</h2>
-</th>
-</tr>
-</table>
-
-<h3>
-<a NAME="6_1"></a>6.1 H&aacute; exemplos de como usar CNI?</h3>
-
-<blockquote>Glenn Chambers criou alguns exemplos triviais <a href="cni-1.txt">aqui</a>
-e <a href="cni-2.txt">aqui</a>. Para
-efeito de&nbsp; compara&ccedil;&atilde;o, <a href="jni-kaffe.txt">aqui</a>
-est&aacute; o mesmo exemplo como uma aplica&ccedil;&atilde;o JNI.
-<p>Note que voc&ecirc; deve compilar os arquivos C++ usados pelo CNI com
-a op&ccedil;&atilde;o -fno-rtti.&nbsp;
-<p>A fonte de informa&ccedil;&atilde;o prim&aacute;ria sobre CNI est&aacute;
-em <a href="papers/cni/t1.html">http://gcc.gnu.org/java/papers/cni/t1.html</a></blockquote>
-</td>
-</tr>
-
-<tr>
-<td></td>
-
-<td></td>
-
-<td></td>
-
-</body>
-</html>
Index: faq.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/java/faq.html,v
retrieving revision 1.59
diff -u -3 -p -r1.59 faq.html
--- faq.html	19 Feb 2003 18:47:05 -0000	1.59
+++ faq.html	30 Apr 2003 12:28:17 -0000
@@ -7,7 +7,6 @@

       <h1>The GCJ FAQ</h1>
       <p>The latest version of this document is always available at <a href="faq.html">http://gcc.gnu.org/java/faq.html</a>.</p>
-      <p>This FAQ is also available in <a href="faq-portugese.html">Brazilian Portugese</a>.</p>
       <ol>
         <li><a href="#1_0">General Questions</a>
           <ol>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]