Hello
Here is the latest OCaml Weekly News, for the week of March 25 to April 01, 2014.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2014-03/msg00129.html
Anil Madhavapeddy continued this thread to say:As a followup to this, I've written a script that syncs all the open pull requests against the compiler as OPAM compiler switches. This is now running live on the central OPAM respository. For instance, if you now `opam update` and look at your switches: $ opam switch --all -- -- 4.02.0dev+pr10 Add String.{split,rsplit} -- -- 4.02.0dev+pr13 Add String.{cut,rcut}. -- -- 4.02.0dev+pr14 Add absolute directory names to bytecode format for ocamldebug to use -- -- 4.02.0dev+pr15 replace String.blit by String.unsafe_blit -- -- 4.02.0dev+pr17 Cmm arithmetic optimisations -- -- 4.02.0dev+pr18 Patch for issue 5584 -- -- 4.02.0dev+pr2 Parse -.x**2. (unary -.) as -.(x**2.). Fix PR#3414 -- -- 4.02.0dev+pr20 OCamlbuild: Fix the check of ocamlfind -- -- 4.02.0dev+pr3 Extend record punning to allow destructuring. -- -- 4.02.0dev+pr4 Fix for PR#4832 (Filling bigarrays may block out runtime) -- -- 4.02.0dev+pr6 Warn user when a type variable in a type constraint has been instantiated. -- -- 4.02.0dev+pr7 Extend ocamllex with actions before refilling -- -- 4.02.0dev+pr8 Adds a .gitignore to ignore all generated files during `make world.opt' -- -- 4.02.0dev+pr9 FreeBSD 10 uses clang by default, with gcc not available by default -- -- 4.02.0dev+trunk latest trunk snapshot Each switch corresponds to the current development trunk, with the diff in the PR applied. If the patch is sane, you can proceed to install OPAM packages in the experimental tree as usual without affecting your day-to-day compiler switch. Hope this is useful! More details at: http://anil.recoil.org/2014/03/25/ocaml-github-and-opam.html It's set to run daily at the moment, and switches will be deleted once the corresponding pull request is closed.François Bobot then asked and Louis Gesbert replied:
> I'm just wondering if it is wise to add all these switches to the default OPAM repository. For > casual ocaml user the useful switches are lost among all these PR. > > Perhaps the default possible switches can be reduced to the last releases (for people that work on > project that must support old version of ocaml) and to the beta and trunk for people that are > curious of the accepted new features. That's why in OPAM 1.1.1 we changed `opam switch list` to only display the default compilers, and you need to add `--all` to see all existing compiler descriptions. I think it's enough to address your concern.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2014-03/msg00137.html
Sylvain Le Gall announced:Anil and Jacques-Pascal have quickly spotted a bug when generating Makefile/META/setup.ml (missing \n\n and a lot of backup files). I decided to do a quick release tonight to get the situation fixed ASAP. Here is OASIS 0.4.4 https://forge.ocamlcore.org/frs/?group_id=54&release_id=1042
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2014-03/msg00138.html
Francois Berenger announced:version 2.0 (in OPAM) allows to attach a value to a given interval. Useful in case the interval is considered as a key. The new interface is here: https://github.com/UnixJunkie/interval-tree/blob/master/lib/interval_tree.mli It is incompatible with the previous version, which didn't have those values.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2014-03/msg00088.html
Deep in this thread, Anil Madhavapeddy said and Thomas Gazagnaire added:> There's a significant amount of metadata that isn't track in Git. > Issues, pull requests, releases, comments, descriptions are all > available via the API, but not in Git. Thomas Gazagnaire started > a CLI that dumps that information into a local git repository using > his ocaml-git implementation, but it's not quite complete yet. Do > get in touch if anyone's interested in helping finishing that effort > off to provide a GitHub export to a more neutral format... The repo is there: https://github.com/samoht/ghim for whose interested. But that's just an early experiment for now on. Patches are more than welcome!
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2014-03/msg00102.html
Francois Berenger asked:I'm always annoyed when I have to wait ~20mn to install OCaml on a machine. Nowadays, thanks to OPAM, I think only a compiler is needed to bootstrap quickly an OCaml environment for developers.Fabrice Le Fessant suggested:
We just uploaded another solution to this problem : opam init --comp 4.01.0+bin-ocp It is a binary distribution of OCaml 4.01.0 ("ocp" stands for OCamlPro, as it includes a small patch for relocation of the executables), working only on Intel Linux for now (32 and 64 bits), so you will only pay the download cost (about 65 MB), and not the compilation cost (you will still need to compile the next packages that you will install, as it is only the OCaml distribution). On most of our settings, downloading is much faster than compiling. Once it is installed, it keeps the archive in a cache (in ~ /.opam/.ocp-compiler-cache/), so that creating other aliases from this switch will only be the cost of decompressing the archive: opam switch 4.01.0-for-something-else --alias 4.01.0+bin-ocp Tell us if you meet any problem using it !Later in the thread, Francois Berenger said:
For the record, I created a shell script using fpm to create an RPM package from a source install of the compiler. Drawbacks: - it needs root access on the computer where you create the package for the make install step - it needs fpm Maybe, if the ocaml source distribution 'make install' target was obeying DESTDIR, we could avoid being root. My example installs everything in /usr/local/ocaml-4.01.0. The script is here: https://github.com/UnixJunkie/create-ocaml-pkg/blob/master/commands.sh
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2014-03/msg00173.html
Kai Trojahner announced:RTT has an open full-time position at our Munich office. In this position, you will be part of a Scrum team that develops RTT Stellar, our physically-based rendering system for synthesizing photorealistic images. As one of its key features, Stellar allows users to define materials and lights at run-time by means of programs written in a custom programming language. You will be working on the foundation of Stellar that comprises a C++ infrastructure and a compiler, written in OCaml, that translates Stellar programs into executable code for both CPUs and GPUs. Here is a link to the official job description: Professional Software Engineer - C++ / Functional Programming http://www.rtt.ag/en/career/join-our-team/Professional-Software-Engineer-m-f--C---Functional-Programming Feel free to contact me for more information about this position.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2014-04/msg00002.html
ygrek announced:Ahrefs Pte Ltd http://ahrefs.com/ is looking for a backend developer to join our small high-skilled team of professionals. At Ahrefs we have built an internet-wide crawler and a custom distributed petabyte-scale database to store the index of the whole Web. On top of that we are currently building various analytical services for end-users. This is where you will be able to apply your skills and push the world forward. We are a small company http://ahrefs.com/team.php, enjoying global visibility of our work and vivid feedback from users, with an everyday opportunity to leverage our skills to maximum potential, limited only by our own ideas. 3/4 of the company are developers, and backend team is the primary driving force here. Our motto is "first do it, then do it right, then do it better". What we need ------------ Our backend is implemented mainly in OCaml, as such the knowledge of OCaml is a big plus. Otherwise, understanding of functional programming in general and interest in learning OCaml is required. The candidate will have to deal with the following technologies on the daily basis : - networks & distributed systems - 3+ petabyte of live data - OCaml - linux - git Knowledge of C++ is a plus. The ideal candidate is expected to : - independtly deal with and investigate bugs, schedule tasks and dig code - make argumented technical choice and take responsibility for it - understand the whole technology stack at all levels : from network and userspace code to OS internals and hardware - handle full development cycle of a single component, i.e. formalize task, write code and tests, setup and support production (devops) - approach problems with practical mindset and suppress perfectionism when time is a priority These requirements stem naturally from our approach to development with fast feedback cycle, highly-focused personal areas of responsibility and strong tendency to vertical component splitting. What you get ------------ We offer : - competitive salary - modern office in Singapore city centre - relocation package - insurance - informal and thriving atmosphere - first-class workplace equipment (hardware, tools) - international team - no dress code Contact ------- Interested? Drop your CV and short description of how we can benefit each other along with salary expectations and date of availability to connect@ahrefs.com
Thanks to Alp Mestan, we now include in the OCaml Weekly News the links to the recent posts from the ocamlcore planet blog at http://planet.ocaml.org/. Power means: http://shayne-fletcher.blogspot.com/2014/03/power-means.html NLCertify: a Formal Nonlinear Optimizer: https://forge.ocamlcore.org/projects/nl-certify/ Codio, the insanely slick web way to build Mirage unikernels from a browser: http://anil.recoil.org/2014/03/26/codio-now-has-opam-support.html
If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a look at the archive or the RSS feed of the archives.
If you also wish to receive it every week by mail, you may subscribe online.