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

From Wiki**3

< Compiladores‎ | Projecto de Compiladores
Line 1: Line 1:
{{PRJCompiladoreAvisosEN20172018}}
+
{{PRJCompiladoreAvisosEN20182019}}
{{PRJCompiladoreAvisosEE20172018}}
+
<!--{{PRJCompiladoreAvisosEE20172018}}-->
{{PRJCOMandatory20172018}}
+
{{PRJCOMandatory20182019}}
 
{{TOCright}}
 
{{TOCright}}
 
<!-- '''<font color="red">A DISPONIBILIZAR BREVEMENTE</font>''' -->
 
<!-- '''<font color="red">A DISPONIBILIZAR BREVEMENTE</font>''' -->
  
Guia para leitores perplexos: [[CVS Crash Course]].
+
Os repositórios CVS para os projectos (um por grupo) já contêm versões iniciais do projecto.
  
'''<font color="red">AVISOS PARA ÉPOCA ESPECIAL</font>''' <br/>
+
{{Suggestion|Guia para leitores perplexos: [[CVS Crash Course]].}}
{{Aviso|No texto abaixo, para época especial, deve ler-se "bop" em lugar de "gr8".}}
 
{{Aviso|No texto abaixo, para época especial, em lugar do número do grupo (com 3 dígitos), deve ser usado o número de aluno (com 5 dígitos).}}
 
  
 
== Localização ==
 
== 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:
+
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>'''
+
* '''<nowiki>/afs/ist.utl.pt/groups/leic-co/co19/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 21: Line 19:
 
{{Aviso|Esta directoria não deve ser utilizada directamente.}}
 
{{Aviso|Esta directoria não deve ser utilizada directamente.}}
  
== Acesso ==
+
== Modo de Acesso ==
  
 
No texto que se segue:
 
No texto que se segue:
* '''a''' designa o prefixo dos grupos para a LEIC A.
+
* '''<nowiki>###</nowiki>''' designa o [https://fenix.tecnico.ulisboa.pt/disciplinas/Com5645111326-2/2018-2019/2-semestre/grupos número de grupo] com três dígitos, e.g., 012
* '''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"
 
* '''<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:
 
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/co19/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/co19/cvs/###</nowiki>''' (disponível via SSH; verificar que CVS_RSH=ssh)
  
* '''<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)
+
{{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.}}
* '''<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 ==
 
== Conteúdo e Estrutura do Repositório ==
Line 50: Line 38:
 
A makefile pode precisar de ser adaptada (variáveis indicadas), mas não deve ser substancialmente 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 '''gr8'''):
+
Breve descrição da estrutura de directórios (abaixo de '''m19'''):
  
 
* '''ast''' (directoria que contém as classes dos nós da árvore sintáctica abstracta - padrão Composite)
 
* '''ast''' (directoria que contém as classes dos nós da árvore sintáctica abstracta - padrão Composite)
Line 65: Line 53:
 
* '''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/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")
+
* '''cd /afs/ist.utl.pt/groups/leic-co/co19/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> ===
Line 73: Line 61:
 
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:
 
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);
+
# '''cvs co m19''' (permite criar localmente uma directoria controlada pelo CVS, com o nome '''m19''', com a estrutura apresentada acima, contendo os ficheiros do projecto);
 
# Editar/adicionar material do/ao 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);
 
# Caso sejam criados ficheiros ou directórios novos, fazer '''cvs add ficheiro1 ficheiro2 ... ficheiro3''' (adicionar cada ficheiro novo ao projecto no CVS);

Revision as of 17:31, 16 January 2019

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: 2019/03/22 17:00 (inicial); 2019/04/12 17:00 (intercalar); 2019/05/24 17:00 (final); 2019/05/27-2019/05/31 (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.

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:

  • /afs/ist.utl.pt/groups/leic-co/co19/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, 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:

  • /afs/ist.utl.pt/groups/leic-co/co19/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/co19/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 m19):

  • 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

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