unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#2047: 23.0.60; Nesting skeletons - infinite recursion ?
@ 2009-01-25 16:34 ` Michelle Baert
       [not found]   ` <handler.2047.B.123290131613782.ack@emacsbugs.donarmstrong.com>
                     ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Michelle Baert @ 2009-01-25 16:34 UTC (permalink / raw)
  To: emacs-pretest-bug

Dear Emacs maintainers,

I'm trying to setup a clean set of skeletons, but it turns up that I
can't call a skeleton from another. The method I tried raises the error
message:

"skeleton-internal-1: Variable binding depth exceeds max-specpdl-size"

I tried to write a basic test to demonstrate the problem.
Here it is (nested-skeletons.el) :
**********************************************************************
;; Each skeleton is followed by a sample output

(define-skeleton tst:plain
  "No prompt skeleton."
  nil
  "; I'm static text inserted by skeleton tst:plain"
)
; I'm static text inserted by skeleton tst:plain

(define-skeleton tst:use-str
  "Interactive skeleton."
  "Message: "
  "; I'm generated text (" str ") inserted by skeleton tst:use-str" \n
)
; I'm generated text (yes) inserted by skeleton tst:use-str

(define-skeleton tst:skeleton-caller
  "Calls another skeleton"
  nil
  "; I'm lazy. I want to reuse some ready-made skeleton" \n
  (tst:plain) \n
  "; Happy to see you again." \n
)
; I'm lazy. I want to reuse some ready-made skeleton
; I'm static text inserted by skeleton tst:plain

;; The cursor stops just after "plain", and I get the error message:
;; "skeleton-internal-1: Variable binding depth exceeds
max-specpdl-size"
;; or "skeleton-internal-1: Lisp nesting exceeds `max-lisp-eval-depth'"
;; in some previous sessions

(define-skeleton tst:skeleton-caller2
  "Calls another skeleton"
  nil
  "; I'm lazy. I want to reuse some ready-made skeleton" \n
  (tst:use-str "toy") \n
  "; Happy to see you again." \n
)
; I'm lazy. I want to reuse some ready-made skeleton
; I'm generated text (toy) inserted by skeleton tst:use-str

;; same result
;; ============================================================
(emacs-version t)
;; GNU Emacs 23.0.60.1 (i486-pc-linux-gnu, GTK+ Version 2.12.9)
;; of 2008-03-19 on vernadsky, modified by Debian

;; Started with emacs -Q nested-skeletons.el
**********************************************************************
Please tell me if
- I did something wrong
- you need more information
- nested skeletons are not supported
- you can't reproduce the problem

I'm working on Ubuntu with emacs-snapshot package, and I still have
emacs22.

Thanks a lot.
---
Michelle Baert

***********************************************************************
In GNU Emacs 23.0.60.1 (i486-pc-linux-gnu, GTK+ Version 2.12.9)
 of 2008-03-19 on vernadsky, modified by Debian
 (emacs-snapshot package, version 1:20080228-1ubuntu1)
Windowing system distributor `The X.Org Foundation', version
11.0.10400090
configured using `configure  '--build' 'i486-linux-gnu' '--host'
'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib'
'--libexecdir=/usr/lib' '--localstatedir=/var'
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes'
'--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/23.0.60/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.0.60/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.0.60/leim' '--with-x=yes' '--with-x-toolkit=gtk' '--enable-font-backend' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g -Wl,--as-needed' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_IE.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<up> <up> <up> <up> <up> <up> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> s <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <left> <backspace> 
e <down> <down> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <right> C-k C-k C-x C-s 
C-_ C-_ <down> < <backspace> ; ; SPC i n SPC p r e 
v i o u s SPC s e s s i o u s <backspace> <backspace> 
n s , SPC m a y b e SPC s t e <backspace> <backspace> 
e t SPC s o m e SPC d e b u g SPC f l a g s <return> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> C-k <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> s 
o n m e SPC <left> <left> <left> <backspace> C-x C-s 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <menu-bar> <tools> <gdb> <return> 
n <return> q <return> C-x k <return> <down-mouse-1> 
<mouse-1> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <menu-bar> 
<help-menu> <send-emacs-bug-report>

Recent messages:
skeleton-internal-1: Variable binding depth exceeds max-specpdl-size
Undo! [2 times]
Mark set [2 times]
Auto-saving...done
Wrote /home/mich/Learn/text/emacs/write-a-mode/nested-skeletons.el
nil
Undo!
Wrote /home/mich/Learn/text/emacs/write-a-mode/nested-skeletons.el [2
times]
Undo! [2 times]
Wrote /home/mich/Learn/text/emacs/write-a-mode/nested-skeletons.el








