From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 065587EFCA for ; Mon, 2 Nov 2015 22:11:59 +0100 (CET) IronPort-PHdr: 9a23:ZNll6R3mYBsi/SyusmDT+DRfVm0co7zxezQtwd8ZsegeKPad9pjvdHbS+e9qxAeQG96LtrQe1qGP7/mocFdDyKjCmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TWM5DIfUi/yKRBybrysXNWC0oLtiqvrp8SbSj4LrQT+SIs6FA+xowTVu5teqqpZAYF19CH0pGBVcf9d32JiKAHbtR/94sCt4MwrqHwI6LoJvvRNWqTifqk+UacQTHF/azh0t4XXskzkZgKK4jM4U34K2k5DCg3BqRX7RYvZozLnu+872S+APMSwQ6piChq46KI+bRbyizocfxs+7H3Twph1hbhYvQnnohtj34r8b4ScNf44daTYK4BJDVFdV9pcAnQSSri3aJECWq9YZb5V Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=markus.mottl@gmail.com; spf=Pass smtp.mailfrom=markus.mottl@gmail.com; spf=None smtp.helo=postmaster@mail-oi0-f54.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of markus.mottl@gmail.com) identity=pra; client-ip=209.85.218.54; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="markus.mottl@gmail.com"; x-sender="markus.mottl@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of markus.mottl@gmail.com designates 209.85.218.54 as permitted sender) identity=mailfrom; client-ip=209.85.218.54; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="markus.mottl@gmail.com"; x-sender="markus.mottl@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-oi0-f54.google.com) identity=helo; client-ip=209.85.218.54; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="markus.mottl@gmail.com"; x-sender="postmaster@mail-oi0-f54.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DBAAAA0TdWlDbaVdFeg1o0bwasJZMbAQ2BWhmHNwc4FAEBAQEBAQEBEAEBAQEHCwsJHzBBDwGBXYIgER0BFAceAxIQDwImAiMBAREBBQEiEyKHeAEDEqEXggiBMT4xi0mBbIJ5hwkKGScNVoQOAQUOgRSFVYdRhSiBRQWOEYgyiA2DIoF2jyeFQoYEEiSBFx8BAYJpgXsgNIMXgmcBAQE X-IPAS-Result: A0DBAAAA0TdWlDbaVdFeg1o0bwasJZMbAQ2BWhmHNwc4FAEBAQEBAQEBEAEBAQEHCwsJHzBBDwGBXYIgER0BFAceAxIQDwImAiMBAREBBQEiEyKHeAEDEqEXggiBMT4xi0mBbIJ5hwkKGScNVoQOAQUOgRSFVYdRhSiBRQWOEYgyiA2DIoF2jyeFQoYEEiSBFx8BAYJpgXsgNIMXgmcBAQE X-IronPort-AV: E=Sophos;i="5.20,236,1444687200"; d="scan'208";a="152424538" Received: from mail-oi0-f54.google.com ([209.85.218.54]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 02 Nov 2015 22:11:58 +0100 Received: by oifu63 with SMTP id u63so103257936oif.2 for ; Mon, 02 Nov 2015 13:11:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=j+4FMK3s72/MFKmVjDl4u4S1eAh8yNeQ8vpYlic7T0w=; b=ekS5a7iZ37fFVcxmO0z6UTJlKCgAP5ujLKTdDlXgGkHrF1XUy4q74AlsczKHKuhBzl WQo2aZJDLF6LLYa/ZJ3CYndNwRhfBY9tuYfcCxgYBVCqAStC5Jcsw+qpxoXlzPOINTyP 5pDJA3uJ59vJqXA8HRxyn50ox+RcXpYQliSTSYKZGgHNkukoqvTlzUdIKYxzWHarrXV/ KTgDcH6NTpdi04+78hpSNWZ0Df5GE48Cc4Nq2J+fUvw4ftR2+fH938/VQk5lhQrG+9hn 8sUIzPREh/j+ul5ggHbYBGrLYSKIejTjVFn7qFUZTvaEPF0yQDyKkL6gZrH1f7ZDBW0b Ad+A== MIME-Version: 1.0 X-Received: by 10.202.71.9 with SMTP id u9mr15513786oia.118.1446498716423; Mon, 02 Nov 2015 13:11:56 -0800 (PST) Received: by 10.182.142.168 with HTTP; Mon, 2 Nov 2015 13:11:56 -0800 (PST) Date: Mon, 2 Nov 2015 16:11:56 -0500 Message-ID: From: Markus Mottl To: OCaml List Content-Type: text/plain; charset=UTF-8 Subject: [Caml-list] ppx replacement for pa_macro? Hi, it seems that a good chunk of camlp4-based preprocessors has been translated to ppx. However, I haven't seen a good (or hopefully even better) replacement for pa_macro yet. OCaml is still a bit lacking in the inlining department, e.g. for partially applied functions where the supplied parameters are known at compile time. Until this changes, macro substitutions are my only option in certain cases if I want to avoid cut&paste or larger closures, expensive function calls, etc. I like the pa_macro feature for locally defined macros, but it's a pity that it doesn't support "higher-order" macros (that can be passed around), and it's also the last thing that prevents me from fully switching to ppx. Any alternatives? Is anybody working on a more powerful, ppx-based replacement? Regards, Markus -- Markus Mottl http://www.ocaml.info markus.mottl@gmail.com