From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ciaran Mulloy Subject: Re: Worg Tutorial error: using Emacs lisp as formulas Date: Thu, 28 Aug 2014 00:29:38 +0100 Message-ID: <53FE69E2.8000509@gmail.com> References: <53FCDD83.40206@gmail.com> <87a96qhcfb.fsf@alphaville.dokosmarshall.org> <53FD8701.4060707@gmail.com> <8761hegnez.fsf@alphaville.dokosmarshall.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42689) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XMmf1-0006IR-EY for emacs-orgmode@gnu.org; Wed, 27 Aug 2014 19:29:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XMmev-0001lB-FN for emacs-orgmode@gnu.org; Wed, 27 Aug 2014 19:29:51 -0400 Received: from mail-we0-x22b.google.com ([2a00:1450:400c:c03::22b]:44905) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XMmev-0001km-4f for emacs-orgmode@gnu.org; Wed, 27 Aug 2014 19:29:45 -0400 Received: by mail-we0-f171.google.com with SMTP id u56so5983wes.2 for ; Wed, 27 Aug 2014 16:29:42 -0700 (PDT) Received: from [192.168.15.102] ([89.124.44.33]) by mx.google.com with ESMTPSA id ky3sm4833632wjb.39.2014.08.27.16.29.40 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 27 Aug 2014 16:29:41 -0700 (PDT) In-Reply-To: <8761hegnez.fsf@alphaville.dokosmarshall.org> 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-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org On 27/08/14 12:52, Nick Dokos wrote: > Ciaran Mulloy writes: > >> Hi Nick, >> Many thanks for your input. >> >> The table I was trying was the example in the tutorial shown as follows >> (not big) and no hint of a regex!: >> >> | Col1 | Col2 | Col3 | Col4 | Col5 | >> |------+------+------+------+------| >> | a | a | :='(mapconcat 'identity (delete-dups (list @2$1..@>$1 >> @2$2..@>$2)) " ") | b | | >> | b | a | | | | >> | c | d | | | | >> >> #+TBLFM: @2$3='(mapconcat 'identity (delete-dups (list @2$1..@>$1 >> @2$2..@>$2)) " ") >> >> > I'm not sure where you got this: the tutorial's table does not have a > field formula afaict. If you eliminate the field formula, the example > works - just do C-c C-c on the #+TBLFM: line: > > --8<---------------cut here---------------start------------->8--- > | Col1 | Col2 | Col3 | Col4 | Col5 | > |------+------+---------+------+------| > | a | a | | b | | > | b | a | | | | > | c | d | | | | > #+TBLFM: @2$3='(mapconcat 'identity (delete-dups (list @2$1..@>$1 @2$2..@>$2)) " ") > --8<---------------cut here---------------end--------------->8--- > > I don't know why the field formula fails. > >> The version of emacs is GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, ) of >> 2013-07-27 on roseapple, modified by Debian >> Org-mode version 7.9.3f (release_7.9.3f-17-g7524ef @ >> /usr/share/emacs/24.3/lisp/org/) >> Hi Guys, Some definite strangeness that I'd love to get to the bottom of, if only to preserve my sanity and understanding of how Org-Mode works! The following is the example given in the excellent Worg tutorial on using Emacs Lisp in spreadsheet formulas: http://orgmode.org/worg/org-tutorials/org-spreadsheet-lisp-formulas.html | Col1 | Col2 | Col3 | Col4 | Col5 | |------+------+------+------+------| | a | a | | d | | | a | b | | | | | b | a | | | | | c | d | | | | Inserting the following as a field formula in location @2$3: :='(mapconcat 'identity (delete-dups (list @2$1..@>$1 @2$2..@>$2)) " ") and doing a C-c or a C-u-C-c C-c generates an 'Invalid regexp: "Regular expression too big"' error. I used the formula debug option C-{ to enable formula debugging and got the following result: With the debugging formula on, when the debugger asks whether to continue on the newly entered formula I get the following output and the error is resolved and formula properly calculated as shown below. This is the output provided by the formula debugger: Substitution history of formula Orig: '(mapconcat 'identity (delete-dups (list @2$1..@5$1 @2$2..@5$2)) " ") $xyz-> '(mapconcat 'identity (delete-dups (list @2$1..@5$1 @2$2..@5$2)) " ") @r$c-> '(mapconcat 'identity (delete-dups (list #("a" 0 1 (fontified nil org-category "spreadsheets" face org-table)) #("a" 0 1 (fontified t org-category "spreadsheets" face org-table)) #("b" 0 1 (fontified t org-category "spreadsheets" face org-table)) #("c" 0 1 (fontified t org-category "spreadsheets" face org-table)) #("a" 0 1 (fontified nil org-category "spreadsheets" face org-table)) #("b" 0 1 (fontified t org-category "spreadsheets" face org-table)) #("a" 0 1 (fontified t org-category "spreadsheets" face org-table)) #("d" 0 1 (fontified t org-category "spreadsheets" face org-table)))) " ") $1-> '(mapconcat 'identity (delete-dups (list #("a" 0 1 (fontified nil org-category "spreadsheets" face org-table)) #("a" 0 1 (fontified t org-category "spreadsheets" face org-table)) #("b" 0 1 (fontified t org-category "spreadsheets" face org-table)) #("c" 0 1 (fontified t org-category "spreadsheets" face org-table)) #("a" 0 1 (fontified nil org-category "spreadsheets" face org-table)) #("b" 0 1 (fontified t org-category "spreadsheets" face org-table)) #("a" 0 1 (fontified t org-category "spreadsheets" face org-table)) #("d" 0 1 (fontified t org-category "spreadsheets" face org-table)))) " ") Result: a b c d Format: NONE Final: a b c d After The formula was correctly resolved and shows the following result correctly: | Col1 | Col2 | Col3 | Col4 | Col5 | |------+------+---------+------+------| | a | a | a b c d | d | | | a | b | | | | | b | a | | | | | c | d | | | | #+TBLFM: @2$3='(mapconcat 'identity (delete-dups (list @2$1..@>$1 @2$2..@>$2)) " ") The output in the messages file is as follows: Loading 00debian-vars...done Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)... Loading debian-ispell... Loading /var/cache/dictionaries-common/emacsen-ispell-default.el (source)...done Loading debian-ispell...done Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)...done Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...done For information about GNU Emacs and the GNU system, type C-h C-a. Loading vc-git...done Formula debugging has been turned on Re-applying formulas to full table... Re-applying formula to field: @2$3 Re-applying formulas to full table...(line 3) Re-applying formula to field: @2$3 Debugging Formula. Continue to next? (y or n) n user-error: Abort byte-code: Beginning of buffer [10 times] Auto-saving...done Mark set org-table-eval-formula: Invalid regexp: "Regular expression too big" [2 times] Re-applying formulas to full table... Re-applying formula to field: @2$3 Re-applying formula to field: @3$3 Re-applying formulas to full table...(line 3) Re-applying formula to field: @2$3 Debugging Formula. Continue to next? (y or n) y Re-applying formula to field: @3$3 Debugging Formula. Continue to next? (y or n) y Re-applying formulas to 3 lines...done Re-applying formulas...done [2 times] Mark set org-table-eval-formula: Invalid regexp: "Regular expression too big" [2 times] byte-code: End of buffer Re-applying formulas to full table... Re-applying formula to field: @2$3 Re-applying formula to field: @3$3 Re-applying formula to field: @4$3 Re-applying formulas to full table...(line 3) Re-applying formula to field: @2$3 Debugging Formula. Continue to next? (y or n) y Re-applying formula to field: @3$3 Debugging Formula. Continue to next? (y or n) y Re-applying formula to field: @4$3 Debugging Formula. Continue to next? (y or n) y Re-applying formulas to 3 lines...done Re-applying formulas...done [2 times] Auto-saving...done Mark set org-table-eval-formula: Invalid regexp: "Regular expression too big" Auto-saving... byte-code: End of buffer Re-applying formulas to full table... Re-applying formula to field: @2$3 Re-applying formula to field: @2$5 Re-applying formula to field: @3$3 Re-applying formula to field: @4$3 Re-applying formulas to full table...(line 3) Re-applying formula to field: @2$3 Debugging Formula. Continue to next? (y or n) y Re-applying formula to field: @2$5 Debugging Formula. Continue to next? (y or n) y Re-applying formula to field: @3$3 Debugging Formula. Continue to next? (y or n) y Re-applying formula to field: @4$3 Debugging Formula. Continue to next? (y or n) y Re-applying formulas to 3 lines...done Re-applying formulas...done [2 times] Mark set org-table-eval-formula: Invalid regexp: "Regular expression too big" [2 times] Formula debugging has been turned off Formula debugging has been turned on Formula debugging has been turned off Formula debugging has been turned on Mark set [2 times] org-table-eval-formula: Invalid regexp: "Regular expression too big" Formula debugging has been turned off Formula debugging has been turned on Re-applying formulas to full table... Re-applying formula to field: @2$3 Re-applying formulas to full table...(line 4) Re-applying formula to field: @2$3 Debugging Formula. Continue to next? (y or n) n user-error: Abort Mark set [4 times] Auto-saving... Mark set Visual-Line mode enabled Re-applying formulas to full table... Re-applying formula to field: @2$3 Re-applying formulas to full table...(line 4) Re-applying formula to field: @2$3 Debugging Formula. Continue to next? (y or n) y Re-applying formulas to 4 lines...done Re-applying formulas...done [2 times] Auto-saving... Mark set org-table-eval-formula: Invalid regexp: "Regular expression too big" [2 times] call-interactively: No recursive edit is in progress Formula debugging has been turned off Formula debugging has been turned on Saving file /home/crmulloy/.emacs.d/init.el... Wrote /home/crmulloy/.emacs.d/init.el [2 times] File added to front of agenda file list Formula debugging has been turned off Formula debugging has been turned on Re-applying formulas to full table... Re-applying formula to field: @2$3 Re-applying formula to field: @3$3 Re-applying formulas to full table...(line 4) Re-applying formula to field: @2$3 Debugging Formula. Continue to next? (y or n) y Re-applying formula to field: @3$3 Debugging Formula. Continue to next? (y or n) y Re-applying formulas to 4 lines...done Re-applying formulas...done [2 times] byte-code: Beginning of buffer [5 times] Auto-saving...done Mark set Auto-saving...done Tables Row/Column numbers display turned on Auto-saving...done byte-code: End of buffer Mark set org-table-eval-formula: Invalid regexp: "Regular expression too big" Re-applying formulas to full table... Re-applying formula to field: @2$3 Re-applying formulas to full table...(line 4) Re-applying formula to field: @2$3 Debugging Formula. Continue to next? (y or n) y Re-applying formulas to 4 lines...done Re-applying formulas...done [2 times] Auto-saving...done Mark set [2 times] org-table-eval-formula: Invalid regexp: "Regular expression too big" [2 times] Re-applying formulas to full table... Re-applying formula to field: @2$3 Re-applying formulas to full table...(line 4) Re-applying formula to field: @2$3 Debugging Formula. Continue to next? (y or n) y Re-applying formulas to 4 lines...done Re-applying formulas...done [2 times] Auto-saving... byte-code: End of buffer [3 times] byte-code: Beginning of buffer [8 times] byte-code: Beginning of buffer It seems that I can reliably reproduce a bug that I haven't been able to find on forums and that most other people have difficulty replicating. If I've done something to my installation of emacs I'd love to find out what has caused the problem. Is there a way of determining what could be my issue? Many thanks for your help! Ciaran