From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 7ED3E7EEAF for ; Thu, 31 Jan 2013 13:23:08 +0100 (CET) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of rixed@happyleptic.org) identity=pra; client-ip=213.251.171.101; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="rixed@happyleptic.org"; x-sender="rixed@happyleptic.org"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of rixed@happyleptic.org) identity=mailfrom; client-ip=213.251.171.101; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="rixed@happyleptic.org"; x-sender="rixed@happyleptic.org"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@eneide.happyleptic.org) identity=helo; client-ip=213.251.171.101; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="rixed@happyleptic.org"; x-sender="postmaster@eneide.happyleptic.org"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAFhhClHV+6tl/2dsb2JhbABFvx8Wc4IfAQU6TwshJQ8FKIhJwgKNY4JIYQOWEZBNgng X-IPAS-Result: Av0EAFhhClHV+6tl/2dsb2JhbABFvx8Wc4IfAQU6TwshJQ8FKIhJwgKNY4JIYQOWEZBNgng X-IronPort-AV: E=Sophos;i="4.84,576,1355094000"; d="scan'208";a="814115" Received: from eneide.happyleptic.org ([213.251.171.101]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES256-SHA; 31 Jan 2013 13:23:08 +0100 Received: from extranet.securactive.net ([82.240.34.113] helo=ccellier.rd.securactive.lan) by eneide.happyleptic.org with esmtp (Exim 4.72) (envelope-from ) id 1U0tBS-0008V4-Sl for caml-list@inria.fr; Thu, 31 Jan 2013 13:24:02 +0100 Received: from rixed by ccellier.rd.securactive.lan with local (Exim 4.80) (envelope-from ) id 1U0tAU-0004FD-4t for caml-list@inria.fr; Thu, 31 Jan 2013 13:23:02 +0100 Date: Thu, 31 Jan 2013 13:23:02 +0100 From: rixed@happyleptic.org To: caml-list@inria.fr Message-ID: <20130131122301.GA14452@securactive.lan> References: <20130131074903.16892.qmail@www1.g3.pair.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130131074903.16892.qmail@www1.g3.pair.com> User-Agent: Mutt/1.5.21 (2010-09-15) Subject: Re: [Caml-list] ANN: Brand-new BER MetaOCaml for OCaml 4.00.1 Once disabled Tk (--no-tk) everything compiled and installed as documented. Thank you. I understand that this is very interesting from a research perspective, but practically meta-programming is only useful as long as performances are the concern, for these problems when some critical information is not known until runtime; I can't think of another usage for runtime code specialisation anyway. So the question that immediately arises is then: why is metaocaml supporting byte code only? Is a metaocamlopt planned, envisaged, doable, in a galaxy not too far away? For the record, I encounter a surprising lot number of occasions, both in pet projects and at work, where meta-programming is a fruitful approach. Probably it's such a technique that once you used it once you suddenly discover how hard you missed it until then. If so then it could be a killer feature for OCaml. Only recently I've used it from scheme to specialize scheme, from scheme to specialize C, from python to specialize C, from C to specialize C, from OCaml to specialize assembly and from OCaml to specialize OCaml (yes, with Printf and Dynlink). The only 'natural' language for doing such things is of course Lisp/Scheme, but even in Lisp you don't have many guaranties that the generated code is safe - you just know that your code fragment is a valid s-expression; not much that what you got from the printf+compile+dlopen approach). MetaOCaml looks so much more interesting from a practical point of view!