Loading ...
Sorry, an error occurred while loading the content.
 

Re: "ocaml_beginners"::[] something close to Perl 'x' operator in OCaml library ?

Expand Messages
  • Sébastien Dailly
    ... Yes, it s even recommended to add batteries in your project library ! ... Depends, when you r opening the batteries module, it will overide some standard
    Message 1 of 13 , Feb 22, 2013
      Le 22/02/2013 08:18, Sergei Steshenko a écrit :
      > Thanks.
      >
      > Is the batteries library compatible with standard libraries ?

      Yes, it's even recommended to add batteries in your project library !

      >
      > I.e. will some standard library functions be overridden, or the batteries do no export anything by default ?

      Depends, when you'r opening the batteries module, it will overide some standard function (list.fold or list.map becomes tailrec), and add some other one. The standards modules are renamed in the Legacy module

      But you also can open the specific module, like BatString which does not override anything and let you pick some function as you want.

      >
      > Can I use the latest batteries with ocaml-3.12.1 ?

      Yes, you need to compile batteries for the ocaml version you use, but the library is compatible.

      You can find some doc on the wiki[1]

      >
      > Maybe I'm asking a stupid question - I yet have to learn in details how in OCam; export -> import works.
      >
      > Meanwhile I am using fully qualified names like Buffer.add_string .
      >

      [1] https://github.com/ocaml-batteries-team/batteries-included/wiki/Installing-Batteries
    • Francois Berenger
      ... Come on, use OPAM (kind of aptitude for OCaml-related things) ! That s the modern way of installing OCaml software and libraries:
      Message 2 of 13 , Feb 24, 2013
        On 02/22/2013 05:56 PM, Sébastien Dailly wrote:
        > Le 22/02/2013 08:18, Sergei Steshenko a écrit :
        > > Thanks.
        > >
        > > Is the batteries library compatible with standard libraries ?
        >
        > Yes, it's even recommended to add batteries in your project library !
        >
        > >
        > > I.e. will some standard library functions be overridden, or the
        > batteries do no export anything by default ?
        >
        > Depends, when you'r opening the batteries module, it will overide some
        > standard function (list.fold or list.map becomes tailrec), and add some
        > other one. The standards modules are renamed in the Legacy module
        >
        > But you also can open the specific module, like BatString which does not
        > override anything and let you pick some function as you want.
        >
        > >
        > > Can I use the latest batteries with ocaml-3.12.1 ?
        >
        > Yes, you need to compile batteries for the ocaml version you use, but
        > the library is compatible.

        Come on, use OPAM (kind of aptitude for OCaml-related things) !

        That's the modern way of installing OCaml software and libraries:

        http://opam.ocamlpro.com/doc/Quick_Install.html

        You'll save yourself a lot of time and troubles.

        If you are on Debian or related, using the system-available
        packages is also a smart way.

        > You can find some doc on the wiki[1]
        >
        > >
        > > Maybe I'm asking a stupid question - I yet have to learn in details
        > how in OCam; export -> import works.
        > >
        > > Meanwhile I am using fully qualified names like Buffer.add_string .
        > >
        >
        > [1]
        > https://github.com/ocaml-batteries-team/batteries-included/wiki/Installing-Batteries
        >
        >
      • Sergei Steshenko
        ... [snip] ... [snip] I have my own AppsFromScratch written Perl using which I build about 400+ targets now, including OCaml itself and some packages using it,
        Message 3 of 13 , Feb 24, 2013
          --- On Sun, 2/24/13, Francois Berenger <berenger@...> wrote:

          > From: Francois Berenger <berenger@...>
          > Subject: Re: "ocaml_beginners"::[] something close to Perl 'x' operator in OCaml library ?
          > To: ocaml_beginners@yahoogroups.com
          > Cc: "Sébastien Dailly" <sebastien-ocaml@...>, "Sergei Steshenko" <sergstesh@...>
          > Date: Sunday, February 24, 2013, 4:50 PM
          > On 02/22/2013 05:56 PM, Sébastien
          > Dailly wrote:
          [snip]
          > Come on, use OPAM (kind of aptitude for OCaml-related
          > things) !
          >
          > That's the modern way of installing OCaml software and
          > libraries:
          >
          > http://opam.ocamlpro.com/doc/Quick_Install.html
          >
          > You'll save yourself a lot of time and troubles.
          >
          > If you are on Debian or related, using the system-available
          > packages is also a smart way.
          >
          [snip]


          I have my own AppsFromScratch written Perl using which I build about 400+ targets now, including OCaml itself and some packages using it, e.g. gtk2 bindings.

          Even though I have root access on my machines, I intentionally do not install things into system areas and intentionally do not use root permissions.

          AppsFromScratch builds from sources, downloading them from Internet as necessary.

          OCaml stuff is not very friendly in a sense some packages are better be installed into OCaml proper tree - that's what I'm doing.

          OTOH AppsFromScratch default philosophy is directory per target.

          Regards,
          Sergei.
        • Francois Berenger
          ... I completely understand this. And, OPAM supports this via the option -r ROOT, --root=ROOT Use ROOT as the current root path. This is equivalent to setting
          Message 4 of 13 , Feb 24, 2013
            On 02/25/2013 10:01 AM, Sergei Steshenko wrote:
            > --- On Sun, 2/24/13, Francois Berenger berenger@...
            > <mailto:berenger%40riken.jp>> wrote:
            >
            > > From: Francois Berenger berenger@... <mailto:berenger%40riken.jp>>
            > > Subject: Re: "ocaml_beginners"::[] something close to Perl 'x'
            > operator in OCaml library ?
            > > To: ocaml_beginners@yahoogroups.com
            > <mailto:ocaml_beginners%40yahoogroups.com>
            > > Cc: "Sébastien Dailly" sebastien-ocaml@...
            > <mailto:sebastien-ocaml%40chimrod.com>>, "Sergei Steshenko"
            > sergstesh@... <mailto:sergstesh%40yahoo.com>>
            > > Date: Sunday, February 24, 2013, 4:50 PM
            > > On 02/22/2013 05:56 PM, Sébastien
            > > Dailly wrote:
            > [snip]
            > > Come on, use OPAM (kind of aptitude for OCaml-related
            > > things) !
            > >
            > > That's the modern way of installing OCaml software and
            > > libraries:
            > >
            > > http://opam.ocamlpro.com/doc/Quick_Install.html
            > >
            > > You'll save yourself a lot of time and troubles.
            > >
            > > If you are on Debian or related, using the system-available
            > > packages is also a smart way.
            > >
            > [snip]
            >
            > I have my own AppsFromScratch written Perl using which I build about
            > 400+ targets now, including OCaml itself and some packages using it,
            > e.g. gtk2 bindings.
            >
            > Even though I have root access on my machines, I intentionally do not
            > install things into system areas and intentionally do not use root
            > permissions.

            I completely understand this.

            And, OPAM supports this via the option
            -r ROOT, --root=ROOT
            Use ROOT as the current root path.
            This is equivalent to setting $OPAMROOT to ROOT.

            Cf. 'opam help'

            > AppsFromScratch builds from sources, downloading them from Internet as
            > necessary.

            And, of course, you also check cryptographic signatures of all the
            tarballs of all packages?

            > OCaml stuff is not very friendly in a sense some packages are better be
            > installed into OCaml proper tree - that's what I'm doing.

            OPAM is the right tool, trust me.
            I was even a contributor to a competing tool (odb.ml).

            > OTOH AppsFromScratch default philosophy is directory per target.
            >
            > Regards,
            > Sergei.
            >
            >
          • Sergei Steshenko
            ... [snip] ... No, I do not check cryptographic signatures - I am too lazy for implementing this, though it should be simple. I am not much worried because I
            Message 5 of 13 , Feb 24, 2013
              ----- Original Message -----
              > From: Francois Berenger <berenger@...>
              > To: ocaml_beginners@yahoogroups.com
              > Cc: Sergei Steshenko <sergstesh@...>; Sébastien Dailly <sebastien-ocaml@...>
              > Sent: Monday, February 25, 2013 3:13 AM
              > Subject: Re: "ocaml_beginners"::[] something close to Perl 'x' operator in OCaml library ?
              >
              [snip]
              > And, of course, you also check cryptographic signatures of all the
              > tarballs of all packages?
              >
              >> OCaml stuff is not very friendly in a sense some packages are better be
              >> installed into OCaml proper tree - that's what I'm doing.
              >
              > OPAM is the right tool, trust me.
              > I was even a contributor to a competing tool (odb.ml).
              >
              >> OTOH AppsFromScratch default philosophy is directory per target.
              >>
              >> Regards,
              >> Sergei.


              No, I do not check cryptographic signatures - I am too lazy for implementing this, though it should be simple.

              I am not much worried because I build and install under a different than my usual user id. So, unless the malicious code triggers privilege escalation, it can damage only that 'alter ego' user id files/directories I use for building and installation.

              OPAM maybe the right tool, but I still need my AppsFromScratch - even, say, 'gcc' is self-built, and all its dependencies, and 'binutils', and core utils, and what not. A snapshot:

              ls -1 ~/AFSWD/install/
              aria2-1.15.1
              aria2-1.16.3
              arpack-ng_3.1.0
              arpack-ng_3.1.2
              aspell-0.60.6
              aspell6-am-0.03-1
              aspell6-ar-1.2-0
              aspell6-az-0.02-0
              aspell6-bg-4.1-0
              aspell6-bn-0.01.1-1
              aspell6-ca-20040130-1
              aspell6-cs-20040614-1
              aspell6-csb-0.02-0
              aspell6-de-20030222-1
              aspell6-de-alt-2.1-1
              aspell6-en-6.0-0
              aspell6-eo-2.1.20000225a-2
              aspell6-es-1.9a-1
              aspell6-et-0.1.21-1
              aspell6-fa-0.11-0
              aspell6-fi-0.7-0
              aspell6-fy-0.12-0
              aspell6-gl-0.5a-2
              aspell6-gu-0.03-0
              aspell6-he-1.0-0
              aspell6-hi-0.02-0
              aspell6-hsb-0.01-1
              aspell6-hu-0.99.4.2-0
              aspell6-hy-0.10.0-0
              aspell6-it-2.2_20050523-0
              aspell6-la-20020503-0
              aspell6-lt-1.2.1-0
              aspell6-lv-0.5.5-1
              aspell6-ml-0.03-1
              aspell6-mn-0.06-2
              aspell6-mr-0.10-0
              aspell6-nds-0.01-0
              aspell6-or-0.03-1
              aspell6-pa-0.01-1
              aspell6-pl-6.0_20061121-0
              aspell6-pt_BR-20080707-0
              aspell6-pt_PT-20070510-0
              aspell6-qq-0.03-0
              aspell6-qu-0.02-0
              aspell6-ru-0.99f7-1
              aspell6-sk-2.00-0
              aspell6-sr-0.02
              aspell6-ta-20040424-1
              aspell6-te-0.01-2
              aspell6-uk-1.4.0-0
              aspell6-uz-0.6-0
              aspell6-vi-0.01.1-1
              aspell6-yi-0.01.1-1
              atk-2.2.0
              atk-2.6.0
              atlas-3.10.0
              atlas-3.10.1
              at-spi-1.28.1
              audiofile-0.2.6
              autoconf-2.69
              autogen-5.15
              autogen-5.16.2
              automake-1.12
              automake-1.12.4
              avahi-0.6.31
              bash-4.2
              bc-1.06
              BIN
              binutils-2.22
              bison-2.4.3
              bison-2.6.5
              blas_generic
              bzip2-1.0.6
              cabextract-1.2
              Cairo-1.062
              Cairo-1.100
              cairo-1.12.10
              cairo-1.12.12
              cairo-1.12.2
              cairo-1.12.8
              c-ares-1.8.0
              cdparanoia-III-10.2
              cdrtools-3.00
              claws-mail-3.8.1
              claws-mail-3.9.0
              clisp-2.49
              cln-1.3.2
              cloog-ppl-0.15.11
              cmake-2.8.10
              cmake-2.8.8
              codeblocks-10.05
              coreutils-8.20
              CPAN-Meta-2.112621
              CPAN-Meta-YAML-0.004
              cups-1.4.7-source
              curl-7.28.0
              curl-7.28.1
              curl-7.29.0
              db-5.2.28
              dbus-1.6.8
              dbus-glib-0.100
              dbus-glib-0.98
              dcraw-9.12
              dejagnu-1.4.4
              dejagnu-1.5
              djvulibre-3.5.25.2
              ecasound-2.8.1
              enchant-1.6.0
              esound-0.2.41
              expat-2.1.0
              expect-5.45
              ExtUtils-Depends-0.302
              ExtUtils-PkgConfig-1.12
              ffcall-1.10
              ffmpeg-0.10.3
              fftw-2.1.5
              fftw3-3.3.2
              fftw3-3.3.3
              fftw3_sse2-3.3.2
              fftw3_sse2-3.3.3
              fftw3_sse-3.3.2
              fftw3_sse-3.3.3
              file-5.11
              findlib-1.2.5
              findutils-4.4.2
              flac-1.2.1
              flex-2.5.37
              fltk-1.3.0-source
              fltk-1.3.1-source
              fontconfig-2.10.1
              fontconfig-2.9.0
              fontforge-20120731-b
              freetype-2.4.10
              fricas-1.1.8
              gail-1.22.3
              gawk-4.0.1
              gc-7.1
              gc-7.2
              gcc-3.4.6
              gcc-4.5.4
              GConf-2.32.4
              gd-2.0.35
              gdb-7.5
              gdk-pixbuf-2.24.1
              gettext-0.18.1
              gettext-0.18.1.1
              ghostscript-8.71
              giflib-4.1.6
              ginac-1.6.2
              glade3-3.7.3
              glib-1.2.10
              Glib-1.261
              glib-2.30.3
              glib-2.34.1
              glib-networking-2.30.2
              glib-networking-2.34.2
              glpk-4.47
              gmp-5.0.5
              Gnome2-1.040
              Gnome2-Canvas-1.002
              Gnome2-Dia-0.04
              Gnome2-GConf-1.043
              Gnome2-Print-1.000
              Gnome2-VFS-1.080
              Gnome2-Vte-0.09
              gnome-doc-utils-0.20.10
              gnome-icon-theme-2.30.3
              gnome-keyring-2.28.2
              gnome-mime-data-2.18.0
              gnome-vfs-2.24.4
              gnupg-2.0.19
              gnuplot-4.4.4
              gnuplot-4.6.1
              gnutls-2.12.21
              gnutls-3.0.26
              gobject-introspection-1.32.1
              gobject-introspection-1.34.1.1
              gperf-3.0.4
              GraphicsMagick-1.3.17
              graphviz-2.30.0
              grep-2.12
              grep-2.14
              gsettings-desktop-schemas-3.6.0
              gsl-1.14
              gsl-1.15
              gssdp-0.12.1
              gstreamer-0.10.35
              gstreamer-0.10.36
              GStreamer-0.15
              gtk+-1.2.10
              Gtk2-1.224
              gtk+-2.24.15.hidden
              gtk+-2.24.16
              Gtk2-GladeXML-1.006
              Gtk2-Html2-0.04
              Gtk2-TrayIcon-0.04
              gtk-engines-2.20.2
              gtksourceview-2.10.5
              gtkspell-2.0.16
              guile-1.8.8
              guile-2.0.6
              gupnp-0.18.3
              gupnp-igd-0.2.1
              gzip-1.4
              harfbuzz-0.9.6
              harfbuzz-0.9.7
              harminv-1.3.1
              hdf5-1.8.8
              hp2xx-3.4.4
              hspell-1.2
              HTML-Parser-3.69
              HTML-Tagset-3.20
              HTTP-Daemon-6.01
              HTTP-Date-6.02
              HTTP-Message-6.06
              icon-naming-utils-0.8.90
              icu4-4.8
              icu4-49.1
              ilmbase-1.0.2
              ImageMagick-6.7.8-10
              intltool-0.41.1
              intltool-0.50.2
              jack-audio-connection-kit-0.109.2
              jasper-1.900.1
              jbig2dec-0.11
              jbigkit-2.0
              json-c-0.9
              JSON-PP-2.27200
              kqemu-1.4.0pre1
              ksh93
              ladspa_sdk
              lame-3.99.5
              lapack-3.4.2
              lcms-1.19
              lcms2-2.3
              lcms2-2.4
              lesstif-0.95.2
              libao-1.1.0
              libart_lgpl-2.3.21
              libassuan-2.0.3
              libasyncns-0.8
              libavc1394-0.5.3
              libbonobo-2.32.1
              libbonoboui-2.24.5
              libcroco-0.6.5
              libdaemon-0.14
              libelf-0.8.13
              libetpan-1.1
              libeXosip2-3.1.0
              libffi-3.0.11
              libfpx-1.3.1-1
              libfreebob-1.0.11
              libgcrypt-1.5.0
              libggi-2.2.2
              libggigcp-1.0.2
              libggimisc-2.2.2
              libggiwmh-0.3.2
              libgii-1.0.2
              libgiigic-1.1.2
              libglade-2.6.4
              libgnome-2.30.0
              libgnomecanvas-2.30.3
              libgnomecups-0.2.3
              libgnomeprint-2.18.8
              libgnomeprintui-2.18.6
              libgnomeui-2.24.5
              libgpg-error-1.10
              libgsf-1.14.23
              libgtkhtml-2.6.3
              libhocr-0.10.17
              libiconv-1.14
              libiconv_pre-1.14
              libid3tag-0.15.1b
              libIDL-0.8.14
              libidn-1.25
              libiec61883-1.2.0
              libjpeg-8b
              libksba-1.2.0
              libmad-0.15.1b
              libmcrypt-2.5.8
              libmng-1.0.10
              libnotify-0.4.5
              libogg-1.3.0
              liboil-0.3.17
              libosip2-3.1.0
              libpng-1.4.11
              libproxy-0.4.10
              libraw1394-2.0.5
              librsvg-2.36.4
              libsamplerate-0.1.8
              libsigsegv-2.10
              libsndfile-1.0.25
              libsoup-2.36.1
              libsvm-3.11
              libtasn1-2.13
              libtasn1-2.14
              libtool-2.4
              libtool-2.4.2
              libunistring-0.9.3
              libusb-1.0.9
              libvorbis-1.3.3
              libwmf-0.2.8.4
              libwnck-2.30.7
              libwww-perl-6.04
              libxml2-2.9.0
              libxslt-1.1.27
              LLVM-3.1
              LLVM-3.2
              lua-5.1.5
              lzo-2.06
              m4-1.4.16
              madplay-0.15.2b
              make-3.81
              matio-1.3.4
              maxima-5.28.0
              mcrypt-2.6.8
              MesaLib-7.8.2
              metis-5.0.2
              mhash-0.9.9.9
              Module-Build-0.4003
              Module-Metadata-1.000011
              Module-Pluggable-3.9
              Module-Pluggable-4.5
              mozilla_nss-3.13.4_nspr-4.9
              mpc-0.9
              mpc-1.0.1
              mpeg2dec-0.4.1
              mpeg2vidcodec_v12
              mpfr-3.1.1
              mpg123-1.14.4
              mysql-5.5.30
              ncurses-5.9
              nedit-5.5-src
              netcdf-4.2.1
              nettle-2.5
              normalize-0.7.7
              ocaml-3.12.1
              octave-3.6.2
              octave-3.6.4
              octave_forge_bundle
              openexr-1.7.0
              openssl-1.0.1c
              openssl-1.0.1d
              opus-1.0.2
              opusfile-0.2
              opus-tools-0.1.5
              ORBit2-2.14.19
              orc-0.4.16
              ortp-0.13.1
              p11-kit-0.12
              p11-kit-0.14
              Pango-1.222
              pango-1.28.4
              pango-1.30.1
              pango-1.32.2
              pango-1.32.3
              Parse-CPAN-Meta-1.4401
              pa_snapshot_v18
              pcre-8.31
              pd_fftw2-0.41-4
              perl-5.16.2
              perl-5.16.2.hidden
              Perl-OSType-1.002
              pidgin-2.10.6
              pixman-0.28.0
              pixman-0.28.2
              pjproject-1.4.5
              pkg-config-0.25
              poppler-0.16.7
              poppler-0.20.5
              popt-1.16
              postgresql-9.2.3
              potrace-1.7
              ppl-0.12.1
              ppl-1.0
              pth-2.0.7
              pulseaudio-2.1
              pvm-3.4.6
              Python-2.7.3
              qemu-0.10.6
              qhull-2003.1
              qrupdate-1.1.1
              qt-everywhere-opensource-src-4.8.4
              readline-6.2
              remake-3.81+dbg-0.3
              rlwrap-0.37
              rpm-4.9.1.3
              sane-backends-1.0.22
              sbcl-1.1.1
              sbcl-1.1.4
              scrollkeeper-0.3.14
              SDL-1.2.15
              sox-14.4.0
              speex-1.2rc1
              spiral-may04
              sqlite-autoconf-3071401
              SuiteSparse-3.7.1
              swig-2.0.8
              swig-2.0.9
              szip-2.1
              tar-1.26
              tbb40_20120408oss
              tcl-8.5.12
              texinfo-4.13
              tiff-4.0.3
              transfig-3.2.5d
              unixODBC-2.3.1
              URI-1.60
              Version-Requirements-0.101020
              vorbis-tools-1.4.0
              vte-0.28.2
              wavpack-4.60.1
              wine-1.4.1
              wxMaxima-12.04.0
              wxWidgets-2.8.12
              wxX11-2.8.12
              XML-LibXML-2.0008
              XML-NamespaceSupport-1.11
              XML-Parser-2.40
              XML-SAX-0.99
              XML-SAX-Base-1.08
              XML-Simple-2.20
              xz-5.0.4
              yasm-1.2.0
              zlib-1.2.7
              .

              And scilab-5.4.0 is being rebuilt now :).

              Regards,
                Sergei.
            • oliver
              ... If you wish something to be added / changed in OCaml distribution, you can create an item in the Bugtracker as a feature wish. It may take a while, but if
              Message 6 of 13 , Feb 24, 2013
                On Thu, Feb 21, 2013 at 09:55:01PM -0800, Sergei Steshenko wrote:
                > Hello,
                >
                > in Perl there is 'x' binary operator which replicates its left operand string:
                >
                > "
                > sergei@amdam2:~/junk> perl -e 'print "foo" x 3, "\n"'
                > foofoofoo
                > ".
                >
                > I didn't see such a thing in the String module. Of course, it's easy to implement, but I think it should be a part of standard library.
                >
                > Thanks,
                > Sergei.


                If you wish something to be added / changed in OCaml distribution,
                you can create an item in the Bugtracker as a feature wish.
                It may take a while, but if you give doofd arguments, you may be successful
                with this.

                I doubt, an operator would make sense, but a faunction maybe.

                On the other side,it is not very hard to create a function that allows this,
                and IMHO it also will not often be used.

                I was surprised for example, that in OCaml 4.00.0 a new function "trim"
                was introduced. It strips away leading and trailing blanks from a string,
                something like a double-sided version of Perl's chomp-function.

                This trim function would be more effort to write by yourself, and IMHO
                is used very frequently. Repeatign strings is a comparingly seldom used
                functionality.
                Making a library fitting every need of a programmer's possible life,
                makes things not always better. if it needs to long to lookup the right function,
                you can write it by yourself.

                There is always a tradeoff between slim and easy to know what is inside a library...
                ..if it's too big, lookup might take too much time...
                ...and programmers may tend to think in collecting things instead of
                thinking in algorithsm and data structures.



                But maybe this here can inspire you:



                ==================================================================

                (* -------------------------------------------------------------------------- *)
                (* a module that includes the String-module and adds the string-multiplicator *)
                (* -------------------------------------------------------------------------- *)
                module Extended_String =
                struct
                include String

                (* the implementation of the string-repeater-stuff begins here *)
                exception Negative_integer_not_allowed

                (* this is the basic functionality that is implemented *)
                (* ---------------------------------------------- *)
                let multstring str times =
                if times < 0 then raise Negative_integer_not_allowed;
                let rec aux sofar idx = match idx with
                | 0 -> sofar
                | num -> aux (sofar^str) (idx-1)

                in
                aux "" times

                (* this makes *** an operator which can be used like perl's 'x' operator, just has a different name *)
                (* ------------------------------------------------------------------------------------------------ *)
                let ( *** ) = ( multstring )

                (* the implementation of the string-repeater-stuff ends here *)

                end


                open Extended_String

                let _ =
                let str_1 = multstring "ABC_" 3 in
                let str_2 = "_XYZ" *** 5 in


                List.iter print_endline [ str_1; str_2 ];

                print_endline ("-" *** 20)

                ==================================================================



                Ciao,
                Oliver
              • Sébastien Dailly
                ... I did not succed to compile Opam nor install opam in cygwin, so I continue with plain old method wich consist of compiling the package I need manually.
                Message 7 of 13 , Feb 25, 2013
                  Le 25/02/2013 01:50, Francois Berenger a écrit :

                  >> the library is compatible.
                  >
                  > Come on, use OPAM (kind of aptitude for OCaml-related things) !
                  >
                  > That's the modern way of installing OCaml software and libraries:
                  >
                  > http://opam.ocamlpro.com/doc/Quick_Install.html
                  >
                  > You'll save yourself a lot of time and troubles.
                  >
                  > If you are on Debian or related, using the system-available
                  > packages is also a smart way.
                  >


                  I did not succed to compile Opam nor install opam in cygwin, so I
                  continue with plain old method wich consist of compiling the package I
                  need manually.

                  Also, Debian is not a good exemple, with the outdated ocaml version
                  (ocaml 4 is in experimental, but all ocaml packages depedencies are
                  stick with ocaml 3.12), outdated batteries, and no planification for
                  updating the packages…
                • Francois Berenger
                  ... If you have the freedom to do so, why not move away from Windows for your OCaml project(s)? ... But I m quite sure OPAM compiles fine on Debian. It does on
                  Message 8 of 13 , Feb 25, 2013
                    On 02/25/2013 05:56 PM, Sébastien Dailly wrote:
                    > Le 25/02/2013 01:50, Francois Berenger a écrit :
                    >
                    >>> the library is compatible.
                    >>
                    >> Come on, use OPAM (kind of aptitude for OCaml-related things) !
                    >>
                    >> That's the modern way of installing OCaml software and libraries:
                    >>
                    >> http://opam.ocamlpro.com/doc/Quick_Install.html
                    >>
                    >> You'll save yourself a lot of time and troubles.
                    >>
                    >> If you are on Debian or related, using the system-available
                    >> packages is also a smart way.
                    >>
                    > I did not succed to compile Opam nor install opam in cygwin, so I
                    > continue with plain old method wich consist of compiling the package I
                    > need manually.

                    If you have the freedom to do so, why not move away from Windows
                    for your OCaml project(s)?

                    > Also, Debian is not a good exemple, with the outdated ocaml version
                    > (ocaml 4 is in experimental, but all ocaml packages depedencies are
                    > stick with ocaml 3.12), outdated batteries, and no planification for
                    > updating the packages…

                    But I'm quite sure OPAM compiles fine on Debian.
                    It does on Ubuntu (I installed a recent OCaml via ocamlbrew:
                    https://github.com/hcarty/ocamlbrew).

                    > ------------------------------------
                    > Archives up to December 31, 2011 are also downloadable at http://www.connettivo.net/cntprojects/ocaml_beginners
                    > The archives of the very official ocaml list (the seniors' one) can be found at http://caml.inria.fr
                    > Attachments are banned and you're asked to be polite, avoid flames etc.Yahoo! Groups Links
                    >
                    >
                    >
                  • Sébastien Dailly
                    ... This is what I did at home, but I still need Windows at work, and I m not free for that… ... I confirm, Opam works fine on Debian, and is definitively
                    Message 9 of 13 , Feb 25, 2013
                      Le 25/02/2013 10:01, Francois Berenger a écrit :
                      > On 02/25/2013 05:56 PM, Sébastien Dailly wrote:
                      >> Le 25/02/2013 01:50, Francois Berenger a écrit :
                      >>
                      >>>> the library is compatible.
                      >>>
                      >>> Come on, use OPAM (kind of aptitude for OCaml-related things) !
                      >>>
                      >>> That's the modern way of installing OCaml software and libraries:
                      >>>
                      >>> http://opam.ocamlpro.com/doc/Quick_Install.html
                      >>>
                      >>> You'll save yourself a lot of time and troubles.
                      >>>
                      >>> If you are on Debian or related, using the system-available
                      >>> packages is also a smart way.
                      >>>
                      >> I did not succed to compile Opam nor install opam in cygwin, so I
                      >> continue with plain old method wich consist of compiling the package I
                      >> need manually.
                      >
                      > If you have the freedom to do so, why not move away from Windows
                      > for your OCaml project(s)?

                      This is what I did at home, but I still need Windows at work, and I'm
                      not free for that…

                      >
                      >> Also, Debian is not a good exemple, with the outdated ocaml version
                      >> (ocaml 4 is in experimental, but all ocaml packages depedencies are
                      >> stick with ocaml 3.12), outdated batteries, and no planification for
                      >> updating the packages…
                      >
                      > But I'm quite sure OPAM compiles fine on Debian.
                      > It does on Ubuntu (I installed a recent OCaml via ocamlbrew:
                      > https://github.com/hcarty/ocamlbrew).
                      >

                      I confirm, Opam works fine on Debian, and is definitively better than
                      the debian packaging system. More generaly, for developement platform,
                      it's better to not rely with the distribution packaging system : they
                      install packages for the wide system and not for a specific user, you
                      can't install the version you wan't and so…

                      > I think there is a plan (by Sylvain Le Gall) to generate all the ocaml packages for Debian automatically some day from _oasis or OPAM package descriptions.

                      I didn't know for this project. But as said above, I think that
                      distribution packages are not a good solution for a developpement
                      system. (But this is another discussion, and not ocaml related…)
                    Your message has been successfully submitted and would be delivered to recipients shortly.