No subject


Mon Jan 18 01:15:08 PST 2010


"Why are C++ function bodies not dumped in XML?
The original sponsors of the project had no need for function bodies. So fa=
r
the authors have not had time or funding to implement the support. Contact =
the
mailing list if you are interested in contributing this support or providin=
g
funding to have it implemented. "

is it still true ?

Also do they maintain comments, space, positions, cpp directives ?
If you need to do source-to-source transformation, e.g. refactoring,
you need those things.

> I thing that there is an OCaml binding to it.

is it this one?:
<http://qt-caml.crapulion.org/trac/browser/trunk/src/gccxml/lib>
		=09
** Basile Starynkevitch added:

[[sorry for this reply, which is barely related to Ocaml, but may be of
interest to several Ocaml fans interested in C++ analysis]]

There is however a small caveat. AFAIK, GCC XML is not much maintained, and
depends upon an old GCC version (but I might be wrong on both points). Late=
st
release of GCC XML seems to be 0.6 from february 2004.

Next (4.5.0) release of GCC will provide two major new features: link time
optimization [=3DLTO] & plugins.

Both features are useful for any kind of C++ static analysis programs; a
plugin can define new passes, and the LTO feature enable them to be run at
"link" time, that is to merge information from several compilation units. A=
nd
indeed GCC have powerful & common internal representations of the compiled
source code, which is the same for C, C++, Fortran, Ada, Java .. source inp=
uts
to GCC.

So one could consider coding a plugin for GCC which extracts the exact
information required by your (Ocaml) static analyser. In addition (sorry fo=
r
the shameless self-promotion), if you like functional programming, you migh=
t
even code your plugin as a MELT module. MELT is a plugin (written by me) wh=
ich
enables you to express your GCC pass in a higher-level Lisp-like mostly
dynamic language (with closures, powerful pattern matching [in particular
pattern matching on GCC internal representations like Gimple], objects - bu=
t
unfortunately no static typing with type inference).

Feel free to ask me more (preferably off list, or preferably on the
gcc at gcc.gnu.org list) about MELT.
		=09
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
3) Batteries Included 1.0.0
Archive: <http://groups.google.com/group/fa.caml/browse_thread/thread/7cc12=
7a065cca224#>
------------------------------------------------------------------------
** Edgar Friendly announced:

The Batteries Included project has come under new management since David
Teller moved on. The project has gone through a process of reorganization a=
nd
is finally ready for a release. We've rethought a lot of the structure
decisions of the old codebase to make it easier to use and develop.

Major changes:
* Builds in 10 seconds, plus 10 seconds for documentation (on my system)
* Depends only on Camomile and Findlib
* Syntax Extensions now optional
* Less magic in build system
* Allows smaller executable creation

We're using OMake instead of ocamlbuild and a much more stock ocamldoc for
documentation generation. All the modules we provide are standard modules, =
no
[module Array =3D struct include Array ... end] magic except in batteries.m=
l
which ties everything together for convenience. Of course there's a bunch o=
f
bug fixes and additional functions.

We're using Semantic Versioning (<http://semver.org/>) for version numbers,
meaning we're taking backwards compatibility very seriously. This is our 1.=
0.0
release, but we don't expect to stay at it very long. We're looking forward=
 to
fixing any bugs you find.

To use:
Download:
<https://forge.ocamlcore.org/frs/download.php/346/batteries-1.0.0.tar.gz>
Documentation: <http://thelema.github.com/batteries-included/hdoc>

To contribute:
Mailing list:
<https://lists.forge.ocamlcore.org/cgi-bin/listinfo/batteries-devel>
Issue Tracker: <http://github.com/thelema/batteries-included/issues>
Code: git://github.com/thelema/batteries-included.git


[1] Like the small batteries used in TV remote controls
		=09
** Dario Teixeira asked and Stefano Zacchiroli replied:

> A big thanks to you and the entire Batteries team is definitely in order!

FWIW, the merits of this release are almost entirely Edgar's, he took up
the whole refactoring work from the previous Batteries design on his
shoulders.

> - Is AAA Batteries definitely the new Batteries?

Yes, this has been discussed extensively on the batteries-devel archive.
That's why this release is called "Batteries Included 1.0.0" and not
"AAA batteries" as initially thought.

On this, I also have a very brief public service announcement: the
Debian package ocaml-batteries-included will, obviously, migrate to this
1.0.0 release. If any of the readers has good reason to want to keep
both this and the old-style Batteries please mail me, but note that the
old code is currently unmaintained, so I'd support that at worst for a
single release cycle (so you better be convincing).
		=09
** Edgar Friendly added:

Mauricio Fern=E1ndez helped in fundamental ways to make this release what i=
t is.
It would be much less featureful if it weren't for him.
		=09
** Dario Teixeira asked and Stefano Zacchiroli replied:

> - What is the relation between the development of ExtLib and AAA Batterie=
s?
>   A first glance at the AAA Batteries API suggests it to be a superset of
>   ExtLib's.  If both development teams are on board, I would suggest an
>   explicit deprecation of ExtLib in favour of AAA Batteries.

