Hello
Here is the latest OCaml Weekly News, for the week of February 20 to 27, 2018.
Archive: https://discuss.ocaml.org/t/ann-py-1-0-released/1597/1
Zach announced:I've just released Py 1.0 on opam. This library provides a nice interface for interacting with Python3.5+ in OCaml. If you're interested, install `py` from opam and let me know how it goes. See README for more information: https://github.com/zshipko/ocaml-pyUnixJunkie asked and Zach replied:
> What is the difference to the other two python bindings already out there? The main difference is the use of Ctypes. The two other OCaml Python libraries I know of are `lymp` and `pyml` - `lymp` calls out to an external Python process, which is unacceptable for some situations - `pyml` uses C stubs -- I had some issues building it in the past, which led me to begin working on `py` `py` also provides a sort-of DSL for working with Python objects.
Archive: https://discuss.ocaml.org/t/scala-vector-like-structure-in-ocaml/1515/12
Simon Cruanes announced:Seems that Daniel Bünzli is on it with [pvec](https://github.com/dbuenzli/pvec). That should be a high quality library!
Archive: https://discuss.ocaml.org/t/the-poor-mans-interface-to-some-svm-package-in-r/1607/1
UnixJunkie announced:In case other people are interested, here is my fresh hack: https://github.com/UnixJunkie/orsvm-e1071 I may do the same for other R packages in the near future if the idea proves to be useful enough. This is quite low level, and there is no plan to support all functionalities the R package provides. If you want more, please contribute.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2018-02/msg00085.html
Richard Jones announced:Fedora has been maintaining an out of tree RISC-V patch in our OCaml package for about 18 months, from: https://github.com/nojb/riscv-ocaml/commits/trunk This has proven to be fairly stable, and I'm wondering when / under what conditions it can go upstream? RISC-V finally settled on a stable libc ABI (contributed to glibc 2.27) which has allowed us to start porting Fedora to RISC-V for real. You can grab bootable disk images from: https://fedorapeople.org/groups/risc-v/disk-images/ and inside run 'dnf install ocaml' which will currently install OCaml 4.06.0 with native RISC-V support. There is also sshd, systemd, gcc, etc., albeit lacking emacs :-( At the moment you can run these on an out of tree qemu patch: https://github.com/riscv/riscv-qemu/tree/qemu-upstream-v6 which supports multiple virtual CPUs and (if you have fast enough hardware) is fairly reasonable for development. There are also development boards coming but it's likely you'll have to wait til July for general availability and even then they will cost $1000 and are not expected to have very good performance. I notice that avsm has signed up for one.David Allsopp then replied:
> Fedora has been maintaining an out of tree RISC-V patch in our OCaml > package for about 18 months, from: > > https://github.com/nojb/riscv-ocaml/commits/trunk > > This has proven to be fairly stable, and I'm wondering when / under what > conditions it can go upstream? Primary concern has been access to real hardware (Xavier has reasonable issues with maintaining via Qemu only), especially given that OCaml's cross-compilation support is not strong (enough). <snip> > There are also development boards coming but it's likely you'll have to > wait til July for general availability and even then they will cost > $1000 and are not expected to have very good performance. I notice that > avsm has signed up for one. We do indeed have a development board coming to Cambridge, and this will hopefully start the process of upstreaming the RISC-V patches. Given timings, it clearly won't be part of OCaml 4.07 though there is a possibility the infrastructure could be in place to allow it to be in OCaml 4.08.Nicolás Ojeda Bär said and Xavier Leroy added:
> When the time comes, the patch will be submitted as a github PR and > everyone is warmly invited to take part in that discussion. Absolutely. Just to reinforce what's been said already: there is no doubt in my mind that the RISC-V back-end will be part of the core OCaml distribution. What is not completely decided is when it will be merged. I'm looking forward to playing with the first RISC-V hardware implementation, thanks to OCaml Labs. It's good to know about the QEMU-based virtual environment mentioned by Rich Jones.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2018-02/msg00092.html
Francois BERENGER announced:I created a thin OCaml wrapper to drive two famous SVM packages for R: e1071 and svmpath. The code is here: https://github.com/UnixJunkie/orsvm-e1071 This package provides two modules: - Svm: this one provides access to a Support Vector Machine with a Radial Basis Function (RBF) or a linear kernel. This is a binary classifier. --- type gamma = float type kernel = RBF of gamma | Linear type filename = string val train: ?debug:bool -> cost:float -> kernel -> filename -> filename -> Result.t val predict: ?debug:bool -> Result.t -> filename -> Result.t val read_predictions: Result.t -> float list --- - Svmpath: this one provides only access to a SVM with a linear kernel, but it allows to quickly find all values that need to be tested to obtain the best classifier. This is also a binary classifier. --- type filename = string val train: ?debug:bool -> filename -> filename -> Result.t val read_lambdas: ?debug:bool -> Result.t -> float list val predict: ?debug:bool -> lambda:float -> Result.t -> filename -> Result.t val read_predictions: Result.t -> float list --- The file src/test.ml is a working example of all functionalities. There are example data and label files under data/. I don't claim the package is super efficient. For example, data are exchanged via text files. However, it is a proof of concept on how to quickly access some functionality provided by an R package. If you want the package to be more efficient or provide access to more functionalities of the underlying R packages, your help is welcome. Thanks to Ronan Lehy for help with understanding how to use the svmpath package. The corresponding package should appear soon in opam.
Archive: https://discuss.ocaml.org/t/grpc-implementation-in-ocaml/1624/1
Bobby Priambodo asked:Anyone ever dabbled with gRPC with OCaml? E.g. building clients, servers, serializers, etc. I've come across [piqi-ocaml](https://github.com/alavrik/piqi-ocaml) and [ocaml-protoc](https://github.com/mransan/ocaml-protoc) for serializations, but none for server/client implementations. I'm interested in exploring this, but would rather avoid duplication if there's an effort or assessment already underway.yallop then replied:
I have some libgrpc bindings in progress that will (if finished) work together with [`ocaml-pb`](https://github.com/yallop/ocaml-pb) and [`ocaml-pb-plugin`](https://github.com/yallop/ocaml-pb-plugin). They're not online yet.
Leo White is giving a talk at Jane Street's NY office on March 7th about adding an effects system to OCaml. This is pretty cool stuff; he shows how to add effects tracking to OCaml seamlessly, so that all existing programs continue to compile as is, and yet, you can track purity quite precisely. It even has region support to let you write pure functions that use mutability locally, like the ST-monad without the monad. He was showing me some of the demos today, and they looked pretty sweet. Space is limited, so if you're interested, you should register soon. https://www.janestreet.com/tech-talks/effective-programming/
Here are links from many OCaml blogs aggregated at OCaml Planet, http://ocaml.org/community/planet/. Full Time: Software Developer (Functional Programming) at Jane Street in New York, NY; London, UK; Hong Kong http://jobs.github.com/positions/0a9333c4-71da-11e0-9ac7-692793c00b45 Full Time: Compiler Engineer at Jane Street in New York & London http://jobs.github.com/positions/9e8ba450-e72e-11e7-926f-6ce07b7015c8
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.