[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