From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Robert M. Kovacsics" Subject: [PATCH] ob-ocaml: Support for pretty-printed outputs Date: Fri, 04 Oct 2019 17:52:50 +0100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_1ecfc581b02aef968357df314cd0e42c" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:50156) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iGQp6-0005VJ-N2 for emacs-orgmode@gnu.org; Fri, 04 Oct 2019 12:52:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iGQp3-0007lU-PL for emacs-orgmode@gnu.org; Fri, 04 Oct 2019 12:52:55 -0400 Received: from ppsw-43.csi.cam.ac.uk ([131.111.8.143]:54922) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iGQp3-0007l8-9I for emacs-orgmode@gnu.org; Fri, 04 Oct 2019 12:52:53 -0400 Received: from webmail-1b.csi.cam.ac.uk ([131.111.9.33]:60646) by ppsw-43.csi.cam.ac.uk (ppsw.cam.ac.uk [131.111.8.139]:25) with esmtp id 1iGQp0-001NI9-oL (Exim 4.92.3) for emacs-orgmode@gnu.org (return-path ); Fri, 04 Oct 2019 17:52:50 +0100 Received: from [127.0.0.1] (helo=webmail.hermes.cam.ac.uk) by webmail-1b.csi.cam.ac.uk with esmtp id 1iGQp0-0002M8-JO (Exim 4.92.3) for emacs-orgmode@gnu.org (return-path ); Fri, 04 Oct 2019 17:52:50 +0100 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Org-mode --=_1ecfc581b02aef968357df314cd0e42c Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed E.g. the following snippet produces multiple lines of output, due to pretty-printing #+BEGIN_SRC ocaml :exports code :eval no-export :results verbatim (* Note, no need to have parentheses around sqrt, as application binds the tightest *) let rec gamma n = if n = 0 then (1.0 +. sqrt 5.0) /. 2.0 else 1.0 /. (gamma (n-1) -. 1.0) let nums = List.map gamma (List.init 5 (fun x -> x)) #+END_SRC #+NAME: gamma-tbl #+RESULTS[1fd6a3e846afdef51350eb6d7ba15c6844ccc14e]: : val gamma : int -> float = : val nums : float list = : [1.6180339887498949; 1.61803398874989468; 1.61803398874989535; : 1.61803398874989357; 1.61803398874989823] (In reality this would have 50 or so outputs, point being mathematically it shouldn't change, but due to floating point errors it does.) The regexp has the following problems: - The "." in group 5 (as-was) doesn't match new-lines, so it only matches the first line, e.g. as a list : - [1.6180339887498949, 1.61803398874989468, 1.61803398874989535, - When using "\\(.\\|\n\\)", it includes the starting indentation of the list, which makes org-babel-script-escape choke (called from org-babel-ocaml-read-list, from org-babel-ocaml-parse-output, from org-babel-execute:ocaml, the code being modified. --=_1ecfc581b02aef968357df314cd0e42c Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-ob-ocaml-Support-for-pretty-printed-outputs.patch Content-Disposition: attachment; filename=0001-ob-ocaml-Support-for-pretty-printed-outputs.patch; size=2243 RnJvbSAyODFkZThlMjQ4ZmRkNzBlY2ZjNjkyMzdkZjgzYTE1NWM5NDkxZjJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLb3ZhY3NpY3MgUm9iZXJ0IDxybWszNUBjYW0uYWMudWs+CkRh dGU6IEZyaSwgNCBPY3QgMjAxOSAxNzoyOTowMCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIG9iLW9j YW1sOiBTdXBwb3J0IGZvciBwcmV0dHktcHJpbnRlZCBvdXRwdXRzCgpFLmcuIHRoZSBmb2xsb3dp bmcgc25pcHBldCBwcm9kdWNlcyBtdWx0aXBsZSBsaW5lcyBvZiBvdXRwdXQsIGR1ZSB0bwpwcmV0 dHktcHJpbnRpbmcKCiAjK0JFR0lOX1NSQyBvY2FtbCA6ZXhwb3J0cyBjb2RlIDpldmFsIG5vLWV4 cG9ydCA6cmVzdWx0cyB2ZXJiYXRpbQooKiBOb3RlLCBubyBuZWVkIHRvIGhhdmUgcGFyZW50aGVz ZXMgYXJvdW5kIHNxcnQsIGFzCmFwcGxpY2F0aW9uIGJpbmRzIHRoZSB0aWdodGVzdCAqKQpsZXQg cmVjIGdhbW1hIG4gPSBpZiBuID0gMAogICAgICAgICAgICAgICAgICB0aGVuICgxLjAgKy4gc3Fy dCA1LjApIC8uIDIuMAogICAgICAgICAgICAgICAgICBlbHNlIDEuMCAvLiAoZ2FtbWEgKG4tMSkg LS4gMS4wKQoKbGV0IG51bXMgPSBMaXN0Lm1hcCBnYW1tYSAoTGlzdC5pbml0IDUgKGZ1biB4IC0+ IHgpKQogIytFTkRfU1JDCgogIytOQU1FOiBnYW1tYS10YmwKICMrUkVTVUxUU1sxZmQ2YTNlODQ2 YWZkZWY1MTM1MGViNmQ3YmExNWM2ODQ0Y2NjMTRlXToKOiB2YWwgZ2FtbWEgOiBpbnQgLT4gZmxv YXQgPSA8ZnVuPgo6IHZhbCBudW1zIDogZmxvYXQgbGlzdCA9CjogICBbMS42MTgwMzM5ODg3NDk4 OTQ5OyAxLjYxODAzMzk4ODc0OTg5NDY4OyAxLjYxODAzMzk4ODc0OTg5NTM1Owo6ICAgIDEuNjE4 MDMzOTg4NzQ5ODkzNTc7IDEuNjE4MDMzOTg4NzQ5ODk4MjNdCgooSW4gcmVhbGl0eSB0aGlzIHdv dWxkIGhhdmUgNTAgb3Igc28gb3V0cHV0cywgcG9pbnQgYmVpbmcgbWF0aGVtYXRpY2FsbHkKaXQg c2hvdWxkbid0IGNoYW5nZSwgYnV0IGR1ZSB0byBmbG9hdGluZyBwb2ludCBlcnJvcnMgaXQgZG9l cy4pCgpUaGUgcmVnZXhwIGhhcyB0aGUgZm9sbG93aW5nIHByb2JsZW1zOgoKLSBUaGUgIi4iIGlu IGdyb3VwIDUgKGFzLXdhcykgZG9lc24ndCBtYXRjaCBuZXctbGluZXMsIHNvIGl0IG9ubHkKICBt YXRjaGVzIHRoZSBmaXJzdCBsaW5lLCBlLmcuIGFzIGEgbGlzdAogIDogLSBbMS42MTgwMzM5ODg3 NDk4OTQ5LCAxLjYxODAzMzk4ODc0OTg5NDY4LCAxLjYxODAzMzk4ODc0OTg5NTM1LAoKLSBXaGVu IHVzaW5nICJcXCguXFx8XG5cXCkiLCBpdCBpbmNsdWRlcyB0aGUgc3RhcnRpbmcgaW5kZW50YXRp b24gb2YgdGhlCiAgbGlzdCwgd2hpY2ggbWFrZXMgb3JnLWJhYmVsLXNjcmlwdC1lc2NhcGUgY2hv a2UgKGNhbGxlZCBmcm9tCiAgb3JnLWJhYmVsLW9jYW1sLXJlYWQtbGlzdCwgZnJvbSBvcmctYmFi ZWwtb2NhbWwtcGFyc2Utb3V0cHV0LCBmcm9tCiAgb3JnLWJhYmVsLWV4ZWN1dGU6b2NhbWwsIHRo ZSBjb2RlIGJlaW5nIG1vZGlmaWVkLgotLS0KIGxpc3Avb2Itb2NhbWwuZWwgfCA0ICsrLS0KIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGlzcC9vYi1vY2FtbC5lbCBiL2xpc3Avb2Itb2NhbWwuZWwKaW5kZXggMGMwZmZlNDQyLi41 NGJjNDlhMmYgMTAwNjQ0Ci0tLSBhL2xpc3Avb2Itb2NhbWwuZWwKKysrIGIvbGlzcC9vYi1vY2Ft bC5lbApAQCAtODMsMTEgKzgzLDExIEBACiAJIChyYXcgKG9yZy10cmltIGNsZWFuKSkKIAkgKHJl c3VsdC1wYXJhbXMgKGNkciAoYXNzcSA6cmVzdWx0LXBhcmFtcyBwYXJhbXMpKSkpCiAgICAgKHN0 cmluZy1tYXRjaAotICAgICAiXFwoXFwoLipcblxcKSpcXClbXjpcbl0rIDogXFwoW149XG5dK1xc KSA9XFwoXG5cXHwgXFwpXFwoLitcXCkkIgorICAgICAiXFwoXFwoLipcblxcKSpcXClbXjpcbl0r IDogXFwoW149XG5dK1xcKSA9W1s6c3BhY2U6XV0rXFwoXFwoLlxcfFxuXFwpK1xcKSQiCiAgICAg IHJhdykKICAgICAobGV0ICgob3V0cHV0IChtYXRjaC1zdHJpbmcgMSByYXcpKQogCSAgKHR5cGUg KG1hdGNoLXN0cmluZyAzIHJhdykpCi0JICAodmFsdWUgKG1hdGNoLXN0cmluZyA1IHJhdykpKQor CSAgKHZhbHVlIChtYXRjaC1zdHJpbmcgNCByYXcpKSkKICAgICAgIChvcmctYmFiZWwtcmVhc3Nl bWJsZS10YWJsZQogICAgICAgIChvcmctYmFiZWwtcmVzdWx0LWNvbmQgcmVzdWx0LXBhcmFtcwog CSAoY29uZAotLSAKMi4xOS4yCgo= --=_1ecfc581b02aef968357df314cd0e42c--