Hello
Here is the latest OCaml Weekly News, for the week of September 13 to 20, 2016.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2016-09/msg00036.html
Андрей Бергман asked:is there a good article or just short explanation how compile-type checking of Printf arguments works? Does it require special compiler support like in C++ compilers/analyzers, or one can somehow do the trick of parsing string literal using Ocaml language itself? (actually latter does not look possible to me)David Allsopp replied:
It does require a certain amount of special support, yes - see the Pexp_constant(Pconst_string _) case in typing/typecore.ml, in particular the comment "Terrible hack for format strings"! In essence, a string is "magically" interpreted as a format string if it is used in a context where one would be expected (e.g. the usual Printf.printf). It's one of the reasons Pervasives.format_of_string exists (because they're type- rather than syntax-driven). From that point onwards, it's a lot of GADTs, but doesn't require any special language support! If you were adding Printf to OCaml for the first time now, you'd probably use quoted string literals instead (see http://caml.inria.fr/pub/docs/manual-ocaml/extn.html#sec249) - and the entire thing would then be in OCaml with no special case hacks.Mario Pereira also replied then Maxime Dénès suggested:
> You can do it using GADTs. However, I am not sure if this is explained > somewhere. Some ideas are described here: https://ocaml.org/meetings/ocaml/2013/proposals/formats-as-gadts.pdfKakadu also replied:
Functional unparsing by Olivier Danvy can be related article. http://www.brics.dk/RS/98/12/BRICS-RS-98-12.pdfDaniel Bünzli then added:
That's a good reference. You may also want to have a look at Gabriel Radanne's recent blog post here: http://drup.github.io/2016/08/02/difflists/ which will show you how to do the same with GADTs, which is a bit more convenient.Oleg also replied to Kakadu:
Well, in that vein one can point out Functional un|unparsing http://okmij.org/ftp/typed-formatting/index.html#derivation which deals with both type-safe printf and scanf (and, moreover, using exactly the same format for both printing and parsing) and derives even more type-safe parsing/unparsing methods.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2016-09/msg00052.html
Michael Sperber announced:BOB has a heavy emphasis on functional programming, so OCaml talks are very welcome! BOB Conference 2017 "What happens when we use what's best for a change?" http://bobkonf.de/2017/en/cfp.html Berlin, February 24 Call for Contributions Deadline: October 30, 2016 You are actively engaged in advanced software engineering methods, implement ambitious architectures and are open to cutting-edge innovation? Attend this conference, meet people that share your goals, and get to know the best software tools and technologies available today. We strive to offer a day full of new experiences and impressions that you can use to immediately improve your daily life as a software developer. If you share our vision and want to contribute, submit a proposal for a talk or tutorial! Topics ------ We are looking for talks about best-of-breed software technology, e.g.: - functional programming - persistent data structures and databases - types - formal methods for correctness and robustness - abstractions for concurrency and parallelism - metaprogramming - probabilistic programming - ... everything really that isn’t mainstream, but you think should be. Presenters should provide the audience with information that is practically useful for software developers. This time, we’re especially interested in experience reports. But this could also take other forms, e.g.: - introductory talks on technical background - overviews of a given field - demos and how-tos Requirements ------------ We accept proposals for presentations of 45 minutes (40 minutes talk + 5 minutes questions), as well as 90 minute tutorials for beginners. The language of presentation should be either English or German. Your proposal should include (in your presentation language of choice): - an abstract of max. 1500 characters. - a short bio/cv - contact information (including at least email address) - a list of 3-5 concrete ideas of how your work can be applied in a developer’s daily life -additional material (websites, blogs, slides, videos of past presentations, …) Submit here: https://docs.google.com/forms/d/e/1FAIpQLSfFuyBhBTCOTS0zTXBzY1KVuKpumyIBTucLcJ1ArC1XpWsG-Q/viewform Organisation - direct questions to bobkonf at active minus group dot de - proposal deadline: October 30, 2016 - notification: November 15, 2016 - program: December 1, 2016 NOTE: The conference fee will be waived for presenters, but travel expenses will not be covered. Speaker Grants -------------- BOB has Speaker Grants available to support speakers from groups under-represented in technology. We specifically seek women speakers and speakers who are not be able to attend the conference for financial reasons. Details are here: http://bobkonf.de/2017/en/speaker-grants.html Shepherding ----------- The program committee offers shepherding to all speakers. Shepherding provides speakers assistance with preparing their sessions, as well as a review of the talk slides. Program Committee ----------------- (more information here: http://bobkonf.de/2017/programmkomitee.html) - Matthias Fischmann, zerobuzz UG - Matthias Neubauer, SICK AG - Nicole Rauch, Softwareentwicklung und Entwicklungscoaching - Michael Sperber, Active Group - Stefan Wehr, factis research Scientific Advisory Board - Annette Bieniusa, TU Kaiserslautern - Torsten Grust, Uni Tübingen - Peter Thiemann, Uni Freiburg
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2016-09/msg00057.html
Hendrik Tews announced:I would like to announce The Enhanced OCaml Documentation Version 4.03 available via http://www.askra.de/software/ocaml-doc/4.03 This version of the OCaml manual enhances the original html version in the following ways: - Changes (wrt version 4.02) are tagged with icons and color - an additional appendix contains all grammar rules
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.