JRuby / extensions Windows et (natif) comment puis-je les distinguer?
Question
J'ai essayé d'utiliser eventmachine etc., avec JRuby. Je reçois des erreurs sur les extensions natives. Je crois que cela est dû à des limitations Java. Je pense que le fait que je suis sur Windows complique encore la question. Des précisions seraient appréciés. Ce que les extensions peuvent / ne peut pas être utilisé avec JRuby? Comment puis-je dire? Merci.
La solution
il n'y a aucun moyen vraiment facile à utiliser des extensions natives dans JRuby. extensions natives appellent code c qui ne peut pas être appelé à JRuby sans mettre en œuvre en java. En dehors de cela quelques extensions voient ports JRuby, par exemple eventmachine que vous avez mentionné.
et pour autant que je sache, la seule façon de voir si vous pouvez utiliser un petit bijou / extension avec JRuby est de lire les documents, essayer ou lire la source
Autres conseils
JRuby ne supporte pas les extensions natives, malheureusement, parce qu'ils dépendent des détails de la mémoire et d'exécution spécifiques propres à la mise en œuvre C.
Habituellement, vous pouvez trouver une bibliothèque équivalente sur la machine virtuelle Java qui fonctionne bien en remplacement ...
Pour compléter de réponse LDomagala, vous pouvez également consulter ce fil en rapport avec le même "problème d'extension native"
Certains script d'installation peut se fonder sur RUBY_PLATFORM
pour déterminer si de construire les extensions natives en fonction de votre système d'exploitation. Si vous êtes sur Windows, il ne sera pas les construire.
L'autre façon d'éviter la compilation native utilise l'ENV var 'NORUBYEXT
'.
Mais cela peut encore impliquer quelques ajustements dans le script d'installation rubis ...