En l'occurrence, un compilateur de Ruby lirait le code source Ruby, et le "convertirait" en code machine, voire en assembleur. C'est ce qui se passe, par exemple, avec le C, qui est compilé.
Un compilateur est en fait un traducteur d'un langage vers un autre langage, généralement de plus bas niveau (exemple, langage C vers language machine, ou langage Java vers bytecode). Au passage, notons que cette traduction s'accompagne souvent de nombreuses optimisations.
Ce que fait rubyscript2exe n'est pas du tout une "traduction". Le script Ruby initial est laissé en l'état, mais il est emballé ("packé"), avec l'interpreteur Ruby et des bibliotheques, dans un executable, EEE.
D'apres ce que j'ai compris, lorsqu'on lance le fichier exe crée par rubyscript2exe, on lance en fait EEE. EEE se rend compte qu'il est accompagné d'une archive, crée un répertoire temporaire où il la decompresse, et lance l'interpreteur Ruby contenu dans l'archive sur le script (contenu lui aussi dans l'archive).
Il semblerait que eee ne fasse pas son travail de nettoyage des fichiers temporaires, ce qui expliquerait l'accumulation de dossiers "eee" dont tu parles.
Je repete que je ne connais pas de livre sur les "packers" tels que rubyscript2exe. Par contre, si tu veux modifier ce programme, pourquoi ne pas apprendre Pascal (pour le coup il existe plein de bouquins sur ce langage). Sinon, un mail à l'auteur de rubyscript2exe pourrait permettre de mettre les choses au clair, et eventuellement de corriger le bug, si bug il y a.
[^] # Re: ce n'est pas du tout un compilateur
Posté par castorpilot . En réponse au message compileur. Évalué à 2.
Tout à fait d'accord avec les réponses de Jean B.
En l'occurrence, un compilateur de Ruby lirait le code source Ruby, et le "convertirait" en code machine, voire en assembleur. C'est ce qui se passe, par exemple, avec le C, qui est compilé.
Un compilateur est en fait un traducteur d'un langage vers un autre langage, généralement de plus bas niveau (exemple, langage C vers language machine, ou langage Java vers bytecode). Au passage, notons que cette traduction s'accompagne souvent de nombreuses optimisations.
Ce que fait rubyscript2exe n'est pas du tout une "traduction". Le script Ruby initial est laissé en l'état, mais il est emballé ("packé"), avec l'interpreteur Ruby et des bibliotheques, dans un executable, EEE.
D'apres ce que j'ai compris, lorsqu'on lance le fichier exe crée par rubyscript2exe, on lance en fait EEE. EEE se rend compte qu'il est accompagné d'une archive, crée un répertoire temporaire où il la decompresse, et lance l'interpreteur Ruby contenu dans l'archive sur le script (contenu lui aussi dans l'archive).
Il semblerait que eee ne fasse pas son travail de nettoyage des fichiers temporaires, ce qui expliquerait l'accumulation de dossiers "eee" dont tu parles.
Je repete que je ne connais pas de livre sur les "packers" tels que rubyscript2exe. Par contre, si tu veux modifier ce programme, pourquoi ne pas apprendre Pascal (pour le coup il existe plein de bouquins sur ce langage). Sinon, un mail à l'auteur de rubyscript2exe pourrait permettre de mettre les choses au clair, et eventuellement de corriger le bug, si bug il y a.