Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
oi carlos
Carlos Eduardo @ SD / JMF diz:
oi
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
veja soh
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
terminamos boa parte da linguagem
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
porém ficaram alguns problemas
Carlos Eduardo @ SD / JMF diz:
quais?
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
explicando rapidamente o projeto ficou assim: 
             temos um ambiente de execução global que possui 3 pilhas
                             1 - pilha de funcao
                             2- pilha de processos
                             3 - pilha de variaveis
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
e ainda uma hashtable com as mensagens de todos os processos
Carlos Eduardo @ SD / JMF diz:
certo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
o problema eh o seguinte, na linguagem LF1, em cada ExpDeclaração (responsavel por conter todas as declarações (o let)) ele incrementa a pilha do ambiente e lah coloca as variaveis, funcoes e processos definidos no programa
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
e sempre que finaliza a execução da expressao do let (no caso o in) ele decrementa a pilha, removendo tudo o que havia nakele contexto
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
ops, escopo
Carlos Eduardo @ SD / JMF diz:
certo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
então o problema é o seguinte, o processo ele tem um escopo apenas na declaração, qndo finaliza a execução do escopo onde ele foi declarado ele deve se manter ativo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
ateh q sua avaliação seja finalizada
Carlos Eduardo @ SD / JMF diz:
aih ele tah sendo encerrado...
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
dessa forma o que esta ocorrendo é: qndo finaliza o escopo o interpretador esta removendo da pilha todos os processos que foram declarados nakele escopo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
e isso nao deve ocorrer
Carlos Eduardo @ SD / JMF diz:
entendi
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
pois levanta um erro de váriavel nao encontrada no escopo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
imagine uma pilha
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
sempre q ele encontra uma expDeclaração ele incrementa o escopo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
e coloca as definições dos processos nesse novo escopo da pilha
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
interprete que cada elemento da pilha eh a definição de um novo escopo, claro?
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
e nesse elemento esta uma hashtable que possui a definição de todas as funções e processos definidos no escopo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
entendeu?
Carlos Eduardo @ SD / JMF diz:
certo
Carlos Eduardo @ SD / JMF diz:
entendi
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
pronto, o que ocorre eh q o processo nao eh vinculado a esse escopo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
ele nao eh vinculado a nenhum escopo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
ele eh livre para morrer qndo quiser, logo ele não deve sair da pilha nunca
Carlos Eduardo @ SD / JMF diz:
entendi
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
então a primeira coisa a resolver eh isso, manter o processo no ambiente global
Carlos Eduardo @ SD / JMF diz:
eu tneho q fazer isso, certo?
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
(ou seja, apenas não remover da pilha)
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
eh
Carlos Eduardo @ SD / JMF diz:
blz
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
mas isso leva a um outro problema]
Carlos Eduardo @ SD / JMF diz:
o q funciona hj?
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
vc tb não pode remover a função a qual o processo esta vinculado
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
funciona tudo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
soh estamos tendo problemas com o gerenciamento das variaveis do ambiente de execução
Carlos Eduardo @ SD / JMF diz:
eta caramba
Carlos Eduardo @ SD / JMF diz:
eh mesmo 
Carlos Eduardo @ SD / JMF diz:
mas perae
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
a thread do processo se mantem rodando mas não se avalia nunca pois não encontra no ambiente suas definições (id processo, e funções)
Carlos Eduardo @ SD / JMF diz:
qual eh a funcao q tah associada ao processo?
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
agora se vc for debugando ai ele roda belezinha
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
pois o debug atrasa a execução do ambiente e mantem as variaveis dando condições da thread rodar numa boa
Carlos Eduardo @ SD / JMF diz:
qdo se declara um processo, tah sendo criada uma funcao pra ele?
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
exemplo de programa nosso:
let fun f x = receive
                       {p t} -> send p(t, p)
                   end
in let proc p1 (f 2),
        proc p2 (f 3)
in send p1 {p2, p1}
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
esse programa faz o que
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
entra em loop onde ele fica enviando de um processo para o outro uma mensagem
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
isso jah eh avaliado
Carlos Eduardo @ SD / JMF diz:
ok
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
o problema é, depois q ele avalia o send p1 {p2, p1} ele remove da pilha os ponteiros para p1 e p2, apesar das threads estarem funcionando, ai ele considera a avaliação da expressao 
 let proc p1 (f 2),
        proc p2 (f 3)
in send p1 {p2, p1}
finalizada e remove da pilha a função f q serve para os processos ficarem executando e isso acaba FUDENDO tudo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
entendeu a bronca?
Carlos Eduardo @ SD / JMF diz:
entendi 
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
essa conversa esta sendo salva
Carlos Eduardo @ SD / JMF diz:
mas tem uma coisa assim
Carlos Eduardo @ SD / JMF diz:
tah
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
então como vc prefere iniciar suas atividades?
Carlos Eduardo @ SD / JMF diz:
eh o seguinte
Carlos Eduardo @ SD / JMF diz:
amanha eu vou trabalhar
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
todos
Carlos Eduardo @ SD / JMF diz:
e depois do trabalho eu comeco a mexer nisso
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
e vira a noite neh
Carlos Eduardo @ SD / JMF diz:
aih vou ateh a quinta
Carlos Eduardo @ SD / JMF diz:
eh
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
tah bom
Carlos Eduardo @ SD / JMF diz:
como eu faco amanha
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
olha, podemos marcar aki no CIn logo depois das 18:00 para eu te explicar como esta o projeto
Carlos Eduardo @ SD / JMF diz:
faco isso em casa ou vou pro cin?
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
a parte de código mesmo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
podemos marcar aki no cin apenas para vc ver o código
Carlos Eduardo @ SD / JMF diz:
n dah, eu soh saio do trabalho de 19:30 
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
e depois vc vai para casa
Carlos Eduardo @ SD / JMF diz:
eu posso passar na tua casa se tu puder
Carlos Eduardo @ SD / JMF diz:
saio do trabalho e vou pra lah
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
a essa hora estarei em outro compromisso
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
vou aki com as meninas
Carlos Eduardo @ SD / JMF diz:
eu posso marcar com as meninas
Carlos Eduardo @ SD / JMF diz:
pergunta se elas podem me explicar amanha
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
num tem como vc sair mais cedo do trabalho?
Carlos Eduardo @ SD / JMF diz:
n posso pq tem reuniao depois do expediente :/
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
falar com Andre Santos e explicar para ele o problema
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
eh ai não sei como vai fazer
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
eu realmente nao posso
Carlos Eduardo @ SD / JMF diz:
eu posso passar na casa das meninas se elas puderem
Carlos Eduardo @ SD / JMF diz:
soh preciso de uma meia hora
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
tah bom
Carlos Eduardo @ SD / JMF diz:
pronto, eu levo meu comp pra lah
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
vai esta no pendrive flavia
Carlos Eduardo @ SD / JMF diz:
tah certo
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
o projeto na versão final
Carlos Eduardo @ SD / JMF diz:
eh bom mandar por email pra garantir
Flávia [Saudacões a quem tem coragem aos que tão aqui para qualquer viagem] diz:
ok
Carlos Eduardo @ SD / JMF diz:
entao amanha qdo sair do trabalho eu ligo pra elas e passo lah