Difference between revisions of "Compiladores/Projecto de Compiladores/Repositório CVS"

From Wiki**3

< Compiladores‎ | Projecto de Compiladores
(FAZER)
Line 4: Line 4:
 
{{TOCright}}
 
{{TOCright}}
 
'''<font color="red">A DISPONIBILIZAR BREVEMENTE</font>'''  
 
'''<font color="red">A DISPONIBILIZAR BREVEMENTE</font>'''  
 +
 +
'''Esta página contém informação tanto para a LEIC-A como para a LEIC-T.'''
  
 
Os repositórios CVS para os projectos (um por grupo) já contêm versões iniciais do projecto.
 
Os repositórios CVS para os projectos (um por grupo) já contêm versões iniciais do projecto.
Line 13: Line 15:
 
Os repositórios estão disponíveis no AFS em:
 
Os repositórios estão disponíveis no AFS em:
  
* '''<nowiki>/afs/ist.utl.pt/groups/leic-co/co21/cvs</nowiki>'''
+
* LEIC-A: '''<nowiki>/afs/ist.utl.pt/groups/leic-co/co21/a/cvs</nowiki>'''
 +
* LEIC-T: '''<nowiki>/afs/ist.utl.pt/groups/leic-co/co21/t/cvs</nowiki>'''
  
 
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]'').
 
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]'').
Line 25: Line 28:
 
* '''<nowiki>ISTID</nowiki>''' designa o identificador de aluno, e.g. '''ist123456'''
 
* '''<nowiki>ISTID</nowiki>''' designa o identificador de aluno, e.g. '''ist123456'''
  
Assim, os valores possíveis para a variável de ambiente '''CVSROOT''' (ou pela opção '''-d''' do comando "cvs") são:
+
Assim, os valores possíveis para a variável de ambiente '''CVSROOT''' (ou pela opção '''-d''' do comando "cvs") são (exemplos para a LEIC-A -- LEIC-T é análoga):
  
* '''<nowiki>/afs/ist.utl.pt/groups/leic-co/co21/cvs/###</nowiki>''' (disponível em clientes AFS e utilizador com token válido para a célula ist.utl.pt)
+
* '''<nowiki>/afs/ist.utl.pt/groups/leic-co/co21/a/cvs/###</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/co21/cvs/###</nowiki>''' (disponível via SSH; verificar que CVS_RSH=ssh)
+
* '''<nowiki>:ext:ISTID@sigma.ist.utl.pt:/afs/ist.utl.pt/groups/leic-co/co21/a/cvs/###</nowiki>''' (disponível via SSH; verificar que CVS_RSH=ssh)
  
 
{{Aviso|Alunos que ainda não visitaram o [https://selfservice.dsi.tecnico.ulisboa.pt/ self-service da 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.}}
 
{{Aviso|Alunos que ainda não visitaram o [https://selfservice.dsi.tecnico.ulisboa.pt/ self-service da 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.}}
Line 48: Line 51:
  
 
== Cuidados a ter na Utilização do Repositório CVS ==
 
== Cuidados a ter na Utilização do Repositório CVS ==
 +
 +
Exemplos para a LEIC-A (LEIC-T é análoga).
  
 
=== <font color="red">NÃO FAZER</font> ===
 
=== <font color="red">NÃO FAZER</font> ===
Line 53: Line 58:
 
* '''cvs init''' (não é necessário: o repositório já existe)
 
* '''cvs init''' (não é necessário: o repositório já existe)
 
* '''cvs import''' (não é necessário: o projecto já existe)
 
* '''cvs import''' (não é necessário: o projecto já existe)
* '''cd /afs/ist.utl.pt/groups/leic-co/co20/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")
+
* '''cd /afs/ist.utl.pt/groups/leic-co/co20/a/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> ===
 
=== <font color="forestgreen">FAZER</font> ===

Revision as of 18:15, 25 February 2021

AVISOS - Avaliação em Época Normal

Esclarecimento de dúvidas:

  • Consultar sempre o corpo docente atempadamente: presencialmente ou através do endereço oficial da disciplina [1].
  • Não utilizar fontes de informação não oficialmente associadas ao corpo docente (podem colocar em causa a aprovação à disciplina).
  • Não são aceites justificações para violações destes conselhos: quaisquer consequências nefastas são da responsabilidade do aluno.

Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Compiladores):

  • O material de apoio é de uso obrigatório e não pode ser alterado.
  • Verificar atempadamente (mínimo de 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de desenvolvimento.

Processo de avaliação (ver informação completa em Avaliação do Projecto):

  • Datas: 2020/03/20 17:00 (inicial); 2020/04/17 17:00 (intercalar); 2020/05/22 17:00 (final); 2020/05/27 08:00 (teste prático).
  • Todas as entregas são cruciais para o bom desenvolvimento do projecto, sendo obrigatórias: a não realização de uma entrega implica a exclusão da avaliação do projecto e, por consequência, da avaliação da disciplina.
  • Verificar atempadamente (até 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de avaliação, incluindo a capacidade de acesso ao repositório.
  • Apenas se consideram para avaliação os projectos existentes no repositório oficial. Apenas se considera para avaliação o ramo 'main'.
  • Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.
  • A avaliação do projecto pressupõe o compromisso de honra de que o trabalho correspondente foi realizado pelos alunos correspondentes ao grupo de avaliação.
  • Fraudes na execução do projecto terão como resultado a exclusão dos alunos implicados do processo de avaliação em curso.
Material de Uso Obrigatório
As bibliotecas CDK e RTS de apoio ao desenvolvimento do projecto são de uso obrigatório:
A máquina virtual, fornecida para desenvolvimento do projecto, já contém todo o material de apoio.
Uso Obrigatório: Repositório GIT
Apenas se consideram para avaliação os projectos existentes no repositório GIT oficial. Apenas se considera para avaliação o ramo main.

Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.

A DISPONIBILIZAR BREVEMENTE

Esta página contém informação tanto para a LEIC-A como para a LEIC-T.

Os repositórios CVS para os projectos (um por grupo) já contêm versões iniciais do projecto.

Guia para leitores perplexos: CVS Crash Course.

Localização

Os repositórios estão disponíveis no AFS em:

  • LEIC-A: /afs/ist.utl.pt/groups/leic-co/co21/a/cvs
  • LEIC-T: /afs/ist.utl.pt/groups/leic-co/co21/t/cvs

O conteúdo do repositório pode ser manipulado com o comando cvs ou com qualquer outro cliente compatível (e.g. eclipse).

Esta directoria não deve ser utilizada directamente.

Modo de Acesso

No texto que se segue:

  • ### designa o número de grupo com três dígitos, e.g., 012
  • ISTID designa o identificador de aluno, e.g. ist123456

Assim, os valores possíveis para a variável de ambiente CVSROOT (ou pela opção -d do comando "cvs") são (exemplos para a LEIC-A -- LEIC-T é análoga):

  • /afs/ist.utl.pt/groups/leic-co/co21/a/cvs/### (disponível em clientes AFS e utilizador com token válido para a célula ist.utl.pt)
  • :ext:ISTID@sigma.ist.utl.pt:/afs/ist.utl.pt/groups/leic-co/co21/a/cvs/### (disponível via SSH; verificar que CVS_RSH=ssh)
Alunos que ainda não visitaram o self-service da 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 fir):

  • 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.

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

Exemplos para a LEIC-A (LEIC-T é análoga).

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/co20/a/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 fir (permite criar localmente uma directoria controlada pelo CVS, com o nome fir, 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 -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.