Compiladores/Projecto de Compiladores/Repositório CVS

From Wiki**3

< Compiladores‎ | Projecto de Compiladores
Revision as of 00:49, 15 February 2015 by Root (talk | contribs) (Created page with "== Localização e Acesso == Os repositórios CVS para os projectos (um por grupo) já contêm versões iniciais de todos os projectos (i.e., já foi feito o "import" inicial...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Localização e Acesso

Os repositórios CVS para os projectos (um por grupo) já contêm versões iniciais de todos os projectos (i.e., já foi feito o "import" inicial). Os repositórios estão disponíveis no AFS em:

  • /afs/ist.utl.pt/groups/leic-co/co15/cvs -- esta directoria não deve ser utilizada directamente

No texto que se segue:

  • ### designa o número do grupo sempre com três dígitos
  • ##### designa o número de aluno, sempre com cinco dígitos

Assim, os valores possíveis para a variável de ambiente CVSROOT ou pela opção -d do comando "cvs") são:

  • /afs/ist.utl.pt/groups/leic-co/co15/cvs/## (disponível em qualquer máquina com AFS e utilizador com token válido para a célula ist.utl.pt)
  • :ext:ist1#####@sigma.ist.utl.pt:/afs/ist.utl.pt/groups/leic-co/co15/cvs/## (disponível via SSH; verificar que CVS_RSH=ssh)

Os alunos que ainda não visitaram o self-service do CIIST (DSI), devem fazê-lo, para activação dos serviços relevantes (AFS e Shell, pelo menos). Sem isso, não conseguirão desenvolver ou entregar o projecto, reprovando à disciplina.

Conteúdo e Estrutura do Repositório

Cada projecto no repositório contém inicialmente o compilador da linguagem Simple, superficialmente transformado para permitir o início do desenvolvimento do compilador da linguagem a implementar (isto significa que a linguagem é ainda a original, embora o compilador e as suas estruturas usem o novo nome em lugar de "simple").

Embora possam (e devam) ser acrescentados ficheiros ao projecto do compilador durante o desenvolvimento, a estrutura de directórios não pode ser alterada.

A makefile pode precisar de ser adaptada (variáveis indicadas), mas não deve ser substancialmente alterada.

Breve descrição da estrutura de directórios (abaixo de project):

  • ast (directoria que contém as classes dos nós da árvore sintáctica abstracta - padrão Composite)
  • targets (directoria que contém as classes de processamento semântico - padrão Visitor)

Note-se que todo o projecto é compilado pela Makefile na directoria de base.

Cuidados a ter na Utilização do Repositório CVS

NÃO FAZER

  • cvs init (não é necessário: o repositório já existe)
  • cvs import (não é necessário: o projecto já existe)
  • cd /afs/ist.utl.pt/groups/leic-co/co15/cvs (ou qualquer outra manipulação directa dos ficheiros do repositório: toda a interacção com o repositório deve ser limitada ao comando "cvs")

FAZER

Antes de tudo o mais, fazer cópias de segurança (vulgo "backups") de tudo o que já foi feito.

O repositório já contém uma versão preliminar do projecto e devem ser dados os seguintes passos, para continuar a desenvolver o projecto:

  1. cvs co project (permite criar localmente uma directoria controlada pelo CVS, com o nome project, com a estrutura apresentada acima, contendo os ficheiros do projecto);
  2. Editar/adicionar material do/ao projecto;
  3. Caso sejam criados ficheiros ou directórios novos, fazer cvs add ficheiro1 ficheiro2 ... ficheiro3 (adicionar cada ficheiro novo ao projecto no CVS);
  4. cvs update (antes de enviar alteração locais para o repositório, verificar se há actualizações a incorporar na cópia local e que não foi esquecido nenhum ficheiro importante: voltar a 3 até terem sido todos adicionados)
  5. cvs commit (enviar alterações para o repositório)

Observações importantes

  • No ponto 3 acima, é importante notar que quando se quer adicionar o conteúdo de uma (sub)directoria, deve ser primeiro adicionada a própria directoria e, só depois, o seu conteúdo.
  • Não adicionar cópias do material de apoio (CDK e RTS) ao projecto (serão removidas e quaisquer alterações perdidas -- além disso, lixo no repositório é penalizado).
  • Pessoas sem área no AFS, ou sem login activado, não poderão aceder ao conteúdo do repositório: para activar estes acessos, consultar o self-service do CIIST (DSI). Em caso de dificuldade, consultar o corpo docente.
  • A estrutura do projecto no CVS deve ser mantida como apresentado.
  • Em caso de dúvidas, consultar o corpo docente.

Agradece-se a comunicação de eventuais problemas.