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

Alan Schmitt alan.schmitt at polytechnique.org
Tue Nov 19 00:47:27 PST 2019


Hello

Here is the latest OCaml Weekly News, for the week of November 12 
to 19,
2019.

Table of Contents
─────────────────

Calculon 0.5, an IRC bot library
containers 2.7
Caradoc is a parser and validator of PDF files written in OCaml 
(GPLv2)
OCamlPro's opam cheat sheet, with a new theme!
BAP 2.0 Release
New pages for OCaml API
Old CWN


Calculon 0.5, an IRC bot library
════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-calculon-0-5-an-irc-bot-library/4675/1>


Simon Cruanes announced
───────────────────────

  I'm happy to announce that [Calculon 0.5] is released. Calculon 
  is a
  collection of libraries for writing IRC bots with persistent 
  state,
  plugins, configurable commands, and so on. An instance is 
  `ocabot' on
  `#ocaml at freenode'.


[Calculon 0.5] 
<https://github.com/c-cube/calculon/releases/tag/v0.5>


containers 2.7
══════════════

  Archive: <https://discuss.ocaml.org/t/ann-containers-2-7/4678/1>


Simon Cruanes announced
───────────────────────

  Howdy y'all 🤠, Containers 2.7 has [just hit the shelves]. The
  S-expression library is now functorized (so it should be 
  compatible
  with sexplib with minimal effort); `CCDeque' has received many
  improvements; more printers were added; and some efforts towards 
  3.0
  have been initiated (deprecating some of the wartiest warts).

  Many thanks to @Fardale, @madroach, and @narimiran!


[just hit the shelves]
<https://github.com/c-cube/ocaml-containers/releases/tag/v2.7>


Caradoc is a parser and validator of PDF files written in OCaml 
(GPLv2)
═══════════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/caradoc-is-a-parser-and-validator-of-pdf-files-written-in-ocaml-gplv2/4687/1>


Anton Kochkov said
──────────────────

  Found recently quite interesting project:

        Caradoc is a parser and validator of PDF files written in
        OCaml. This is version 0.3 (beta).

        Caradoc provides many commands to analyze PDFs, as well as
        an interactive user interface in console.

        Caradoc was presented at the the third Workshop on
        Language-Theoretic Security (LangSec) in May 2016. More
        information is available on the [website of the
        conference].

  See the project here <https://github.com/caradoc-org/caradoc>


[website of the conference]
<http://spw16.langsec.org/papers.html#caradoc>


OCamlPro's opam cheat sheet, with a new theme!
══════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/rfc-ocamlpros-opam-cheat-sheet-with-a-new-theme/4689/1>


Thomas Blanc announced
──────────────────────

  Earlier, we dusted-off our language and stdlib cheat-sheets. 
  Because
  we wanted teachers to be able to give those cheats to their 
  students
  as quickly as possible, we missed a few typos (special thanks to
  @hannes, @spop, @Khady, @holmdunc and [narimiran] for their keen
  eyes).

  With more time, we managed to design an opam cheat sheet we are 
  proud
  of. It is organized in two pages: the first page addresses the
  everyday average opam use, the second one aims at peculiar 
  advanced
  use cases (opam-managed project, publishing, repository 
  maintenance,
  etc.).

  Moreover, with the help of listings, we tried the use of colors 
  to
  enhance the readability. For now we welcome all suggestions and 
  fixes,
  so as to do a proper release by the end of November. The PR is 
  [here].

  Note also that there is a lot of space left. The blank space at 
  the
  end can be used to note your own peculiar commands. In any case 
  do not
  hesitate to send us your suggestions.

  So here is the feedback we'd particularly appreciate:

  • @AltGr and @rjbou, the lead opam developers, designed this 
  cheat
    sheet so as to shed light on some important functionalities 
    (some I
    even discovered even though I speak daily with them). If a 
    command
    *you* find useful is not in this cheat-sheet, let us know and 
    we'll
    add it. Feel free to ask for clarification and/or expansion of 
    the
    manual.

  • Also, any feelings about the brand new LaTeX theme we just 
  crafted?
    Let us know!

  Happy hacking!

  Note: If you come to one of our next [training session], you'll 
  get a
  free cheat-sheet! Isn't that a bargain?


[narimiran] <https://github.com/narimiran>

[here] <https://github.com/OCamlPro/ocaml-cheat-sheets/pull/13>

[training session] <http://www.ocamlpro.com/training-ocamlpro/>


Thomas Blanc then added
───────────────────────

  I was suggested to give a pdf version of the sheet for ease of 
  review:
  [here it is]!


[here it is]
<http://www.ocamlpro.com/wp-content/uploads/2019/11/ocaml-opam.pdf>


BAP 2.0 Release
═══════════════

  Archive: 
  <https://discuss.ocaml.org/t/ann-bap-2-0-release/4719/1>


Ivan Gotovchits announced
─────────────────────────

  The Carnegie Mellon University [Binary Analysis Platform (CMU 
  BAP)][1]
  is a suite of utilities and libraries that enables analysis of
  programs in their machine representation. BAP is written in 
  OCaml,
  relies on dynamically loaded plugins for extensibility, and is 
  widely
  used for security analysis, program verification, and reverse
  engineering.

  This is a major update that includes lots of new features, 
  libraries,
  and tools, as well as improvements and bug fixes to the existing
  code. The following small [demo] showcases the modern BAP look 
  and
  feel.  In this announcement we would like to focus on two very
  important features of BAP 2.0:

  • [knowledge representation and reasoning system];
  • [the tagless final representation of program semantics].


[demo] <https://t.co/ylzub6LBRq?amp=1>

[knowledge representation and reasoning system]
<http://binaryanalysisplatform.github.io/bap/api/odoc/bap-knowledge/Bap_knowledge/Knowledge/index.html>

[the tagless final representation of program semantics]
<http://binaryanalysisplatform.github.io/bap/api/odc/bap-core-theory/Bap_core_theory/index.html>

The Knowledge Base
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  The Knowledge Representation and Reasoning System, or the 
  Knowledge
  Base (KB) for short, is the central part of our new 
  architecture. The
  KB is a step forward from the conventional approach to staging
  multiple analyses in which dependent analyses (aka passes) are 
  ordered
  topologically, based on their dependencies. The KB is inspired 
  by
  logic programming and enables an optimal and seamless staging of
  mutually dependent analyses. Mutually dependent analyses are 
  also
  present in the source-based program analysis but are much more 
  evident
  in the field of binary analysis and reverse engineering, where 
  even
  such basic artifacts as control flow graph and call graph are 
  not
  available as ground truth (and in general are not even 
  computable).

  Object properties in the KB are represented with 
  directed-complete
  partially ordered sets.  The KB also imposes the monotonicity
  restriction that requires that all updates to the property are
  monotonic, i.e., each consequent value of the same property is a
  refinement of the previous value. These restrictions enable the 
  KB to
  compute the least fixed point of any property, is computed. A 
  property
  representation could be optionally refined into a complete 
  lattice,
  which gives the KB users extra control on how properties are 
  computed.

  By storing all information in an external location the KB 
  addresses
  the scalability issue so relevant to binary analysis and reverse
  engineering. In the future, we plan to implement a distributed 
  storage
  for our Knowledge Base as well as experiment with other 
  inference
  engines. Soon, it should also possible to work with the 
  knowledge base
  in non-OCaml programs, including our BAP Lisp dialect. That,
  practically, turns the knowledge base into a common runtime for 
  binary
  analysis. In the current version of BAP, the Knowledge Base 
  state is
  fully serializable and portable between different versions of 
  BAP,
  OCaml, and even between native and bytecode runtimes. The 
  Knowledge
  Base state could be imported into an application and is 
  integrated
  with the BAP caching system.


New Program Representation
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  Employing the tagless final embedding together with our new 
  Knowledge
  Base we were able to achieve our main goal - to switch to an
  extensible program representation without compromising any 
  existing
  code that uses the current, non-extensible, BAP Intermediate 
  Language
  (BIL). The new representation allows us to add new language 
  features
  (like floating-point operations or superscalar pipeline 
  manipulations)
  without breaking (or even recompiling) the existing analyses. 
  The new
  representation also facilitates creation of new intermediate 
  languages
  which all can coexist with each other, making it easier to write
  formally verified analyses.

  • [The Main Page]
  • [Documentation]
  • [The tutorial]
  • [Our Chat]


[The Main Page] <https://github.com/BinaryAnalysisPlatform/bap>

[Documentation]
<http://binaryanalysisplatform.github.io/bap/api/odoc/index.html>

[The tutorial] 
<https://github.com/BinaryAnalysisPlatform/bap-tutorial>

[Our Chat] <https://gitter.im/BinaryAnalysisPlatform/bap>


New pages for OCaml API
═══════════════════════

  Archive: 
  <https://discuss.ocaml.org/t/new-pages-for-ocaml-api/4720/1>


sanette announced
─────────────────

  in a recent thread:
  <https://discuss.ocaml.org/t/suggestions-for-ocaml-documentation/4504>
  I (and others) proposed to insert the OCaml manual in the 
  `ocaml.org'
  website.

  I am now working on the API part of it. Here is a first 
  proposition:
  <https://sanette.github.io/ocaml-api/>

  Of course it can be improved, and I'm asking for constructive
  comments, keeping in mind:
  • the design has to integrate well with the current design of
    `ocaml.org'
  • it has to be consistent with the "tutorial" part of the 
  manual:
    <https://sanette.github.io/ocaml-tutorial/>

  On the technical side, finally I didn't use `odoc' because 
  @octachron
  remarked that it could lead to issues when generating the PDF. 
  Hence I
  only post-processed the html; but this is rather light, it takes 
  about
  2sec for about 250 files in the `libref' directory. Once `odoc' 
  gets
  updated, we can think back.

  Some precise questions:
  • in many pages there is room left on the sidebar, so we could
    implement a search engine. Would it be useful? Does someone 
    know how
    to do it?
  • since the API is often next to the programmer's editor, it 
  would be
    easier to her eyes to adapt the color scheme. Do you favor a
    javascript button with something like "dark theme/light 
    theme"?


Old CWN
═══════

  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].

  [Alan Schmitt]


[send me a message] <mailto:alan.schmitt at polytechnique.org>

[the archive] <http://alan.petitepomme.net/cwn/>

[RSS feed of the archives] 
<http://alan.petitepomme.net/cwn/cwn.rss>

[online] <http://lists.idyll.org/listinfo/caml-news-weekly/>

[Alan Schmitt] <http://alan.petitepomme.net/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20191119/0d934620/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 487 bytes
Desc: not available
URL: <http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20191119/0d934620/attachment-0001.pgp>


More information about the caml-news-weekly mailing list