Pergunta

Alguém pode me dizer sobre o uso (Banco Steel) Lisp comum para escrever GUIs via chamadas de sistema? Eu sei que existem algumas bibliotecas lá fora, mas este é um exercício de aprendizagem de línguas, então eu quero fazer isso sozinho.

Estou desenvolvendo no Kubuntu 8.10 e SBCL 1.0.18.

Graças.

Foi útil?

Solução

Você pode dar uma olhada na sb-posix-package . Mas, como a página de sais "A funcionalidade contida no pacote SB-UNIX é apenas para uso interno SBCL;. O seu conteúdo são susceptíveis de mudança de versão para versão"

Outra possibilidade - a que eu iria escolher - é incluir o C-syscall (2) -Manual via CFFI , e depois executá-lo.

Para criar uma GUI de janela, você deve usar o X11, pelo menos, dar-lhe uma janela para pintar. Portanto, você deve conhecer os X11-Especificações para criar uma janela, e implementar as syscalls para acessar Unix Domínio Sockets, ou iniciar SHM-dispositivos etc.

Se você quiser apenas gráficos em um console, você poderia pensar em usar o /dev/fb* framebuffer-dispositivo. Você precisa ioctl (2) 's e as syscalls para read (2) ing e write (2) ing de usá-lo, mas ainda assim, eu acho que isso seria muito mais fácil do que usar X11 para isso (embora ainda um monte de trabalhos). Talvez você shoudld olhar para o código-fonte do libFB ou algo semelhante para ver como inicializar-lo, etc .

Isso é realmente o que você quer fazer? Este é um monte de trabalho, você vai aprender muito, mas mais sobre a infra-estrutura do sistema Linux, em vez de sobre SBCL, eu acho. Se você quiser usar syscalls sob SBCL, talvez o seu melhor para tentar TCP-Sockets aberto apenas com Linux-syscalls -. Só este pode levar horas de frustração

Outras dicas

Ao escrever GUI via chamadas de sistema que não significa usar qualquer kit de ferramentas GUI, como Gtk + ou Qt? Nesse caso, você deve falar diretamente com o X-servidor via socket e implementar todo o protocolo X11 (ou use CLX) e GUI em cima dela. Mas isso não é uma tarefa easisest, porque X11 é complexa.

No caso de você decidir cavar X11, existem algumas ligações para especificações: http: / /www.xfree86.org/current/specindex.html http://www.freedesktop.org/wiki/Specifications?action=show&redirect= padrões

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top