This is up to the ExtLib team - our intention is to do much more than ExtLi=
b.

> - Please provide also a GODI package.

This is high on the list of TODO, if anyone can help, in theory it should b=
e
easy. But I'm not a GODI user, so it's hard for me.
		=09
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
4) A syntax extension to simplify List manipulation
Archive: <http://groups.google.com/group/fa.caml/browse_thread/thread/49a6b=
506bbf2ccdd/13c7fa0d1849f6a5#13c7fa0d1849f6a5>
------------------------------------------------------------------------
** Alexander Voinov announced:

This is a syntax extension I've been using since 2003:

<http://www.voinov.org/FP/spbSyntax.tgz>

It defines a number of constructs, which make List traversals look like
loops over arrays/sequences in popular languages like Python:

map [1;2;3] with e -> e + 1

filtermap [1;2;3] with e when e mod 2 =3D=3D 0 -> Some e | _ -> None

foldl [1;2;3] from 0 with s0, e -> s0 + e

iterate [1;2;3] with e -> printf "%d\n" e done

and some more like this.

It relies upon camlp5 instead of (new) camlp4. It maps those constructs int=
o
the corresponding functions of ExtLib (not the standard List module), so
that one can use tail recursion optimization.

The motivation to this syntax extension was as follows. I've been working i=
n
bioinformatics and we have had ~10000000 lines of Python code in our CVS.
I've started to use OCaml for some applications where I needed more runtime
speed than Python could deliver and still didn't want to dive into C++. Als=
o
I tried to promote OCaml among my Pythonic colleagues. That is why I enjoye=
d
a possibility to make list processing constructs looking like Python loops
over lists (that is, dynamic arrays). I've identified a number of common us=
e
cases and mapped each of them onto an appropriate higher order function fro=
m
the Extlib library. On the caml side, these extensions look similar to the
match ... with construct.

An example code, included into the distribution show how I've been and stil=
l
am using these extensions in practical applications.
		=09
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
5) [jobs] Citrix Systems (Cambridge, UK)
Archive: <http://groups.google.com/group/fa.caml/browse_thread/thread/aaf2d=
bb80d8b3d8e#>
------------------------------------------------------------------------
** Dave Scott announced:

Summary: We (Citrix Systems) are looking for OCaml programmers to join our
team in Cambridge, UK.

We use OCaml extensively in the "xapi tool-stack": the control-plane used i=
n
the Xen Cloud Platform[1] on which the widely used XenServer server
virtualisation product[2] is based. XCP aims to provide a complete open-sou=
rce
cloud infrastructure platform with a powerful management stack based on
standards-based APIs, support for multi-tenancy, SLA guarantees and detaile=
d
metrics for consumption based charging.

We are looking to recruit top-class engineers to work on the tool-stack;
applicants must have a good knowledge of data structures and algorithms,
experience of programming in the context of large systems and general
aesthetic good taste when it comes to code and architecture. Our code base =
is
significant and varied: over 130,000 lines of OCaml, solving problems rangi=
ng
from the low-level (Xen hypercalls) to the high-level (resource pool
management), to the compiler-driven (generating language bindings for our X=
en
datamodel).

Our ideal candidate will have:

* significant experience of applications programming in high-level language=
s
  (such as OCaml :-)
* an aptitude for implementing (and reasoning about) complex concurrent,
  distributed systems
* the skills required to contribute to both the architectural design and
  day-to-day development of a large code-base
* strong communication skills and problem solving ability
* a determination to deliver great products that perform brilliantly and me=
et
  our customers' needs

So if you want to tackle interesting and challenging programming problems a=
nd
contribute to an innovative, fast-growing product that is already used by t=
ens
of thousands of customers across the world, please don't hesitate to send m=
e
your CV.

[1] <http://www.xen.org/products/cloudxen.html>
[2] <http://www.citrix.com/English/ps2/products/feature.asp?contentID=3D168=
6939>
		=09
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
6) Other Caml News
------------------------------------------------------------------------
** From the ocamlcore planet blog:

Thanks to Alp Mestan, we now include in the Caml Weekly News the links to t=
he
recent posts from the ocamlcore planet blog at <http://planet.ocamlcore.org=
/>.

Macaque Beta 3 released:
  <http://forge.ocamlcore.org/forum/forum.php?forum_id=3D512>

Batteries Included 1.0.0:
  <http://forge.ocamlcore.org/forum/forum.php?forum_id=3D511>

OCaml Users Meeting, Paris, April 2010:
  <http://rwmj.wordpress.com/2010/01/14/ocaml-users-meeting-paris-april-201=
0/>

Quick news: OCaml on Ubuntu Lucid and MapOSMatic:
  <http://bentobako.org/david/blog/index.php?post/2010/01/14/Quick-news%3A-=
OCaml-on-Ubuntu-Lucid-and-MapOSMatic>

OSS bug tracking systems all SUCK:
  <http://rwmj.wordpress.com/2010/01/12/oss-bug-tracking-systems-all-suck/>

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
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/> .

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D



More information about the caml-news-weekly mailing list