^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#2047: SOLVED - not a bug (23.0.60; Nesting skeletons - infinite  recursion ?)
       [not found]   ` <handler.2047.B.123290131613782.ack@emacsbugs.donarmstrong.com>
@ 2009-01-25 19:04     ` Michelle Baert
  0 siblings, 0 replies; 4+ messages in thread
From: Michelle Baert @ 2009-01-25 19:04 UTC (permalink / raw)
  To: 2047

On Sun, 2009-01-25 at 16:40 +0000, Emacs bug Tracking System wrote:
> If you wish to submit further information on this problem, please
> send it to 2047@emacsbugs.donarmstrong.com, as before.

Dear Emacs maintainers,

;; I had missed a line of skeleton-insert's documentation:
;; > Note that expressions may not return t since this implies an
;; > endless loop.
;; So "(progn expr nil) and it works !

(define-skeleton tst:skeleton-caller
  "Calls another skeleton"
  nil
  "; I'm lazy. I want to reuse some ready-made skeleton" \n
  (progn (tst:plain) nil) \n
  "; Happy to see you again." \n
)

(define-skeleton tst:skeleton-caller2
  "Calls another skeleton"
  nil
  "; I'm lazy. I want to reuse some ready-made skeleton" \n
  (progn (tst:use-str "toy") nil) \n
  "; Happy to see you again." \n
)

Sorry for the fuss.

Thanks a lot.

---
Michelle Baert









^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#2047: marked as done (23.0.60; Nesting skeletons - infinite  recursion ?)
  2009-01-25 16:34 ` bug#2047: 23.0.60; Nesting skeletons - infinite recursion ? Michelle Baert
       [not found]   ` <handler.2047.B.123290131613782.ack@emacsbugs.donarmstrong.com>
@ 2009-01-25 21:55   ` Emacs bug Tracking System
  2009-01-26  4:22   ` bug#2047: 23.0.60; Nesting skeletons - infinite recursion ? Richard M Stallman
  2 siblings, 0 replies; 4+ messages in thread
From: Emacs bug Tracking System @ 2009-01-25 21:55 UTC (permalink / raw)
  To: Juanma Barranquero

[-- Attachment #1: Type: text/plain, Size: 949 bytes --]


Your message dated Sun, 25 Jan 2009 22:47:51 +0100
with message-id <f7ccd24b0901251347x1365a5ccqb57b5aa54206cfa5@mail.gmail.com>
and subject line Re: bug#2047: SOLVED - not a bug (23.0.60; Nesting skeletons -  infinite recursion ?)
has caused the Emacs bug report #2047,
regarding 23.0.60; Nesting skeletons - infinite recursion ?
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@emacsbugs.donarmstrong.com
immediately.)


-- 
2047: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=2047
Emacs Bug Tracking System
Contact owner@emacsbugs.donarmstrong.com with problems

