Executável em Clipper com 9 Kb...

Autor: Luiz Fernando Ballin Ortolani


com redução significativa de tempo de linkagem?

Não é sonho, apenas um dos novos recursos do Clipper versão 5. Trata-se do conceito de-biblioteca pré-linkada incorporado ao linkeditor do produto.

As bibliotecas pré-linkadas, como o próprio nome indica, são arquivos de código executável com extensão. PLL, funcionando como bibliotecas para utilização de diversos programas. Podem conter indistintamente funções, procedimentos, programa. Os arquivo .PLL são necessários par execução de programas .EXE que dependem daqueles.

Como planejar:

A biblioteca pré-linkada deverá conter módulos que sofrem pouca ou nenhuma alteração. Tornou-se habitual colocar nestes, a s funções e procedimentos desenvolvidos pelo usuário, de uso comum nas diversas aplicações. Pode-se inclusive, criar uma biblioteca com toda as funções do usuário.

Ao optar-se pelo uso das bibliotecas pré-linkadas, deve-se decidir qual o objetivo a ser atingido: redução do espaço ocupado em disco ou velocidade na linkedição.

Se a opção é pelo primeiro item, incluir no arquivo .PLL os módulos utilizados por todos os arquivos .EXE: se a opção é pelo segundo item, colocar no arquivo .PLL apenas os módulos praticamente sem possibilidade de alteração.

Como criar:

Certificar-se que existem todos os arquivos .OBJ a serem incorporados na biblioteca. Isto pressupõe um trabalho anterior já executado: a compilação dos fontes.

O próximo passo é identificar as bibliotecas de linguagem necessárias. As mais usuais são CLIPPER.LIB e EXTEND.LIB.

A criação é feita utilizando o RTLINK com a opção PRELINK. Exemplo:

RTLINK fi minhalib prelink

E

Este comando criará os arquivos MINHALIB.PLL e MINHALIB.PLT, com todos os módulos ( funções, procedimentos, programas) especificados no arquivo MINHALIB.OBJ. O arquivo .PLT contém informações a respeito de endereços e segmentos no arquivo .PLL, necessários para a criação dos arquivos . EXE que utilizam a biblioteca pré-linkada MINHALIB. Os arquivos .PLT não são necessários para a execução dos arquivos executáveis.

Neste ponto já existe a biblioteca pré-linkada (.PLL). Basta criar um executável que utiliza esta biblioteca. Para tal, utilizar o comando:

RTLINK fi MEUPROG.EXE que, para execução, necessita da biblioteca MINHALIB.PLL


A biblioteca padrão BASE50

Acompanha o pacote, um arquivo fonte de biblioteca padrão para Clipper 5.0 denominado BASE50 – leia-se base cinco zero. Depois de linkeditado, pode ser usados pela grande maioria das aplicações em Clipper porque contém rotinas para tratamento de tele, uso de arquivos de dados, uso de arquivos de índice e outras instruções comuns às aplicações com banco de dados.

Existe grande vantagem na sua utilização porque praticamente todos os sistemas que a utilizam são mais rapidamente linkeditados e ocorre substancial redução no tamanho dos arquivos executáveis. Tal vantagem é destacada quanto a aplicação roda em rede de micros. A biblioteca pré-linkada BASE50 pode ser compartilhada por todas as aplicações Clipper da rede que terão tamanhos bem inferiores às aplicações que não utilizam este recurso.

Se o sistema a ser desenvolvido pode rodar em diferentes configurações de equipamentos, sugere-se utilizar a biblioteca pré-linkada apenas durante o desenvolvimento, pela redução no tempo de linkedição, e entregar versão final (.EXE) para o usuário linkeditada de forma tradicional. Isto para evitar que um programa não rode pela falta de localização do arquivo .PLL da biblioteca pré-linkada que o programa utiliza.

Durante o processo de carga de um programa que utiliza bibliotecas pré-linkadas, este procura pelos arquivos .PLL no diretório corrente ou no subdiretório indicado pela variável de ambiente PLL do sistema operacional. Para criá-la basta digitar ou incluir no arquivo AUTOEXEC.BAT a seguinte linha:

SET PLL = < pathname dos arquivos PLL>

Exemplo SET PLL = f:\soft\clipper5\pll quando os arquivos .PLL encontram-se num servidor de rede no subdiretório SOFT\CLIPPER5\PLL ou

SETPLL = C;\clipper5\pll quando os arquivos .PLL encontram-se no drive c:; subdiretório clipper5\pll

Exemplos reais:

1 – Um programa que limpa a tela e exibe na tela uma variável de 1 a 1000

  Sem PLL Com PLL
Tempo de linkagem 50 s 18 s
Tamanho do .Exe 154.624 Bytes 9.216 Bytes

2 - Sistema com 60 programas, uso de vários .DNF´s, dbedit, macrosubstituição (Inventário de Informática do Paraná)

  Sem PLL Com PLL
Tempo de linkagem 115s 58 s
Tamanho do .Exe 349.184 Bytes 107.520 Bytes