Common Lisp: Quelle est la meilleure façon d'utiliser les bibliothèques dans un environnement d'hébergement partagé?

StackOverflow https://stackoverflow.com/questions/728500

Question

Je pensais l'autre jour et je voulais voir ce que la communauté SO avait à dire sur le sujet.

Comme il est en ce moment Common Lisp est une certaine attention comme une plate-forme de développement web, et avec raison (dont je suis sûr que vous êtes déjà convaincu).

Je me demandais comment on pourrait aller sur l'utilisation d'une bibliothèque dans un environnement partagé de façon similaire à PHP.

Si je fais quelque chose comme SBCL comme interperter pour interpréter des fichiers FASL comme Python ou PHP, quelle serait la meilleure façon d'utiliser les bibliothèques (comme CLSQL par exemple).

La plupart viennent comme asdf bibliothèques installables, mais ce serait une quantité stupide de frais généraux pour exiger et installer la bibliothèque chaque fois qu'une demande est faite.

En gardant à l'esprit c'est pour l'hébergement partagé; serait-il préférable de ..

1) Installer le système large des copies des bibliothèques pour une utilisation dans les applications; réduit l'espace, mais il peut y avoir des problèmes avec l'aide de la version correcte de la bibliothèque.

2) Permettre aux utilisateurs (par un panneau de commande) pour installer des copies locales pour eux-mêmes; plus d'espace, pas de problème de version.

3) Dites-leur de l'envelopper dans un module et le charger sur la demande comme Python ne (je ne sais pas si / comment cela peut se faire avec Lisp). Le fait d'être en mesure de charger une bibliothèque pour une utilisation serait la meilleure option, mais je ne pense pas que beaucoup d'entre eux sont conçus pour être utilisés de cette façon.

Quoi qu'il en soit, à la recherche d'entendre vos opinions, merci.

Était-ce utile?

La solution

Il y a deux façons je le regarderais:

  1. commencer une Lisp pour chaque demande

    De cette façon, il serait beaucoup mieux que le Lisp est une image enregistrée avec toutes les bibliothèques et les données nécessaires chargées. Mais cette approche ne me semble pas très prometteur.

  2. exécuter un Lisp et laisser un frontend (navigateur web, un autre serveur Web, ...) s'y connecter

    De cette façon, vous pouvez commencer une image enregistrée ou un Lisp qui charge un tas de choses une fois et sert les demandes.

J'aime utiliser des images / applications enregistrées dans un scénario de déploiement. Ils peuvent être rapidement commencé, contient tous les logiciels nécessaires et sont indépendants des changements de la bibliothèque.

Il pourrait donc être utile pour fournir des images Lisp préconfigurés qui contiennent le logiciel nécessaire ou laisser le configurer d'utilisateur et enregistrer une image.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top