From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id KEdpLOtMm1/zagAA0tVLHw (envelope-from ) for ; Thu, 29 Oct 2020 23:14:51 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id MHkzKOtMm187WwAAB5/wlQ (envelope-from ) for ; Thu, 29 Oct 2020 23:14:51 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 06BE094042B for ; Thu, 29 Oct 2020 23:14:51 +0000 (UTC) Received: from localhost ([::1]:46420 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYH85-0008Md-M3 for larch@yhetil.org; Thu, 29 Oct 2020 19:14:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55402) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYH7a-0008LF-GW for emacs-orgmode@gnu.org; Thu, 29 Oct 2020 19:14:18 -0400 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:42824) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kYH7Y-0006oB-FH for emacs-orgmode@gnu.org; Thu, 29 Oct 2020 19:14:18 -0400 Received: by mail-wr1-x433.google.com with SMTP id w14so4520581wrs.9 for ; Thu, 29 Oct 2020 16:14:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=l+ttTLJBL3tpb2l1oM7Xp7C0Lsxg6VXqBwVk0aZCM4U=; b=BUGbTagl46JhSPE5YnBNaj0wNMj11BmxE25DnwrtsvfdjJxz1746Mj0MuPSiaGbGT+ hvxr9i6WgbQ09eWCreCuG70yTwV04bAbVKCi1DOPQw2vt3Srvgt65P6mb7IP0OL9u6eH vP02cBvk9m9bmByQxetX0ykyFrJzB5w4xEnywV9ciAKSx9ApH9EinO2Qn90H5Kp5cHSq I2mX1S97vwyqrKy2H3osDlm9FghKf2E8eAz/xNO7UEuNg7i0dYvCRWWi/ckrHF5MujyQ LOyGvBVTPVsjmp68VpcYWw3JdHaGpjTfxlIm4XaoFsbL+ZariilKuedNGuyQocc5vGxW plwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=l+ttTLJBL3tpb2l1oM7Xp7C0Lsxg6VXqBwVk0aZCM4U=; b=BRlrqlbIGfTv9njbWim0sfjRlwYBgD6a0DZlnMew8URwhB9mk4yLDjznb7VDSLgTRI BGxvnxyzaM+HA7is4gtSlIuefYAhsF3ubFCgO9tMg9sSGMaMuNjkwCyjtR6/FOpNM3gX LI6dXrjzNbsaDJ8HWC5/YbC6uV1qY7FKQU/T00xMjetsesNJMWJW0F5j8cE+62TInt5Z KCTvyGZJKQFNyi45Ackrk658TMEkJZtHsb3Ip3EqtKAzjjNNI+SKrkUK0KJpkK68oFYh PUx7LpfEWCcPXbZnRblRZPRUTsdgSeWEQSITiYNAroxnmXfO8ht5FcZ75lWzPUn4Otyq 6NiA== X-Gm-Message-State: AOAM532Q+KzMqGjYoc5MmpqavQVwlAOJs/M9qNBR28RPImdhKr9coGLI 4FW86g0D1M1T0fiwJImCji9uS3+fEAPSbVy+ctY= X-Google-Smtp-Source: ABdhPJxLp1IuBgAzKZmtsSFGKSDYRkwHJDS0HM1O4S8pA3v5QwWiw8iDJuBLztRODKbCPpnbQv8QJ745aJ8KtBlP4bQ= X-Received: by 2002:adf:a345:: with SMTP id d5mr9146053wrb.55.1604013254935; Thu, 29 Oct 2020 16:14:14 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Tom Gillespie Date: Thu, 29 Oct 2020 19:14:03 -0400 Message-ID: Subject: Re: Org-Mode as DSL To: Mauro Mandracchia Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=2a00:1450:4864:20::433; envelope-from=tgbugs@gmail.com; helo=mail-wr1-x433.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: emacs-orgmode Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=BUGbTagl; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Spam-Score: -1.71 X-TUID: yMsTSiZI3pd3 Hi Mauro, Welcome! This is definitely not a crazy idea (or at least if it is then you are in good company). Org already has wide support as a markup language, and tools like https://github.com/tecosaur/org-pandoc-import exist that leverage this, but the syntax is not standardized and as a result the elisp implementation is the defacto standard. Depending on what editors your colleagues use and the extent to which features of Org they need to use there might be an org-mode plugin that meets their needs (editing Org as markup yes, using Org babel, no). See the In Other Editors section of https://orgmode.org/install.html#org70be9a1. Beyond its use as a markup language, there are efforts toward making the more powerful parts of Org portable so that runtimes beyond Emacs can correctly interpret and enable the dynamic nature of Org. See for example this thread on formalizing org syntax https://lists.gnu.org/archive/html/emacs-orgmode/2020-10/msg00344.html. Parsers for org already exist in a variety of languages, but they vary in their correctness and their support for org features. In part this is because some of those features (such as footnotes) look like they are easy to implement, but support syntactic variants that parsers do not implement correctly or at all (e.g. the org-ruby parser). Formalizing what it means to be a compliant parser could help in those cases. There is also a need to specify some additional underlying semantics about how to correctly construct trees from the parsed elements and how to associate keywords to elements etc. I am writing up an executable grammar for Org using Racket and #lang brag that I will share in the mentioned thread. Beyond surface syntax and basic semantics I see two key areas that need attention in order for other full org implementations to be viable. The first obstacle is the fact that the semantics of org babel source blocks are inconsistent and that it is hard to know what features a particular ob-lang supports. See https://lists.gnu.org/archive/html/emacs-orgmode/2020-10/msg00244.html for a discussion of some of the challenges here. I have been drafting an email on babel regularization for quite a while, and it will show up on this list in the near future. The second obstacle that I see is the fact that there are many places where Org is deeply integrated with Emacs Lisp. For example it is possible to include raw Emacs Lisp expressions in certain areas of an Org file that will be evaluated at a certain time (the time is not the same in all cases). Supporting this functionality is something that other implementations must be able to do if we do not want Org files to be split into those that use elisp and those that do not (somewhat like the current sorry state of markdown). I have a couple of thoughts about how this could be addressed, but in the absence of a portable implementation of elisp there would be a divide between Org files that use elisp closures outside of src blocks and those that do not. In the event that other languages could someday be used in the top level of an org file, it would be easier for the reference elisp implementation of Org mode to run such files by leveraging the ob-lang implementation for those languages. A third area (of less immediate concern to me) that might need standardization is the export backends. Should different implementations of Org produce the same latex output? Probably. How much trouble would it be to specify? Probably quite a bit. So it might be easier to just run Emacs behind the scenes in those cases and not worry about trying to standardize. Best! Tom