• # Primitive en C pour OCaml

    Posté par . En réponse au journal Un décalage de 64 bits, ça vous inspire comment ?. Évalué à 6.

    En regardant le fichier d'implémentation et l'interface du module Int64, on tombe sur :

    external shift_right : int64 -> int -> int64 = "%int64_asr"
    external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"

    ce qui signifie que les fonctions sont des primitives codées en C (je n'ai pas trouvé le code C correspondant). Je suppose que la première doit correspondre à un décalage arithmétique et la seconde à un décalage logique. Ne connaissant pas la norme du C, mais elle doit rejoindre celle du C++ là-dessus, si c'est implementation defined alors le comportement des fonctions OCaml dépend du compilateur C utilisé et donc il paraît normal que le comportement soit non spécifié.

    Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.