[-- Attachment #2: Type: message/rfc822, Size: 8423 bytes --]

From: Michelle Baert <m.baert@free.fr>
To: emacs-pretest-bug@gnu.org
Subject: 23.0.60; Nesting skeletons - infinite recursion ?
Date: Sun, 25 Jan 2009 17:34:57 +0100
Message-ID: <1232901297.20531.3.camel@claddagh>

Dear Emacs maintainers,

I'm trying to setup a clean set of skeletons, but it turns up that I
can't call a skeleton from another. The method I tried raises the error
message:

"skeleton-internal-1: Variable binding depth exceeds max-specpdl-size"

I tried to write a basic test to demonstrate the problem.
Here it is (nested-skeletons.el) :
**********************************************************************
;; Each skeleton is followed by a sample output

(define-skeleton tst:plain
  "No prompt skeleton."
  nil
  "; I'm static text inserted by skeleton tst:plain"
)
; I'm static text inserted by skeleton tst:plain

(define-skeleton tst:use-str
  "Interactive skeleton."
  "Message: "
  "; I'm generated text (" str ") inserted by skeleton tst:use-str" \n
)
; I'm generated text (yes) inserted by skeleton tst:use-str

(define-skeleton tst:skeleton-caller
  "Calls another skeleton"
  nil
  "; I'm lazy. I want to reuse some ready-made skeleton" \n
  (tst:plain) \n
  "; Happy to see you again." \n
)
; I'm lazy. I want to reuse some ready-made skeleton
; I'm static text inserted by skeleton tst:plain

;; The cursor stops just after "plain", and I get the error message:
;; "skeleton-internal-1: Variable binding depth exceeds
max-specpdl-size"
;; or "skeleton-internal-1: Lisp nesting exceeds `max-lisp-eval-depth'"
;; in some previous sessions

(define-skeleton tst:skeleton-caller2
  "Calls another skeleton"
  nil
  "; I'm lazy. I want to reuse some ready-made skeleton" \n
  (tst:use-str "toy") \n
  "; Happy to see you again." \n
)
; I'm lazy. I want to reuse some ready-made skeleton
; I'm generated text (toy) inserted by skeleton tst:use-str

;; same result
;; ============================================================
(emacs-version t)
;; GNU Emacs 23.0.60.1 (i486-pc-linux-gnu, GTK+ Version 2.12.9)
;; of 2008-03-19 on vernadsky, modified by Debian

;; Started with emacs -Q nested-skeletons.el
**********************************************************************
Please tell me if
- I did something wrong
- you need more information
- nested skeletons are not supported
- you can't reproduce the problem

I'm working on Ubuntu with emacs-snapshot package, and I still have
emacs22.

Thanks a lot.
---
Michelle Baert

***********************************************************************
In GNU Emacs 23.0.60.1 (i486-pc-linux-gnu, GTK+ Version 2.12.9)
 of 2008-03-19 on vernadsky, modified by Debian
 (emacs-snapshot package, version 1:20080228-1ubuntu1)
Windowing system distributor `The X.Org Foundation', version
11.0.10400090
configured using `configure  '--build' 'i486-linux-gnu' '--host'
'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib'
'--libexecdir=/usr/lib' '--localstatedir=/var'
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes'
'--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/23.0.60/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.0.60/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.0.60/leim' '--with-x=yes' '--with-x-toolkit=gtk' '--enable-font-backend' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g -Wl,--as-needed' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_IE.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<up> <up> <up> <up> <up> <up> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> s <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <left> <backspace> 
e <down> <down> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <right> C-k C-k C-x C-s 
C-_ C-_ <down> < <backspace> ; ; SPC i n SPC p r e 
v i o u s SPC s e s s i o u s <backspace> <backspace> 
n s , SPC m a y b e SPC s t e <backspace> <backspace> 
e t SPC s o m e SPC d e b u g SPC f l a g s <return> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> C-k <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> s 
o n m e SPC <left> <left> <left> <backspace> C-x C-s 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <menu-bar> <tools> <gdb> <return> 
n <return> q <return> C-x k <return> <down-mouse-1> 
<mouse-1> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <menu-bar> 
<help-menu> <send-emacs-bug-report>

Recent messages:
skeleton-internal-1: Variable binding depth exceeds max-specpdl-size
Undo! [2 times]
Mark set [2 times]
Auto-saving...done
Wrote /home/mich/Learn/text/emacs/write-a-mode/nested-skeletons.el
nil
Undo!
Wrote /home/mich/Learn/text/emacs/write-a-mode/nested-skeletons.el [2
times]
Undo! [2 times]
Wrote /home/mich/Learn/text/emacs/write-a-mode/nested-skeletons.el





[-- Attachment #3: Type: message/rfc822, Size: 2610 bytes --]

From: Juanma Barranquero <lekktu@gmail.com>
To: Michelle Baert <m.baert@free.fr>
Cc: 2047-done@emacsbugs.donarmstrong.com
Subject: Re: bug#2047: SOLVED - not a bug (23.0.60; Nesting skeletons -  infinite recursion ?)
Date: Sun, 25 Jan 2009 22:47:51 +0100
Message-ID: <f7ccd24b0901251347x1365a5ccqb57b5aa54206cfa5@mail.gmail.com>

On Sun, Jan 25, 2009 at 20:04, Michelle Baert <m.baert@free.fr> wrote:

> ;; I had missed a line of skeleton-insert's documentation:

Closed.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#2047: 23.0.60; Nesting skeletons - infinite recursion ?
  2009-01-25 16:34 ` bug#2047: 23.0.60; Nesting skeletons - infinite recursion ? Michelle Baert
       [not found]   ` <handler.2047.B.123290131613782.ack@emacsbugs.donarmstrong.com>
  2009-01-25 21:55   ` bug#2047: marked as done " Emacs bug Tracking System
@ 2009-01-26  4:22   ` Richard M Stallman
  2 siblings, 0 replies; 4+ messages in thread
From: Richard M Stallman @ 2009-01-26  4:22 UTC (permalink / raw)
  To: Michelle Baert, 2047

I have never worked on the code for skeletons, so I can't help you.
But your message inspired me to wonder whether the file of skeletons
should by default or convention be named closet.el.






^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-01-26  4:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <f7ccd24b0901251347x1365a5ccqb57b5aa54206cfa5@mail.gmail.com>
2009-01-25 16:34 ` bug#2047: 23.0.60; Nesting skeletons - infinite recursion ? Michelle Baert
     [not found]   ` <handler.2047.B.123290131613782.ack@emacsbugs.donarmstrong.com>
2009-01-25 19:04     ` bug#2047: SOLVED - not a bug (23.0.60; Nesting skeletons - infinite recursion ?) Michelle Baert
2009-01-25 21:55   ` bug#2047: marked as done " Emacs bug Tracking System
2009-01-26  4:22   ` bug#2047: 23.0.60; Nesting skeletons - infinite recursion ? Richard M Stallman

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.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).