Jean Mouric

professeur de mathématiques à Rennes

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


Dernières mises à jour:

16/10/2020: rubikscubes.zip et rubikscubes1.zip
Remplacement des archives précédentes (petits changements diffus).

08/10/2020: WinCaml7 via Qt pour Windows x64
Modification de l’aspect de la sélection évitant un désagrément. Archives modifiées:
- Code source C++ de WinCaml 7.1
- WinCaml pour Windows x64 (via Qt)

04/10/2020: rubikscubes.zip et rubikscubes1.zip
Remplacement des archives précédentes (simplification de la gestion des événements).

30/09/2020: Patch Caml Light
Nouvelle archive patch caml-light (2020/09/30) remplaçant celle du 2020/07/12

28/09/2020: Distributions binaires OCaml-4.11.1 pour Mac OS et Linux (x86_64)
Distributions complètes avec libgraph, libnum et libstr et bibliothèque numérique Zarith

27/09/2020: MacCaml et WinCaml
Renouvellement des archives suivantes (correction de l'indenteur pour OCaml):
- MacCaml 6.0 et sa variante Swift
- Code source C++ de WinCaml 7.1
- 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)

25/09/2020: rubikscubes.zip et rubikscubes1.zip (remis à jour le 28/09/2020)
- Fonctionnement plus classique des boutons, mais ne convenant pas forcément au mode toucher pour cliquer des pavés tactiles (bibliothèque graphique X11 notamment),
qui devrait alors être évité (risque de blocage de l'application sous Linux)
- Nouveau format de sauvegarde sur disque des mouvements des cubes: format indépendant du système d’exploitation et partagé par Caml Light et OCaml
- Nouvelle programmation de la composition à la souris des mouvements des cubes.

15/09/2020: Distributions binaires OCaml
Remplacement des distributions 4.09 et 4.10 pour Windows 10 par des distributions 4.11.1
Ces distributions binaires sont toutes équipées des anciennes libnum, libgraph et libstr et de la librairie numérique Zarith

12/07/2020: Patches Caml Light et OCaml, code source C++ de WinCaml 7.1 et archive rubikscube1.zip (changements ne concernant que Windows)
- Patches Caml Light et OCaml : Nouvelles archives cl75win, caml-light-cl, patch caml-light (2020/07/12), patch graphique OCaml (2020/07/12), patch OCaml (2020/07/12)
adaptées aux compilateurs Microsoft Visual C++ Community 2019 dans leurs emplacements usuels.
- Code source C++ de WinCaml 7.1: nouvelle archive adaptée aux compilateurs Microsoft Visual C++ Community 2019 dans leurs emplacements usuels.
- rubikscubes1.zip: complément au fichier Alire.txt ne concernant que Windows avec Msys2 ou Cygwin.

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/09/30)     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/07/12) (modifie les bibliothèques graphiques X11 et Windows d’OCaml et fournit la bibliothèque graphique Cocoa)
    patch graphique OCaml (2020/04/03)     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/07/12) (modifie les bibliothèques graphiques X11 et Windows d’OCaml, fournit la bibliothèque graphique Cocoa et installe OCaml)
    patch OCaml (2020/03/30)     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-4081.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.
            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-4081.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)

            Distribution binaire OCaml 4.11.1, pour Windows 10, ocamlms64-win10-4111.zip (170 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 2019.
            Distribution binaire OCaml 4.11.1, pour Windows 10, ocamlmgw64-win10-4111.zip (192 Mo), munie de la bibliothèque numérique Zarith fondée sur GMP, obtenue comme ci-dessus.

            Les dossiers ocamlms64 ou ocamlmgw64 contenus dans ces archives devraient être placés directement sous C:\
            De cette façon findlib devrait fonctionner correctement: par exemple avec le fichier contenu dans puissancesZarith.zip


  • 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 (11,7 Mo), ou sa variante Swift (17,9 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, on pourra placer le dossier ocaml-4.11.1 contenu dans l’archive ocaml-mac-4111.tar.gz (160 Mo) directement dans /opt
    ou installer OCaml 4.x.y à partir de la distribution en code source: ocaml et modifier le début
    du script bash MacCaml.app/Contents/Resources/camltoplevel en conséquence pour indiquer à MacCaml l’emplacement d’OCaml
    (Pour compiler et 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.11.1 complète avec bibliothèque numérique Zarith pour GNU/Linux amd64 (175 Mo)
    à placer dans /opt; de cette façon findlib devrait fonctionner correctement: par exemple avec le fichier contenu dans puissancesZarith.zip
    Cette distribution devrait aussi convenir au moins aux distributions GNU/Linux citées ci-dessus.

    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 (942 Ko)

    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: