[cwn] Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt alan.schmitt at polytechnique.org
Tue Feb 13 02:38:19 PST 2018


Hello,

Here is the latest OCaml Weekly News, for the week of February 06 to 13, 2018.

1) Catching type error in toplevel
2) first release of bst: a bisector tree implementation
3) Which XML libraries do you recommend?
4) containers 2.0
5) Exceptions vs Option
6) Other OCaml News

========================================================================
1) Catching type error in toplevel
Archive: <https://discuss.ocaml.org/t/catching-type-error-in-toplevel/1538/1>
------------------------------------------------------------------------
** Weng Shiwei asked:

I am working on a grading script to grade students' submission. The general idea
currently is loading a submission file in toplevel and running testcases on many
functions in that submission file.

I choose toplevel is due to some functions in submission may have type error.
Saying one function in submission accepts only one argument but in fact it needs
two arguments. If I try compiling the submission together with grading code,
type error will stop the whole compiling. However, if I run it in toplevel, only
this testcases fail, and the following testcases can still run, which may give
them partial credits.

This is the background. My questions is:

- 1. Is it possible to catch type error in toplevel? If I could this, I can give
better feedback

- 2. Could some test framework like OUnit help? I admit using toplevel is
somewhat hacking. The tricky part is I have to be enough tolerable to submission
files.
      
** Gabriel Radanne replied:

You might want to look at the work done for the OCaml MOOC:
- ICFP
[paper](<https://dl.acm.org/ft_gateway.cfm?id=3110248&ftid=1902061&dwn=1&CFID=5521532&CFTOKEN=75e77e9352adafe6-3CA9280E-FBD1-3243-FB03B2D0A9C845A7>)
and [video](<https://www.youtube.com/watch?v=eVGvDqA_3u8>)
- Hosted version and sources: <https://try.ocamlpro.com/fun-demo/>

They do precisely what you describe (and quite a bit more, in fact).
      
========================================================================
2) first release of bst: a bisector tree implementation
Archive: <https://sympa.inria.fr/sympa/arc/caml-list/2018-02/msg00013.html>
------------------------------------------------------------------------
** Francois BERENGER announced:

A bisector tree allows to do fast but exact nearest neighbor searches in
any space provided that you have a metric (function) to measure the
distance between any two points in that space.

It also allows proximity queries, as in "all points within distance d
from my query point".

Cf. this article for details: "A Data Structure and an Algorithm for the
Nearest Point Problem"; Iraj Kalaranti and Gerard McDonald.
ieeexplore.ieee.org/iel5/32/35936/01703102.pdf

The code is here:
<https://github.com/UnixJunkie/bisec-tree>

It might interest users of vantage point trees (minivpt, and vpt in
opam), kd-trees and such.
I think bst should be faster than vpt in most use cases.

It should appear in opam shortly.
      
========================================================================
3) Which XML libraries do you recommend?
Archive: <https://discuss.ocaml.org/t/which-xml-libraries-do-you-recommend/1535/4>
------------------------------------------------------------------------
** Anton Bachin continued this thread:

For completeness, there is also
[Markup.ml](<https://github.com/aantron/markup.ml>). It is focused on HTML5, but
it also includes an XML parser with the same interface.

I would recommend xmlm for most use cases.
      
========================================================================
4) containers 2.0
Archive: <https://discuss.ocaml.org/t/ann-containers-2-0/1552/1>
------------------------------------------------------------------------
** Simon Cruanes announced:

I'm happy to announce that Containers 2.0 is released and should land on opam
shortly.

There were some improvements since the last
[announce](<https://discuss.ocaml.org/t/ann-containers-2-0-alpha1/1454>). The new
changelog is
[there](<https://github.com/c-cube/ocaml-containers/blob/6b9f39d2240b22a82a2167dee7d27c169ba530a6/CHANGELOG.adoc>).
However, the core of the changes is that dangerous polymorphic operators are
hidden after `open Containers`, and are not relied upon anymore.

There is a [migration
guide](<https://github.com/c-cube/ocaml-containers/blob/f78ee1bf92e9de4ae71ea2e506d7c576229654ff/README.adoc#migration-guide>)
for updating your code to 2.0. In short, `open Pervasives` following `open
Containers` might ease the transition; printing functions are all named `pp`;
and some optional arguments are now mandatory.
      
========================================================================
5) Exceptions vs Option
Archive: <https://discuss.ocaml.org/t/exceptions-vs-option/1559/3>
------------------------------------------------------------------------
** Didier Wenzek said:

This recent post on
[`r/ocaml`](<https://www.reddit.com/r/ocaml/comments/7x4m0e/composable_error_handling_in_ocaml/>)
explores 4 ways to handle errors in OCaml. An interesting reading.
      
========================================================================
6) Other OCaml News
------------------------------------------------------------------------
** From the ocamlcore planet blog:

Here are links from many OCaml blogs aggregated at OCaml Planet,
<http://ocaml.org/community/planet/>.

OCamlPro?s Liquidity-lang demo at JFLA2018 ? a smart-contract design language
 <http://www.ocamlpro.com/2018/02/08/liquidity-smart-contract-deploy-live-demo-on-tezos-alphanet-jfla2018/>
      
========================================================================
Old cwn
------------------------------------------------------------------------

If you happen to miss a CWN, you can send me a message
(alan.schmitt at polytechnique.org) and I'll mail it to you, or go take a look at
the archive (<http://alan.petitepomme.net/cwn/>) or the RSS feed of the
archives (<http://alan.petitepomme.net/cwn/cwn.rss>). If you also wish
to receive it every week by mail, you may subscribe online at
<http://lists.idyll.org/listinfo/caml-news-weekly/> .

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

-- 
OpenPGP Key ID : 040D0A3B4ED2E5C7
Monthly Athmospheric CO₂, Mauna Loa Obs. 2018-01: 407.98, 2017-01: 406.13
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 528 bytes
Desc: not available
URL: <http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20180213/491d66a2/attachment.pgp>


More information about the caml-news-weekly mailing list