emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Ciaran Mulloy <crmulloy@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: Worg Tutorial error: using Emacs lisp as formulas
Date: Thu, 28 Aug 2014 00:29:38 +0100	[thread overview]
Message-ID: <53FE69E2.8000509@gmail.com> (raw)
In-Reply-To: <8761hegnez.fsf@alphaville.dokosmarshall.org>

On 27/08/14 12:52, Nick Dokos wrote:
> Ciaran Mulloy <crmulloy@gmail.com> 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

  reply	other threads:[~2014-08-27 23:29 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-26 19:18 Worg Tutorial error: using Emacs lisp as formulas Ciaran Mulloy
2014-08-27  2:52 ` Nick Dokos
2014-08-27  7:21   ` Ciaran Mulloy
2014-08-27  9:20     ` ciaran_mulloy
2014-08-27 17:17       ` Andrea Rossetti
2014-08-27 11:52     ` Nick Dokos
2014-08-27 23:29       ` Ciaran Mulloy [this message]
2014-08-28  0:05         ` Andrea Rossetti

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53FE69E2.8000509@gmail.com \
    --to=crmulloy@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).