Jean Mouric

professeur de mathématiques à Rennes

vous propose quelques utilitaires pour Caml sous Mac OS X, Windows ou Java


Page déplacée le 9 décembre 2019
Ancienne adresse: http://jean.mouric.pagesperso-orange.fr
Nouvelle adresse: https://jean-mouric.pagesperso-orange.fr


Dernières mises à jour:

19/06/2020: patch caml-light (2020/06/19)
Remplace le patch caml-light du 30/03/2020:
- suppression d'un read non intentionnel dans le script build
- correction du fichier Alire.txt du sous-dossier exemple concernant Windows

14/06/2020: Nouveaux binaires WinCaml
Avec nouveau test de l’encodage des fichiers sources
Archives modifiées:
- les 6 binaires natifs de WinCaml pour Windows
- WinCaml pour Windows x64 (via Qt ou wxWidgets)
- WinCaml pour GNU/Linux amd64 (via Qt)
- WinCaml via Qt pour Mac OS (Lion 10.7.5 et suivants)

11/06/2020: MacCaml 6.0 et code source de WinCaml 7.1
Nouveau test de l'encodage des fichiers sources.
Archives modifiées:
- MacCaml 6.0 et sa variante Swift
- Code source C++ de WinCaml 7.1

25/05/2020: Rubik’s cubes
Nouvelles archives rubikscubes.zip et rubikscubes1.zip:
changement de méthode de réduction du cube 4x4x4 au cube 3x3x3 : gain moyen d'une centaine de quarts de tour
par regroupement des centres plus efficace mais devant précéder l’assemblage des arêtes
(élimine aussi une erreur dans l'assemblage des arêtes: un ';' indésirable dans la fonction modifiée 'deplace_angle').
Ajout dans les archives d'un fichier 'cube44.pdf' donnant quelques explications.

03/04/2020: Patch graphique OCaml et Distributions binaires OCaml 4.10.0 pour Windows 10 :
Nouvelles archives : patch graphique OCaml (2020/04/03), ocamlms64-win10-4100.zip, ocamlmgw64-win10-4100.zip.
La modification du patch graphique OCaml ne concerne que Windows (adaptation à OCaml 4.10.0); l’archive remplace celle du 30/03/2020.

02/04/2020: Rubik’s cubes
Correction de deux erreurs introduites dans l’archive rubikscubes.zip le 30/03/2020 (concerne les rubikscubes 4x4).
Nouvelles archives rubikscubes.zip et rubikscubes1.zip.

30/03/2020: Patches Caml Light et OCaml et archive rubikscube.zip
- Patches Caml Light et OCaml :
Modification mineure de la bibliothèque graphique Windows (peu urgent): ajout d’un délai de 1/10 seconde après l’instruction open_graph.
Raison : si certaines instructions graphiques viennent trop vite après l'appel open_graph, elles peuvent être mal répercutées (incident rare).
Nouvelles archives: cl75win, caml-light-cl, patch caml-light (2020/03/30), patch graphique OCaml (2020/03/30), patch OCaml (2020/03/30).
Pas de nouveaux binaires pour l’instant.
- rubikscubes.zip: Fichiers rassemblés et remaniés pour produire des sorties plus lisibles. Ces sorties sont des sources exécutables ligne par ligne après leur transfert en entrée.

12/03/2020: Distributions binaires OCaml 4.10.0 pour Windows 10 munies de la bibliothèque numérique Zarith
l’une obtenue à l’aide des outils en ligne de commande de Microsoft de 2017, l’autre à partir de Msys2 MINGW (compilateur x86_64-w64-mingw32-gcc 7.3.0)

04/02/2020: Code source de JavaCaml 5.2 et JavaCaml 5.2
- Correction des indenteurs. Choix de l’indenteur lié à celui de Caml Light ou OCaml (suppression du menu 'Options->Utiliser l’indenteur pour OCaml').
- Recherche possible dans les deux panneaux (cliquer sur un panneau, pour le choisir et y positionner le début de la recherche, avant d’utiliser le menu 'Edition->Rechercher...').
Noter que la recherche dans les panneaux se fait par expressions régulières Java (Par exemple: \.\.\. ou \.{3} pour rechercher une séquence de trois points).
- Ajout de l’option Annuler à certains dialogues de sauvegarde.
- Suppression des caractères non-ascii dans les identificateurs de certains exemples.

29/01/2020: JavaCaml 5.1 et Patches Caml Light
- JavaCaml5.1-src : prise en compte d’Unicode UTF-8 (comme pour MacCaml et WinCaml (cf. dossiers exemples/Caml Light/unicode et exemples/OCaml/unicode). Noter cependant que cette nouvelle version de JavaCaml ne permet plus l’utilisation de caractères non-ascii dans les identificateurs Caml Light ou OCaml (ce qui est d’ailleurs la tendance pour OCaml).
- Réencodage de camlmsgs.txt en UTF-8 dans les archives cl75win et patch caml-light (2020-01-28), essentiellement pour JavaCaml 5.1 (utiliser de préférence avec JavaCaml 5.1 une distribution binaire Caml Light obtenue à partir de l’une de ces archives)
- Avec JavaCaml 5.1, préférer une distribution binaire OCaml récente comme celles proposées ci-dessous).

suite de l’historique

  • Patches de Caml-Light et OCaml utilisés par MacCaml, WinCaml, et JavaCaml:

    Pour compiler Caml Light sous Windows avec les outils en ligne de commande de Microsoft:  cl75win
    Pour obtenir un toplevel caml_all.exe à partir de cl.exe:  caml-light-cl

    Pour compiler Caml-Light sous OS X, Windows et divers Linux:
    patch caml-light (2020/06/19)     patch caml-light (2020/01/28)
    patch caml-light (2019/09/27)     patch caml-light (2019/05/20)     patch caml-light (2018/08/06)     patch caml-light (2018/06/06)     patch caml-light (2018/05/29)
    patch caml-light (2018/05/22)     patch caml-light (2018/02/19)     patch caml-light (2018/02/01)     patch caml-light (2018/01/29)     patch Caml Light 2017
    patch Caml Light précédent

    Pour compiler OCaml sous OS X, Windows et divers Linux:
    patch graphique OCaml (2020/04/03) (modifie les bibliothèques graphiques X11 et Windows d’OCaml et fournit la bibliothèque graphique Cocoa)
    patch graphique OCaml (2019/09/28)     patch graphique OCaml (2019/07/04)     patch graphique OCaml (2019/03/16)     patch graphique OCaml (2018/07/02)
    ancien patch graphique OCaml
    patch OCaml (2020/03/30) (modifie les bibliothèques graphiques X11 et Windows d’OCaml, fournit la bibliothèque graphique Cocoa et installe OCaml)
    patch OCaml (2019/11/11)     patch OCaml (2019/08/17)     patch OCaml (2019/07/04)     patch OCaml (2019/03/16)    patch OCaml (2018/08/01)
    patch OCaml précédent         ancien Patch OCaml
    L'archive cl75unix.tar.gz et les archives ocaml-x.yy.z.tar.gz sont présentes ici : archives caml-light et ocaml


            Distribution binaire OCaml 4.08.1 complète obtenue à l’aide des outils en ligne de commande de Microsoft de 2010:  ocamlms64.zip (182 Mo)
            (Peut nécessiter l’installation du paquet Microsoft Visual C++ 2010 redistributable (x64) à défaut des outils en ligne de commande de 2010 eux-mêmes)

            Autre distribution binaire OCaml 4.08.1, pour Windows 10, ocamlms64-win10.zip (183 Mo), munie de la bibliothèque numérique Zarith fondée sur MPIR,
            obtenue à l’aide des outils en ligne de commande de Microsoft de 2017.
            Pour un premier contact avec Zarith on pourra consulter les fichiers big_int_Z.mli, q.mli, z.mli dans le dossier C:\ocamlms64\lib\ocaml\zarith et la documentation de MPIR
            Pour utiliser Zarith avec WinCaml (resp. JavaCaml 5.1) sous Windows:
            - placer le dossier ocamlms64 contenu dans l’archive ocamlms64_win10.zip directement sous C:\
            - placer une copie des fichiers big_int_Z.cmi, q.cmi, z.cmi, zarith.cma, zarith_top.cma dans le sous-dossier ocaml\windows\ocaml64 du dossier de WinCaml (resp. JavaCaml 5.1) au premier niveau
            (ces fichiers se trouvent dans le dossier C:\ocamlms64\lib\ocaml\zarith; on peut aussi les placer dans C:\ocamlms64\lib\ocaml au lieu de modifier le dossier de WinCaml (resp. JavaCaml 5.1))
            - indiquer à WinCaml (resp. JavaCaml 5.1) d’utiliser le dossier C:\ocamlms64 (par menu Caml->Nouvelle distribution... de WinCaml (resp. par menu TopLevel->Nouvelle distribution Caml... de JavaCaml 5.1) et navigation vers ce dossier) .
            Cette distribution est probablement utilisable avec des versions antérieures de Windows en installant la Mise à jour pour le Runtime C universel dans Windows

            Autre distribution binaire OCaml 4.08.1, pour Windows 10, ocamlmgw64-win10.zip (205 Mo), munie de la bibliothèque numérique Zarith fondée sur GMP,
            obtenue à l’aide de MSY2-MINGW64 (x86_64-w64-mingw32-gcc 7.3.0)
            Utilisation avec WinCaml (resp. JavaCaml 5.1) comme ci-dessus en remplaçant ocamlms64 par ocamlmgw64, à ceci près que les fichiers de Zarith sont dans C:\ocamlmgw64\lib\ocaml\site-lib\zarith
            et que dllzarith.dll doit être placée dans C:\ocamlmgw64\lib\ocaml\stublibs ou dans le sous-dossier ocaml\windows\ocaml64 du dossier de WinCaml (resp. JavaCaml 5.1) au premier niveau.

            Distribution binaire OCaml 4.09.0, pour Windows 10, ocamlmgw64-win10-4090.zip (151,8 Mo), munie de la bibliothèque numérique Zarith fondée sur GMP, obtenue comme ci-dessus.

            Distribution binaire OCaml 4.10.0, pour Windows 10, ocamlms64-win10-4100.zip (139 Mo), munie de la bibliothèque numérique Zarith fondée sur MPIR, obtenue comme ci-dessus.
            Distribution binaire OCaml 4.10.0, pour Windows 10, ocamlmgw64-win10-4100.zip (157 Mo), munie de la bibliothèque numérique Zarith fondée sur GMP, obtenue comme ci-dessus.


  • MacCaml, pour l’utilisation interactive de Caml-Light et OCaml sous Mac OS X:

    Important : MacCaml n’étant pas une application signée, elle sera, après téléchargement sous Sierra, High Sierra, Mojave ou Catalina, affublée de l’attribut étendu com.apple.quarantine. Bien qu'il soit possible d'autoriser le lancement de MacCaml après un clic droit sur son icône, ceci peut ne pas suffire pour éviter son lancement avec déplacement, ce qui perturbera son fonctionnement (en raison de changements dans les chemins). Une solution est alors de supprimer l’attribut com.apple.quarantine comme suit: Supposons par exemple le dossier MacCaml contenant MacCaml.app placé directement dans le dossier /Applications. Entrer alors dans terminal la commande sudo xattr -r -d com.apple.quarantine /Applications/MacCaml (qui demande le mot de passe administrateur). Il faudra peut-être aussi jeter le fichier de configuration actuel $HOME/Library/Preferences/com.jmm.MacCaml.plist puis se déconnecter et se reconnecter, voire redémarrer pour disposer complètement de MacCaml.

    Télécharger la version 6.0 de MacCaml (12,7 Mo), ou sa variante Swift (17,7 Mo) fondée sur le langage Swift,
    toutes deux adaptées aux modes clair et sombre de Mojave, pour Mojave et Catalina uniquement (sur architecture x86_64)
    ou encore MacCamlv5.3 pour Lion, Mountain Lion,... (5,8 Mo)

    Pour utiliser OCaml, installer OCaml 4.0x.y avec x = 6, 7, 8 ou 9 à partir de la distribution en code source: ocaml
    Si l’installation d'ocaml n’est pas faite directement dans /usr/local, modifier le début
    du script bash MacCaml.app/Contents/Resources/camltoplevel en conséquence
    (Pour installer OCaml on pourra utiliser le patch OCaml)

    En cas d’utilisation de XQuartz et d’absence de /usr/X11, créer un lien symbolique /usr/X11
    vers le répertoire /opt/X11 (ligne de commande: sudo ln -s /opt/X11 /usr/X11)
    pour que la bibliothèque graphique OCaml X11 intégrée à MacCaml fonctionne.
    Supprimer cette dernière (dllgraphics.so) sans créer le lien symbolique si OCaml a été installé à partir du patch OCaml

    Télécharger la version 4.7.2 de MacCaml (5,8 Mo)
    pour Tiger (10.4.11 ppc 32 bits), Leopard (10.5.8 intel 32 bits), Snow Leopard (10.6.8 intel 64 bits)... et Mac OS Sierra
    MacCaml 4.7.2 fonctionne avec ocaml 3.11.0, 3.11.1, 3.11.2, 3.12.0, 3.12.1 ou 4.0x.y:
    (installer de préférence OCaml à partir de la distribution en code source: OCaml)
    (On pourra utiliser le patch OCaml)

            MacCaml contient des fichiers binaires obtenus à partir des distributions sources officielles Caml-Light et OCaml pour unix disponibles ici:

    Distributions sources officielles Caml-Light et OCaml

            On pourra aussi essayer la distribution binaire OCaml suivante équipée de la bibliothèque numérique Zarith fondée sur gmp:

    distribution binaire ocaml-4.08.1 pour MacOS: El Capitan ... Catalina (183 Mo)
    Placer le contenu de l’archive directement dans /opt
    (utilisable aussi avec WinCaml via Qt pour Mac OS (Lion 10.7.5 et suivants))


  • WinCaml pour l’utilisation interactive de Caml-Light et OCaml sous Windows 2000 Pro, XP, Windows 7 ou 8 ou 10:

       Pour installer WinCaml 7 (7.1):
          1. Télécharger et dézipper celle des trois archives suivantes qui paraît le mieux convenir (x86 = 32 bits, x64 = 64 bits)

    Télécharger  WinCaml 7 (win2000)                 WinCaml 7 (x86)                 WinCaml 7 (x64)                

               (ou au choix celle des trois suivantes respectivement équivalentes aux trois précédentes)

    Télécharger  WinCaml 7 (mingw win2000)     WinCaml 7 (mingw x86)     WinCaml 7 (mingw x64)    

               Elle contient l’exécutable WinCaml.exe
          2. Télécharger et dézipper l’archive suivante contenant le dossier WinCaml7

    Télécharger le dossier de WinCaml 7 (3,3 Mo)

    On pourra utiliser 7zip pour décompresser l’archive WinCaml7.zip si la décompression par Windows altère les chemins
    (regarder dans les dossiers WinCaml7\exemples\Caml Light\unicode et WinCaml7\exemples\OCaml\unicode)

          3. Placer ce dossier WinCaml7 où bon vous semble   (ne pas utiliser le dossier WinCaml d’une installation antérieure à sa place)
          4. Placer l’exécutable WinCaml.exe dans ce dossier WinCaml7 au premier niveau
          5. Optionnel: si aucune distribution OCaml n’est encore installée, on pourra placer le répertoire ocaml contenu dans l’une des archives ocaml32.zip (152 Mo) ou ocaml64.zip (152 Mo) directement sous C:\
              Ces distributions bytecode C:\ocaml d’OCaml 4.08.1 peuvent nécessiter (en cas d’absence de MSVCR100.dll) l’installation d’un des paquets suivants:

    pour ocaml32.zip : Microsoft Visual C++ 2010 redistributable (x86)
    pour ocaml64.zip : Microsoft Visual C++ 2010 redistributable (x64)

               Compilées sous Windows 10, elles devraient fonctionner sous Windows XP sp3 et suivants, même si depuis OCaml 4.07.0 le fichier win32.c demande _WIN32_WINNT=0x0600 (Vista).
               (Au moins ocaml32.zip).
              On pourra aussi placer le dossier camllight contenu dans une des deux archives suivantes directement sous C:\ (ou ailleurs...) et indiquer son chemin à WinCaml (menu Caml->Nouvelle distribution... de WinCaml) pour que WinCaml utilise son contenu au lieu du Caml Light moins complet proposé dans le dossier de WinCaml 7.

    camllight32.zip      camllight64.zip

    WinCaml inclut des fichiers binaires obtenus à partir des distributions source de Caml Light.
    Le graphisme est emprunté aux distributions OCaml pour Windows.
    Les distributions sources officielles Caml Light et OCaml sont téléchargeables ici:
    Distributions sources officielles Caml-Light et OCaml.
    WinCaml dispose à peu près des mêmes fonctions que MacCaml.

          Les versions 5.8, 5.9, 6.0, 6.1 et 7.0 de WinCaml sont encore disponibles.
          WinOcaml et l’ancien WinCaml sont toujours disponibles: WinOCaml , Ancien WinCaml, ainsi que WinCaml 4.5

  • WinCaml 7 (7.1) pour Windows 64, Debian Gnu Linux amd64 (Wheezy: 7, Jessie: 8, Stretch: 9 ou Buster: 10) et Mac OS via wxWidgets ou Qt:

    WinCaml pour Windows x64
    WinCaml pour GNU/Linux amd64 : devrait convenir aux installations par défaut des distributions GNU/Linux suivantes:
    Debian Wheezy, Jessie, Stretch ou Buster, Ubuntu 16.04 ou 19.04, Mint Cinnamon Serena ou Tina, OpenSuse 42.2 ou 15.1, Mageia 5.1 ou 7.1 ...
    WinCaml via Qt pour Mac OS (Lion 10.7.5 et suivants) (138 Mo)
    La présence à part des bibliothèques wxWidgets et Qt n’est en principe pas nécessaire (lien statique).

    Distribution bytecode Caml Light pour GNU/Linux amd64 (1,8 Mo)
    Distribution bytecode OCaml 4.08.1 pour GNU/Linux amd64 (128 Mo)
    (placer de préférence le dossier contenu dans l'archive dans /opt.)
    Ces distributions bytecode adaptées à WinCaml devraient convenir au moins aux distributions GNU/Linux citées ci-dessus.

    Distribution OCaml 4.08.1 complète avec bibliothèque numérique Zarith pour GNU/Linux amd64 (195 Mo)
    à placer dans /opt; devrait aussi convenir au moins aux distributions GNU/Linux citées ci-dessus.
    Pour utiliser Zarith avec WinCaml, placer une copie des 6 fichiers big_int_Z.cmi, q.cmi, z.cmi, zarith.cma, zarith_top.cma et dllzarith.so
    dans le sous-dossier ocaml/linux/ocaml64 du dossier de WinCaml au premier niveau.
    (ou bien placer les cinq premiers au premier niveau de /opt/ocaml-4.08.1/lib/ocaml et le dernier dans /opt/ocaml-4.08.1/lib/ocaml/stublibs)
    Noter aussi qu’au niveau de WinCaml on peut se contenter de la distribution bytecode précédente.

    Mise en œuvre de WinCaml pour Linux x86_64 avec tp-algo

    Aperçus de WinCaml pour Linux via wxWidgets sous tp-algo de l’E.N.S. Lyon (cliquer sur la miniature):



    Pour Linux il faudra peut-être rendre exécutables les binaires wincamlinit, WinCaml et lintoplevel64

    WinCaml pour Debian GNU/Linux amd64 peut fonctionner avec d’autres distributions Gnu/Linux amd64 assez récentes.

    Pour Windows installer, en cas d’absence de MSVCR110.dll ou de MSVCP110.dll, le paquet Microsoft Visual C++ 2012 redistributable (x64)

    Pour Mac OS veiller à ce que XQuartz soit installé

  • Code source C++ complet de WinCaml 7, (Windows, Mac OS X et Linux):

    Cette archive contient aussi les éléments constitutifs du dossier de WinCaml 7 pour les trois systèmes
    et des scripts de construction à adapter éventuellement à la ligne de commande de l’environnement de programmation

    Code source C++ de WinCaml 7.1 (3,2 Mo)

    On pourra utiliser 7zip pour décompresser l’archive WinCaml7.x-src_*.zip si la décompression par Windows altère les chemins
    (regarder dans les dossiers WinCaml7.x-src_*\caml\exemples\Caml Light\unicode et WinCaml7.x_*\caml\exemples\OCaml\unicode)
    et se servir des patches de Caml Light et OCaml pour obtenir des distributions Caml Light et OCaml adaptées à WinCaml.


  • JavaCaml, pour l’utilisation interactive de Caml-Light et OCaml sous Linux, Mac OS X, ou Windows:

    Préférer les archives zip sous Windows (à ouvrir avec 7-zip) et les archives tar.gz sous Linux et Mac OS (pour préserver les chemins unicodes).

    Télécharger JavaCaml 5.2 (zip)    JavaCaml 5.2 (tar.gz)

    JavaCaml fonctionne avec la machine virtuelle (jre) d’Oracle en version 8
    Pour l’utilisation de Caml Light et OCaml avec JavaCaml, voir les fichiers Alire dans les archives

    Code source de JavaCaml 5.2(zip)    Code source de JavaCaml 5.2 (tar.gz)

    Les versions 4.9 et 5.0 de JavaCaml sont encore disponibles:
        JavaCaml 4.9     Code source de JavaCaml 4.9
        JavaCaml 5.0     Code source de JavaCaml 5.0


  • MacCaml est une application Cocoa. WinCaml est dans les versions inférieures à 5 une application MFC (Microsoft Foundation Classes) et dans la version 5 une application Win32/Win64, ou une application Qt ou wxWidgets; assez proche de MacCaml, WinCaml fonctionne sous Windows 2000 professionnel, Windows XP et Windows 7 ou 8 ou 10 et dans ses versions Qt et wxWidgets sous OS X et Linux. JavaCaml est une application Java Swing apparentée aux précédentes fonctionnant sous Mac OS X, Windows et Linux équipés de la machine virtuelle Java d’Oracle (jre: Java Runtime Environment).



  • Capture d’écran de WinCaml 5.7 sous Debian Wheezy Live (tp-algo E.N.S. Lyon) dans une machine virtuelle Parallels 4 Go sous OS X Yosemite: MacBook Pro Retina 15 pouces 16 Go 1920 x 1200 (cliquer dessus pour obtenir une image plus précise):



  • Capture d’écran de WinCaml 5.7 sous Debian Wheezy Live (tp-algo E.N.S. Lyon) sur PC portable ASUS intel core 2 duo 4 Go 1366 x 768 (cliquer dessus pour obtenir une image plus précise):



  • Captures d’écran de MacCaml 4.4 (cliquer dessus pour obtenir une image plus précise):



  • Capture d’écran de WinCaml 4.3 sous Windows XP (cliquer dessus pour obtenir une image plus précise):



  • Capture d’écran de JavaCaml sous Debian Gnu/Linux avec environnement graphique Gnome (cliquer dessus pour obtenir une image plus précise):



  • Dossier Caml sur les automates finis et langages rationnels:

    Télécharger l’archive AFetLR.zip (215 Ko)


  • Rubik's cubes et leurs groupes de mouvements en Caml Light et OCaml:


    Placer le dossier rubikscubes/interfaces de l'archive dans le dossier de MacCaml ou WinCaml au premier niveau.
    Quelques explications sont jointes dans le fichier Alire.txt et les fichiers mouvements.pdf de l'archive.
    Le dossier rubikscubes/OCaml est une adaptation bon marché à OCaml du dossier rubikscubes/Caml-light.

    Télécharger l’archive rubikscubes.zip (1 Mo)

    L’archive suivante permet d’obtenir à partir de Caml Light des applications autonomes pour Mac OS, Windows et Linux
    (elle contient les applications autonomes pour Mac OS Mojave ou Catalina, pour Windows XP SP2 et pour Windows 10)

    Télécharger l’archive rubikscubes1.zip (2,3 Mo)

  • Mode Sombre de Mojave et MacCaml:


  • WinCaml 7.1 sous Windows 10: