From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p1SIOR3I030649 for ; Mon, 28 Feb 2011 19:24:27 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqELAIZ3a01iilsoYGdsb2JhbACEJpNcMY4gFwsIBhQDIqtaPIIdhFyJCQEEBAGBIoNEdgSFD4pL X-IronPort-AV: E=Sophos;i="4.62,241,1297033200"; d="scan'208";a="76756427" Received: from nm11-vm1.bullet.mail.ne1.yahoo.com ([98.138.91.40]) by mail3-smtp-sop.national.inria.fr with SMTP; 28 Feb 2011 19:24:21 +0100 Received: from [98.138.90.49] by nm11.bullet.mail.ne1.yahoo.com with NNFMP; 28 Feb 2011 18:24:20 -0000 Received: from [98.138.89.173] by tm2.bullet.mail.ne1.yahoo.com with NNFMP; 28 Feb 2011 18:24:20 -0000 Received: from [127.0.0.1] by omp1029.mail.ne1.yahoo.com with NNFMP; 28 Feb 2011 18:22:08 -0000 X-Yahoo-Newman-Property: ymail-5 X-Yahoo-Newman-Id: 633551.11328.bm@omp1029.mail.ne1.yahoo.com Received: (qmail 49564 invoked by uid 60001); 28 Feb 2011 18:22:07 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1298917327; bh=O+plryHvdZL1FFiCj3HOcOBoRc+FiYc2M5APVcVpyew=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=sF6nyXm2Spus+lR18tm8m5/X+ZpbhpOx3n6toqiNuKN1f9ma6Lw4o3GzVIrDyZIgTC8alfUJqc5BUwEsdSGjpAV/yEXMKaKoWZbEHl3MYHbieiVXdYNmL4U046ddX6nhLvXq5XDrbKB/Gv6zYsgeqmjVnVd1Zw0Ng99Mup7/cfI= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=PubBVXDT21Y3FQUqMIeEBsvktwUhqiVyfKOEkkLjn6lAaELeEO33PxqvuXN2uO7ec1byuyZ8XX0cDO9fBHTVeYA7H9NGR/fTEynXcGDg/Yx1G6zRWNmqVWPSKOXIS6VrECt/HtyXugWz82nq988mChGBa5Zn7LJh6YaDAk5TPYk=; Message-ID: <676122.49521.qm@web111511.mail.gq1.yahoo.com> X-YMail-OSG: 1hNR4WQVM1nk6K9dRg2EG4NrvnvCgjD4knu4fbYw8bGrOFg Piu_7O8_vW8ZCK.VNNYoqRlR49DBN3ALXjY9jmabPiLaEUKxA0pEt9lWXsKT .aAEIL2U4AspE6EMdhbHNVdZ2nfsC2t7BYkLSIt5e.eGhfrT6qQ1luxlbrPV RloBE.fXF5rD.bFSKhRiV4BfFhKHz7JXnAZIP3d54_Yyj66FM_4ff04WhIae qo1bJggyxK6QRaHL5rIKv73yhniZVC_RXDb._LNAqx6QDRnl9aZQIvYwBxIC AD7gqxEzWwJIkKWK3FXKZE_dYEhGGJtr5jzeqK27qG.PF3WzuZdn2UfmPYvx arppUEEx3J.w340CrwQhPAUFkJqXTdRi1tCPNjp1tUZeynXV207Y3YQnegcv 4dZNwgVRnnmHW Received: from [213.205.70.203] by web111511.mail.gq1.yahoo.com via HTTP; Mon, 28 Feb 2011 10:22:07 PST X-Mailer: YahooMailClassic/11.4.20 YahooMailWebService/0.8.109.292656 Date: Mon, 28 Feb 2011 10:22:07 -0800 (PST) From: Dario Teixeira To: caml-list@inria.fr MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by walapai.inria.fr id p1SIOR3I030649 Subject: [Caml-list] GSoC ideas Hi, I would like to suggest a thread for brainstorming GSoC ideas. I don't mean one where people produce full-fledged proposals (though they are also welcome), but instead one where even half-baked ideas can be thrown for discussion of their feasibility. Moreover, even if they are not picked by GSoC students, these ideas can later on be recycled into student projects under another umbrella. Below are three suggestions of my own. Cheers, Dario Teixeira =================================== A native generic syntax highlighter Create a generic syntax highlighting engine that given a source-code fragment and a description of the language syntax produces a highlighted version of the code (in XHTML, for example). Camlhighlight [1] does this already, but it's only a very thin wrapper around a very heavy C++ library. I suspect that a much lighter and elegant solution could be built using only Ocaml. For extra usefulness, the engine should be able to handle existing syntax definition formats such as the ones used by Vim or other popular editors. [1] http://camlhighlight.forge.ocamlcore.org/ ====================================== A WYSIWYG text editor widget for Eliom Create an Eliom widget offering users a WYSIWYG editor for semantically-rich documents. It can be used, for instance, for entering wiki content by users who are not well-versed in wiki syntax. This widget would also be a good demonstration of Ocsigen 2.0's ability to generate both backend and frontend code from a common Ocaml source. ================================================ A converter of any DTD into a combinator library The XHTML.M module shipped with Ocsigen provides a clever way to ensure that Eliom's output is valid XHTML in accordance to the W3C's DTD for the markup. However, the module was constructed manually, which does not bode well for an easy, quick, and above all, correct application of the same idea to other Web markups such as MathML and SVG. Most of these standard markups are still defined using old-fashioned DTDs, which are not that expressive. In particular, I assume that the phantom-type trickery used by XHTML.M is more than expressive enough to encode any DTD. So, it should be possible to create a programme that given a DTD will automatically generate an XHTML.M-like combinator library, particularly if the DTD is annotated with extra information (such as how some PCDATAs should map into native Ocaml types).