[Kos-dev] OCaml dans KOS : ça tourne !

David MENTRE dmentre at linux-france.org
Sun Jan 16 14:31:54 CET 2005


Salut Thomas,

Thomas Petazzoni <thomas.petazzoni at enix.org> writes:

>> Bon, c'est strictement inutile et j'ai du hacker à mort le runtime ocaml
>> pour que ça compile et link : pas d'I/O, pas de float, les opérations
>> sur les int64 ne sont plus natives et ne marchent plus et j'en oublie.
>
> Effectivement, ça limite quand même pas.

 - pour les I/O, il faut juste trouver un équivalent pour read, write,
   lseek, unlink, ... Suivant les cas, ça peut être utile (par
   ex. émuler write par des ktty_printk) ou inutile (unlink si pas de
   fichiers) ;

 - pour les floats, c'est surtout le math.h qui manque (exp, pow,
   ...). On doit pouvoir reprendre le code de la glibc ;

 - pour les int64, c'est surtout les opérations __udivi3 & co qui
   manquaient. On doit aussi pouvoir récupérer le code correspondant.

Bien évidemment, tout ça c'est du boulot. Donc, à moins d'y trouver une
utilité, je ne compte pas le faire. Conceptuellement, ça ne me semble
pas très compliqué.

> Finalement, le problème du caml_data_segments et caml_code_segments, tu
> les as résolus comment ?

Il y a l'option magique -output-obj sur ocamlopt qui produit un .o avec
tous les symboles résolus, prêt à être linké avec libasmrun.a d'autres
.o en C.

J'ai tout mis sur le web :
 http://www.linux-france.org/~dmentre/kos/module_ocaml_asmrun.tar.gz

Il faut avoir les compilo ocaml installés sur la bécane, notamment
ocamlopt.

Le Makefile n'est pas clean (pas de gestion des dépendances ocaml, pas
d'effacement des fichiers lors d'un make clean).

J'ai également mis un diff qui documente les changements que j'ai du
faire par rapport aux sources originaux (en fait, le diff n'est pas
applicable tel quel sur les sources de caml mais ça documente).

Amicalement,
d.
-- 
pub  1024D/A3AD7A2A 2004-10-03 David MENTRE <dmentre at linux-france.org>
 5996 CC46 4612 9CA4 3562  D7AC 6C67 9E96 A3AD 7A2A



More information about the Kos-dev mailing list