Compiladores/Projecto de Compiladores/Repositório CVS: Difference between revisions

From Wiki**3

< Compiladores‎ | Projecto de Compiladores
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{PRJCompiladoreAvisosEN20162017}}
#REDIRECT [[ist:Compiladores/Projecto de Compiladores/Repositório CVS]]
{{PRJCompiladoreAvisosEE20162017}}
{{PRJCOMandatory20162017}}
{{TOCright}}
<!-- '''<font color="red">A DISPONIBILIZAR BREVEMENTE</font>''' -->
 
Guia para leitores perplexos: [[CVS Crash Course]].
 
<!--{{Aviso|No texto abaixo, para época especial, deve ler-se "ook" em lugar de "xpl".}}
-->
== Localização ==
 
Os repositórios CVS para os projectos (um por aluno) 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:
 
* '''<nowiki>/afs/ist.utl.pt/groups/leic-co/co18/cvs</nowiki>''' -- '''<font color="brown">esta directoria não deve ser utilizada directamente</font>'''
 
O conteúdo do repositório pode ser manipulado com o comando '''cvs''' ou com qualquer outro cliente compatível (e.g. ''[http://www.eclipse.org/ eclipse]'').
 
{{Aviso|Esta directoria não deve ser utilizada directamente.}}
 
== Acesso ==
 
No texto que se segue:
* '''a''' designa o prefixo dos grupos para a LEIC A.
* '''t''' designa o prefixo dos grupos para a LEIC T.
* '''<nowiki>###</nowiki>''' designa o número de grupo de projecto (três dígitos, e.g., 123)
* '''<nowiki>#####</nowiki>''' designa o número de aluno (cinco dígitos, e.g., 87654)
* '''<nowiki>ISTID</nowiki>''' designa o identificador de aluno, no formato "ist123456"
 
Assim, os valores possíveis para a variável de ambiente '''CVSROOT''' (ou pela opção '''-d''' do comando "cvs") são:
 
Para um grupo da LEIC A:
 
* '''<nowiki>/afs/ist.utl.pt/groups/leic-co/co18/cvs/a/###</nowiki>''' (disponível em clientes AFS e utilizador com token válido para a célula ist.utl.pt)
* '''<nowiki>:ext:ISTID@sigma.ist.utl.pt:/afs/ist.utl.pt/groups/leic-co/co18/cvs/a/###</nowiki>''' (disponível via SSH; verificar que CVS_RSH=ssh)
 
Para um grupo da LEIC T:
 
* '''<nowiki>/afs/ist.utl.pt/groups/leic-co/co18/cvs/t/###</nowiki>''' (disponível em clientes AFS e utilizador com token válido para a célula ist.utl.pt)
* '''<nowiki>:ext:ISTID@sigma.ist.utl.pt:/afs/ist.utl.pt/groups/leic-co/co18/cvs/t/###</nowiki>''' (disponível via SSH; verificar que CVS_RSH=ssh)
 
{{Aviso|Alunos que ainda não visitaram o [https://ciist.ist.utl.pt/servicos/self_service/ 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").
 
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 '''gr8'''):
 
* '''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.
 
{{Aviso|A  estrutura de directórios do repositório não pode ser alterada. Os ficheiros fornecidos não podem ser renomeados ou removidos (excepto na directoria "ast").}}
 
== Cuidados a ter na Utilização do Repositório CVS ==
 
=== <font color="red">NÃO FAZER</font> ===
 
* '''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/co18/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")
 
=== <font color="forestgreen">FAZER</font> ===
 
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:
 
# '''cvs co gr8''' (permite criar localmente uma directoria controlada pelo CVS, com o nome '''gr8''', com a estrutura apresentada acima, contendo os ficheiros do projecto);
# Editar/adicionar material do/ao projecto;
# Caso sejam criados ficheiros ou directórios novos, fazer '''cvs add ficheiro1 ficheiro2 ... ficheiro3''' (adicionar cada ficheiro novo ao projecto no CVS);
# '''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)
# '''cvs commit -m "Mensagem de 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.
 
[[category:Projecto de Compiladores]]
[[category:Compiladores]]
[[category:Ensino]]

Latest revision as of 18:30, 6 December 2018