From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Roland Coeurjoly Newsgroups: gmane.emacs.bugs Subject: bug#40852: Support compilation of Haskell in org mode babel blocks. Date: Sat, 25 Apr 2020 21:04:03 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000d892b705a4222592" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="126181"; mail-complaints-to="usenet@ciao.gmane.io" To: 40852@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Apr 25 21:05:18 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jSQ74-000Wg4-1q for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 25 Apr 2020 21:05:18 +0200 Original-Received: from localhost ([::1]:45454 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jSQ72-0002ou-PY for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 25 Apr 2020 15:05:16 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51492) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jSQ6s-0002oL-Cv for bug-gnu-emacs@gnu.org; Sat, 25 Apr 2020 15:05:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jSQ6q-0004XH-J3 for bug-gnu-emacs@gnu.org; Sat, 25 Apr 2020 15:05:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:48817) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jSQ6o-0004Vq-Ki for bug-gnu-emacs@gnu.org; Sat, 25 Apr 2020 15:05:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jSQ6o-0004ME-Fx for bug-gnu-emacs@gnu.org; Sat, 25 Apr 2020 15:05:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Roland Coeurjoly Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 25 Apr 2020 19:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 40852 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.158784146016695 (code B ref -1); Sat, 25 Apr 2020 19:05:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 25 Apr 2020 19:04:20 +0000 Original-Received: from localhost ([127.0.0.1]:60363 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jSQ67-0004LC-Ib for submit@debbugs.gnu.org; Sat, 25 Apr 2020 15:04:19 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:43087) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jSQ66-0004L4-1J for submit@debbugs.gnu.org; Sat, 25 Apr 2020 15:04:18 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51160) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jSQ65-0002l1-AF for bug-gnu-emacs@gnu.org; Sat, 25 Apr 2020 15:04:17 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jSQ64-0002b4-KH for bug-gnu-emacs@gnu.org; Sat, 25 Apr 2020 15:04:17 -0400 Original-Received: from mail-ot1-x32f.google.com ([2607:f8b0:4864:20::32f]:39330) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jSQ64-0002a8-6P for bug-gnu-emacs@gnu.org; Sat, 25 Apr 2020 15:04:16 -0400 Original-Received: by mail-ot1-x32f.google.com with SMTP id m13so18761757otf.6 for ; Sat, 25 Apr 2020 12:04:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=smAMR7cF8D14HFiGAb+0LB3UcH4HNAFkO5NlFq5pA9c=; b=hL4UvpyEdM8h6xra1itqevHTZSy3qBRQDp2MqhdDTqvuw2F3ZmipVHPatFouiIs5De M6pWlsHQQS6R/4ZlzuUzvFNsgfYPAaJwt9Wd3NMBCMm0GSOXrchGfORqdY/ObKbyrmLo aacuiwa+QnErToY/MfnS3RhhxK/hGgknNHCrwJGRkB/v0WceuicYnRo4mwRgMZhH1BwZ 4IMc6CKJdueumt3gMwPrx/v3XpL6PFhFE+XMXYgb9MH43s6heYyl5EfZRc6zmmHyHzpe ncKZds6N4efSZ+M47XNvvUk88z2r1UJhLqE1sIfoAo/GrW3ZX8xrhbPnDs+LJYWolHdF h/xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=smAMR7cF8D14HFiGAb+0LB3UcH4HNAFkO5NlFq5pA9c=; b=ch90feWLnfDE7ZLHwwGhvWW6yGDOL1mnR7QRiSw3YHdScqaG6dnlxVgEvitXVP3KuD aLteq3y0uut7N9zlWyJTjaitvITZSZrSG5a6vLBr8W6TlunHDS/UQwpLOcLCIQJQbFzF +DY31TFK83Z9sMPJ5pBIy+Y2a5ZBB10UR5hjH12+T+Nkq5D7afChgkHKMtYThRyn5z7n 1gsD6JyYhXGFXTt49CjivFtTc3aU9h9SK9IViI+TPqekcsAvSo1l6PFGODF7uffjr+1b +pmUJWIvpVJLDe8SKk0C9cEA4cztzoYLORrSIF/AxQkzz48LdjeJRCuGOnpZfTBbn+4d awIQ== X-Gm-Message-State: AGi0Pua9JVrNZnWTno1AnLMw9CHSFdp0z0nL5qRjuyRVD9rTsI3sHKfE c8VS/Yw+pgC1OlOYefLyzdXsMDfOAypXhXA2iGT/Ki7G X-Google-Smtp-Source: APiQypKd8H4utyOu748xh5uJGtRKiYyoC0NAKU1wR9rospttU8yEX8pKGIyskMzram+90c8eTZPHzxlpwrY9/SwuSl0= X-Received: by 2002:aca:3441:: with SMTP id b62mr9587905oia.146.1587841454335; Sat, 25 Apr 2020 12:04:14 -0700 (PDT) Received-SPF: pass client-ip=2607:f8b0:4864:20::32f; envelope-from=rolandcoeurjoly@gmail.com; helo=mail-ot1-x32f.google.com X-detected-operating-system: by eggs.gnu.org: Error: [-] PROGRAM ABORT : Malformed IPv6 address (bad octet value). Location : parse_addr6(), p0f-client.c:67 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:179026 Archived-At: --000000000000d892b705a4222592 Content-Type: multipart/alternative; boundary="000000000000d892b505a4222590" --000000000000d892b505a4222590 Content-Type: text/plain; charset="UTF-8" Haskell code can be both compiled (for example with ghc), or interpreted (with ghci). Until now, org babel had only support for interpretation. Haskell is weird in that some code for the interpreter cannot be compiled and viceversa. For example, in ghci (the interpreter) you are required to use let to declare functions . In this patch I add support for compilation with the header argument :compile yes. The function to compile haskell is almost a copy paste of the C funcion in ob-C.el. By default I retain the original behavior, i.e. interpreting the block. I have tested this patch in emacs-27.0.91. It is my first patch to GNU Emacs and I am a newbie with both elisp and haskell. --000000000000d892b505a4222590 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable --000000000000d892b505a4222590-- --000000000000d892b705a4222592 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-Haskell-specific-header-argument-compile-to-comp.patch" Content-Disposition: attachment; filename="0001-Add-Haskell-specific-header-argument-compile-to-comp.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k9fzho6q0 RnJvbSBmN2E3MjczZGJmMDM0NDQ1ZTBiZjQ4YzJlYjJkMmQxNmZlZDY2NjhkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2xhbmQgQ29ldXJqb2x5IDxyb2xhbmRjb2V1cmpvbHlAZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI1IEFwciAyMDIwIDIwOjM1OjIyICswMjAwClN1YmplY3Q6IFtQ QVRDSF0gQWRkIEhhc2tlbGwgc3BlY2lmaWMgaGVhZGVyIGFyZ3VtZW50IGNvbXBpbGUsIHRvIGNv bXBpbGUKIGluc3RlYWQgb2YgaW50ZXJwcmV0IHRoZSBib2R5IG9mIHNvdXJjZSBibG9jawoKLS0t CiBsaXNwL29yZy9vYi1oYXNrZWxsLmVsIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL29yZy9vYi1oYXNrZWxsLmVsIGIvbGlzcC9vcmcv b2ItaGFza2VsbC5lbAppbmRleCBlMDA0YTM0MDVlLi5jOTQ1MTM2ZjMzIDEwMDY0NAotLS0gYS9s aXNwL29yZy9vYi1oYXNrZWxsLmVsCisrKyBiL2xpc3Avb3JnL29iLWhhc2tlbGwuZWwKQEAgLTIz LDEyICsyMywxMyBAQAogCiA7OzsgQ29tbWVudGFyeToKIAotOzsgT3JnLUJhYmVsIHN1cHBvcnQg Zm9yIGV2YWx1YXRpbmcgaGFza2VsbCBzb3VyY2UgY29kZS4gIFRoaXMgb25lIHdpbGwKLTs7IGJl IHNvcnQgb2YgdHJpY2t5IGJlY2F1c2UgaGFza2VsbCBwcm9ncmFtcyBtdXN0IGJlIGNvbXBpbGVk IGJlZm9yZQorOzsgT3JnLUJhYmVsIHN1cHBvcnQgZm9yIGV2YWx1YXRpbmcgSGFza2VsbCBzb3Vy Y2UgY29kZS4KKzs7IEhhc2tlbGwgcHJvZ3JhbXMgbXVzdCBiZSBjb21waWxlZCBiZWZvcmUKIDs7 IHRoZXkgY2FuIGJlIHJ1biwgYnV0IGhhc2tlbGwgY29kZSBjYW4gYWxzbyBiZSBydW4gdGhyb3Vn aCBhbgogOzsgaW50ZXJhY3RpdmUgaW50ZXJwcmV0ZXIuCiA7OwotOzsgRm9yIG5vdyBsZXRzIG9u bHkgYWxsb3cgZXZhbHVhdGlvbiB1c2luZyB0aGUgaGFza2VsbCBpbnRlcnByZXRlci4KKzs7IEJ5 IGRlZmF1bHQgd2UgZXZhbHVhdGUgdXNpbmcgdGhlIEhhc2tlbGwgaW50ZXJwcmV0ZXIuCis7OyBU byB1c2UgdGhlIGNvbXBpbGVyLCBzcGVjaWZ5IDpjb21waWxlIHllcyBpbiB0aGUgaGVhZGVyLgog CiA7OzsgUmVxdWlyZW1lbnRzOgogCkBAIC02MCw4ICs2MSw2NCBAQCBvcmctYmFiZWwtaGFza2Vs bC1lb2UKIAogKGRlZnZhciBoYXNrZWxsLXByb21wdC1yZWdleHApCiAKLShkZWZ1biBvcmctYmFi ZWwtZXhlY3V0ZTpoYXNrZWxsIChib2R5IHBhcmFtcykKLSAgIkV4ZWN1dGUgYSBibG9jayBvZiBI YXNrZWxsIGNvZGUuIgorKGRlZmN1c3RvbSBvcmctYmFiZWwtSGFza2VsbC1jb21waWxlciAiZ2hj IgorICAiQ29tbWFuZCB1c2VkIHRvIGNvbXBpbGUgYSBIYXNrZWxsIHNvdXJjZSBjb2RlIGZpbGUg aW50byBhbiBleGVjdXRhYmxlLgorTWF5IGJlIGVpdGhlciBhIGNvbW1hbmQgaW4gdGhlIHBhdGgs IGxpa2UgZ2hjCitvciBhbiBhYnNvbHV0ZSBwYXRoIG5hbWUsIGxpa2UgL3Vzci9sb2NhbC9iaW4v Z2hjCitwYXJhbWV0ZXIgbWF5IGJlIHVzZWQsIGxpa2UgZ2hjIC12IgorICA6Z3JvdXAgJ29yZy1i YWJlbAorICA6dmVyc2lvbiAiMjcuMCIKKyAgOnR5cGUgJ3N0cmluZykKKworKGRlZmNvbnN0IG9y Zy1iYWJlbC1oZWFkZXItYXJnczpoYXNrZWxsICcoKGNvbXBpbGUgLiA6YW55KSkKKyAgIkhhc2tl bGwtc3BlY2lmaWMgaGVhZGVyIGFyZ3VtZW50cy4iKQorCisoZGVmdW4gb3JnLWJhYmVsLUhhc2tl bGwtZXhlY3V0ZSAoYm9keSBwYXJhbXMpCisgICJUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJl IGNhbGxlZCBieSBgb3JnLWJhYmVsLWV4ZWN1dGU6aGFza2VsbCciCisgIChsZXQqICgodG1wLXNy Yy1maWxlIChvcmctYmFiZWwtdGVtcC1maWxlCisJCQkiSGFza2VsbC1zcmMtIgorICAgICAgICAg ICAgICAgICAgICAgICAgIi5ocyIpKQorICAgICAgICAgKHRtcC1iaW4tZmlsZQorICAgICAgICAg IChvcmctYmFiZWwtcHJvY2Vzcy1maWxlLW5hbWUKKyAgICAgICAgICAgKG9yZy1iYWJlbC10ZW1w LWZpbGUgIkhhc2tlbGwtYmluLSIgb3JnLWJhYmVsLWV4ZWV4dCkpKQorICAgICAgICAgKGNtZGxp bmUgKGNkciAoYXNzcSA6Y21kbGluZSBwYXJhbXMpKSkKKyAgICAgICAgIChjbWRsaW5lIChpZiBj bWRsaW5lIChjb25jYXQgIiAiIGNtZGxpbmUpICIiKSkKKyAgICAgICAgIChmbGFncyAoY2RyIChh c3NxIDpmbGFncyBwYXJhbXMpKSkKKyAgICAgICAgIChmbGFncyAobWFwY29uY2F0ICdpZGVudGl0 eQorCQkgICAgICAgICAgIChpZiAobGlzdHAgZmxhZ3MpIGZsYWdzIChsaXN0IGZsYWdzKSkgIiAi KSkKKyAgICAgICAgIChsaWJzIChvcmctYmFiZWwtcmVhZAorCSAgICAgICAgKG9yIChjZHIgKGFz c3EgOmxpYnMgcGFyYW1zKSkKKwkgICAgICAgICAgICAob3JnLWVudHJ5LWdldCBuaWwgImxpYnMi IHQpKQorCSAgICAgICAgbmlsKSkKKyAgICAgICAgIChsaWJzIChtYXBjb25jYXQgIydpZGVudGl0 eQorCQkgICAgICAgICAgKGlmIChsaXN0cCBsaWJzKSBsaWJzIChsaXN0IGxpYnMpKQorCQkgICAg ICAgICAgIiAiKSkpCisgICAgKHdpdGgtdGVtcC1maWxlIHRtcC1zcmMtZmlsZSAoaW5zZXJ0IGJv ZHkpKQorICAgIChvcmctYmFiZWwtZXZhbAorICAgICAoZm9ybWF0ICIlcyAtbyAlcyAlcyAlcyAl cyIKKyAgICAgICAgICAgICBvcmctYmFiZWwtSGFza2VsbC1jb21waWxlcgorCSAgICAgdG1wLWJp bi1maWxlCisJICAgICBmbGFncworCSAgICAgKG9yZy1iYWJlbC1wcm9jZXNzLWZpbGUtbmFtZSB0 bXAtc3JjLWZpbGUpCisJICAgICBsaWJzKSAiIikKKyAgICAobGV0ICgocmVzdWx0cworCSAgIChv cmctYmFiZWwtZXZhbAorCSAgICAoY29uY2F0IHRtcC1iaW4tZmlsZSBjbWRsaW5lKSAiIikpKQor ICAgICAgKHdoZW4gcmVzdWx0cworICAgICAgICAoc2V0cSByZXN1bHRzIChvcmctdHJpbSAob3Jn LXJlbW92ZS1pbmRlbnRhdGlvbiByZXN1bHRzKSkpCisgICAgICAgIChvcmctYmFiZWwtcmVhc3Nl bWJsZS10YWJsZQorICAgICAgICAgKG9yZy1iYWJlbC1yZXN1bHQtY29uZCAoY2RyIChhc3NxIDpy ZXN1bHQtcGFyYW1zIHBhcmFtcykpCisJICAgKG9yZy1iYWJlbC1yZWFkIHJlc3VsdHMgdCkKKwkg ICAobGV0ICgodG1wLWZpbGUgKG9yZy1iYWJlbC10ZW1wLWZpbGUgIkhhc2tlbGwtIikpKQorCSAg ICAgKHdpdGgtdGVtcC1maWxlIHRtcC1maWxlIChpbnNlcnQgcmVzdWx0cykpCisJICAgICAob3Jn LWJhYmVsLWltcG9ydC1lbGlzcC1mcm9tLWZpbGUgdG1wLWZpbGUpKSkKKyAgICAgICAgIChvcmct YmFiZWwtcGljay1uYW1lCisJICAoY2RyIChhc3NxIDpjb2xuYW1lLW5hbWVzIHBhcmFtcykpIChj ZHIgKGFzc3EgOmNvbG5hbWVzIHBhcmFtcykpKQorICAgICAgICAgKG9yZy1iYWJlbC1waWNrLW5h bWUKKwkgIChjZHIgKGFzc3EgOnJvd25hbWUtbmFtZXMgcGFyYW1zKSkgKGNkciAoYXNzcSA6cm93 bmFtZXMgcGFyYW1zKSkpKSkKKyAgICAgICkpKQorCisoZGVmdW4gb3JnLWJhYmVsLWludGVycHJl dC1IYXNrZWxsIChib2R5IHBhcmFtcykKICAgKHJlcXVpcmUgJ2luZi1oYXNrZWxsKQogICAoYWRk LWhvb2sgJ2luZmVyaW9yLWhhc2tlbGwtaG9vawogICAgICAgICAgICAgKGxhbWJkYSAoKQpAQCAt OTYsNiArMTUzLDE0IEBAIG9yZy1iYWJlbC1leGVjdXRlOmhhc2tlbGwKICAgICAgKG9yZy1iYWJl bC1waWNrLW5hbWUgKGNkciAoYXNzcSA6cm93bmFtZS1uYW1lcyBwYXJhbXMpKQogCQkJICAoY2Ry IChhc3NxIDpyb3duYW1lLW5hbWVzIHBhcmFtcykpKSkpKQogCisKKyhkZWZ1biBvcmctYmFiZWwt ZXhlY3V0ZTpoYXNrZWxsIChib2R5IHBhcmFtcykKKyAgIkV4ZWN1dGUgYSBibG9jayBvZiBIYXNr ZWxsIGNvZGUuIgorICAoc2V0cSBjb21waWxlIChzdHJpbmc9IChjZHIgKGFzc3EgOmNvbXBpbGUg cGFyYW1zKSkgInllcyIpKQorICAoaWYgKG5vdCBjb21waWxlKQorICAgICAgKG9yZy1iYWJlbC1p bnRlcnByZXQtSGFza2VsbCBib2R5IHBhcmFtcykKKyAgICAob3JnLWJhYmVsLUhhc2tlbGwtZXhl Y3V0ZSBib2R5IHBhcmFtcykpKQorCiAoZGVmdW4gb3JnLWJhYmVsLWhhc2tlbGwtaW5pdGlhdGUt c2Vzc2lvbiAoJm9wdGlvbmFsIF9zZXNzaW9uIF9wYXJhbXMpCiAgICJJbml0aWF0ZSBhIGhhc2tl bGwgc2Vzc2lvbi4KIElmIHRoZXJlIGlzIG5vdCBhIGN1cnJlbnQgaW5mZXJpb3ItcHJvY2Vzcy1i dWZmZXIgaW4gU0VTU0lPTgotLSAKMi4yMC4xCgo= --000000000000d892b705a4222592--