Documentação para a api c de Lua 3.2

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Documentação para a api c de Lua 3.2

Alex Sandro
 Estou trabalhando em um sistema antigo que usa a versão de Lua 3.2 e
preciso criar extensões em C para essa versão da linguagem.

 Já pesquisei muito, muito mesmo, em como fazer extensões nessa versão da linguagem,
mas o máximo que encontro são referências vagas (muito simplistas).

 Já tenho um trabalho iniciado na implementação de uma lib json e um protótipo para bitwise.

https://github.com/alexsilva/luajson

 Tudo que eu estou fazendo tem foco em outra lib, feita em Lua
https://github.com/alexsilva/luaPyro

 Ou seja, um sistema RPC que permite Lua interagir com Python

 Não posso migrar o sistema para Lua mais atual, porque está sendo migrado para Python, mas enquanto
isso não fica pronto temos que fazer ferramentas auxiliares.

 O que eu preciso exatamente ? 
 Documentação que explique como fazer corretamento uma extensão nessa linguagem.
 Quase nada atualmente funciona para Lua 3.2 (a api sofreu bastante alteração).

--
Lua BR - http://groups.google.com/group/lua-br
---
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Documentação para a api c de Lua 3.2

Luiz Henrique de Figueiredo
>  Estou trabalhando em um sistema antigo que usa a versão de Lua 3.2 e
> preciso criar extensões em C para essa versão da linguagem.
>
>  Já pesquisei muito, muito mesmo, em como fazer extensões nessa versão
> da linguagem, mas o máximo que encontro são referências vagas (muito
> simplistas).

A referência básica é o manual:
        http://www.lua.org/manual/3.2/

A API C está em
        http://www.lua.org/manual/3.2/manual.html#5.

>  Documentação que explique como fazer corretamento uma extensão nessa
> linguagem. Quase nada atualmente funciona para Lua 3.2 (a api sofreu
> bastante alteração).

De fato. A principal diferença é o uso de lua_Object em vez de posições
na pilha. Veja
        http://www.lua.org/manual/3.2/manual.html#5.2

Tem também a necessidade de usar lua_beginblock e lua_endblock em loops
que usam lua_Object.

O jeito é ver como as bibliotecas padrão estão implementadas e copiar.
Não é difícil, mas usar lua_Object é uma mudança importante.

O outro ponto relevante é que Lua 3.2 não tem suporte para bibliotecas
dinâmicas, somente estáticas. Assim, você tem que relinkar o seu programa
para testar novas bibliotecas.

Resta a pergunta: é realmente necessário manter Lua 3.2? A menos que
você use upvalues antigos (marcados com %), os programas escritos para
3.2 provavelmente vão rodar em versões mais recentes, emborar precisem
de um módulo de compatibilidade para tratar a mudança de nomes de funções.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Documentação para a api c de Lua 3.2

Tomás Guisasola-2
Olá

> Resta a pergunta: é realmente necessário manter Lua 3.2? A menos que
> você use upvalues antigos (marcados com %), os programas escritos para
> 3.2 provavelmente vão rodar em versões mais recentes, emborar precisem
> de um módulo de compatibilidade para tratar a mudança de nomes de
> funções.
Que eu me lembre, na maioria dos casos era suficiente simplesmente
retirar o '%' do código que ele passava a funcionar.  Tem muitas funções
que mudaram de nome que também precisam ser corrigidas, mas talvez os
casos mais complicado sejam onde mudou algum detalhe não-sintático, pois
é mais difícil de detectar...

Eu recomendo a migração, se for possível, naturalmente.

Abraços,
Tomás

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/d/optout.