Subject: 23.1; edebug parsing error

From: Rustom Mody <[email-masked]>
Date: Tue, 14 Dec 2010 22:44:51 +0530

edebug errors out on the following code.
Note: The code loads silently without edebug -- so its not an obvious
syntax error.
When debug-all-defs is on and debug-on-error is on I get the following trace:

Debugger entered--Lisp error: (invalid-read-syntax "Failed matching"
([&optional ["named" symbolp]] [&rest &or ["repeat" form] loop-for-as
loop-with loop-initial-final] [&rest loop-clause]))
  signal(invalid-read-syntax ("Failed matching" ([&optional ["named"
symbolp]] [&rest &or ["repeat" form] loop-for-as loop-with
loop-initial-final] [&rest loop-clause])))
  edebug-syntax-error("Failed matching" ([&optional ["named" symbolp]]
[&rest &or ["repeat" form] loop-for-as loop-with loop-initial-final]
[&rest loop-clause]))
  apply(edebug-syntax-error ("Failed matching" ([&optional ["named"
symbolp]] [&rest &or ["repeat" form] loop-for-as loop-with
loop-initial-final] [&rest loop-clause])))
  edebug-no-match(((for event = (let ... ... ... ...) until (eq event
t) when event collect (cons ticks event)) (401 . 404) (405 . 410) (411
. 412) (416 (417 . 420) (421 ... . 448) (454 ... ... ... ... . 642)
(648 ... ... ... . 702) (708 ... ... ... . 2378) . 2379) (2383 . 2388)
(2389 (2390 . 2392) (2393 . 2398) (2399 . 2400) . 2401) (2402 . 2406)
(2407 . 2412) (2413 . 2420) (2421 (2422 . 2426) (2427 . 2432) (2433 .
2438) . 2439) . 2440) "Failed matching" ([&optional ["named" symbolp]]
[&rest &or ["repeat" form] loop-for-as loop-with loop-initial-final]
[&rest loop-clause]))
  edebug-match-sublist(((for event = (let ... ... ... ...) until (eq
event t) when event collect (cons ticks event)) (401 . 404) (405 .
410) (411 . 412) (416 (417 . 420) (421 ... . 448) (454 ... ... ... ...
. 642) (648 ... ... ... . 702) (708 ... ... ... . 2378) . 2379) (2383
. 2388) (2389 (2390 . 2392) (2393 . 2398) (2399 . 2400) . 2401) (2402
. 2406) (2407 . 2412) (2413 . 2420) (2421 (2422 . 2426) (2427 . 2432)
(2433 . 2438) . 2439) . 2440) ([&optional ["named" symbolp]] [&rest
&or ["repeat" form] loop-for-as loop-with loop-initial-final] [&rest
loop-clause]))
  edebug-list-form(((for event = (let ... ... ... ...) until (eq event
t) when event collect (cons ticks event)) (401 . 404) (405 . 410) (411
. 412) (416 (417 . 420) (421 ... . 448) (454 ... ... ... ... . 642)
(648 ... ... ... . 702) (708 ... ... ... . 2378) . 2379) (2383 . 2388)
(2389 (2390 . 2392) (2393 . 2398) (2399 . 2400) . 2401) (2402 . 2406)
(2407 . 2412) (2413 . 2420) (2421 (2422 . 2426) (2427 . 2432) (2433 .
2438) . 2439) . 2440))
  edebug-form((((loop while ... do ... for event = ... until ... when
event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ... ... .
360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410) (411
. 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ... ...
... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ... ...
... . 2439) . 2440) . 2441))
  edebug-match-form((((loop while ... do ... for event = ... until ...
when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ... ...
. 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441))
  edebug-match-symbol((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) form)
  edebug-match-one-spec((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) form)
  edebug-match-specs((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) (form) edebug-&rest-wrapper)
  byte-code("	\n#" [cursor specs remainder-handler result
edebug-match-specs nil] 4)
  edebug-&optional-wrapper((((loop while ... do ... for event = ...
until ... when event collect ...)) (333 (334 . 338) (339 . 344) (345
... ... ... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404)
(405 . 410) (411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388)
(2389 ... ... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420)
(2421 ... ... ... . 2439) . 2440) . 2441) (form) edebug-&rest-wrapper)
  edebug-&rest-wrapper((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) nil edebug-&rest-wrapper)
  edebug-match-specs((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) (form) edebug-&rest-wrapper)
  byte-code("	\n#" [cursor specs remainder-handler result
edebug-match-specs nil] 4)
  edebug-&optional-wrapper((((loop while ... do ... for event = ...
until ... when event collect ...)) (333 (334 . 338) (339 . 344) (345
... ... ... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404)
(405 . 410) (411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388)
(2389 ... ... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420)
(2421 ... ... ... . 2439) . 2440) . 2441) (form) edebug-&rest-wrapper)
  edebug-&rest-wrapper((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) (form) edebug-&rest-wrapper)
  edebug-match-&rest((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) (form))
  edebug-match-specs((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) (&rest form) edebug-match-specs)
  edebug-match((((loop while ... do ... for event = ... until ... when
event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ... ... .
360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410) (411
. 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ... ...
... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ... ...
... . 2439) . 2440) . 2441) (&rest form))
  edebug-match-body((((loop while ... do ... for event = ... until ...
when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ... ...
. 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441))
  edebug-match-symbol((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) body)
  edebug-match-one-spec((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) body)
  edebug-match-specs((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) (body) edebug-match-specs)
  edebug-match-specs((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) ((&rest &or (symbolp &optional form)
symbolp) body) edebug-match-specs)
  edebug-match-sublist((((loop while ... do ... for event = ... until
... when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ...
... . 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441) ((&rest &or (symbolp &optional form)
symbolp) body))
  edebug-list-form((((loop while ... do ... for event = ... until ...
when event collect ...)) (333 (334 . 338) (339 . 344) (345 ... ... ...
. 360) (364 . 366) (367 ... ... ... . 397) (401 . 404) (405 . 410)
(411 . 412) (416 ... ... ... ... ... . 2379) (2383 . 2388) (2389 ...
... ... . 2401) (2402 . 2406) (2407 . 2412) (2413 . 2420) (2421 ...
... ... . 2439) . 2440) . 2441))
  edebug-form((((let ... ... ...)) (179 (180 . 183) (184 ... ... ...
... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... . 2440) . 2441) . 2442))
  edebug-match-form((((let ... ... ...)) (179 (180 . 183) (184 ... ...
... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442))
  edebug-match-symbol((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442) form)
  edebug-match-one-spec((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442) form)
  edebug-match-specs((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442) (form)
edebug-&rest-wrapper)
  byte-code("	\n#" [cursor specs remainder-handler result
edebug-match-specs nil] 4)
  edebug-&optional-wrapper((((let ... ... ...)) (179 (180 . 183) (184
... ... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442)
(form) edebug-&rest-wrapper)
  edebug-&rest-wrapper((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442) (form)
edebug-&rest-wrapper)
  edebug-match-&rest((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442)
(form))
  edebug-match-specs((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442) (&rest
form) edebug-match-specs)
  edebug-match((((let ... ... ...)) (179 (180 . 183) (184 ... ... ...
... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... . 2440) . 2441) . 2442) (&rest form))
  edebug-match-def-body((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442))
  edebug-match-symbol((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442)
def-body)
  edebug-match-one-spec((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442)
def-body)
  edebug-match-specs((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442)
(def-body) edebug-match-specs)
  edebug-match-specs((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442)
([&optional ("interactive" interactive)] def-body) edebug-match-specs)
  edebug-match-specs((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442)
([&optional stringp] [&optional ("interactive" interactive)] def-body)
edebug-match-specs)
  edebug-match-specs((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442)
(lambda-list [&optional stringp] [&optional ("interactive"
interactive)] def-body) edebug-match-specs)
  edebug-match-specs((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442) (name
lambda-list [&optional stringp] [&optional ("interactive"
interactive)] def-body) edebug-match-specs)
  edebug-match-specs((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442)
("defun" name lambda-list [&optional stringp] [&optional
("interactive" interactive)] def-body) edebug-match-specs)
  edebug-match-sublist((((let ... ... ...)) (179 (180 . 183) (184 ...
... ... ... . 270) (275 ... ... ... . 328) (333 ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... . 2440) . 2441) . 2442)
("defun" name lambda-list [&optional stringp] [&optional
("interactive" interactive)] def-body))
  edebug-match-list((((defun smf-read-mtrk ... "Read one MTrk
chunk.\nNoteOn/NoteOff and NoteOn/NoteOn(vel=0) event\npairs are
unified into a Note event with a certain duration." ...)) (15 (16 .
21) (22 . 35) (36 ... . 44) (47 . 176) (179 ... ... ... ... . 2441) .
2442)) ("defun" name lambda-list [&optional stringp] [&optional
("interactive" interactive)] def-body))
  edebug-match-one-spec((((defun smf-read-mtrk ... "Read one MTrk
chunk.\nNoteOn/NoteOff and NoteOn/NoteOn(vel=0) event\npairs are
unified into a Note event with a certain duration." ...)) (15 (16 .
21) (22 . 35) (36 ... . 44) (47 . 176) (179 ... ... ... ... . 2441) .
2442)) ("defun" name lambda-list [&optional stringp] [&optional
("interactive" interactive)] def-body))
  edebug-match-specs((((defun smf-read-mtrk ... "Read one MTrk
chunk.\nNoteOn/NoteOff and NoteOn/NoteOn(vel=0) event\npairs are
unified into a Note event with a certain duration." ...)) (15 (16 .
21) (22 . 35) (36 ... . 44) (47 . 176) (179 ... ... ... ... . 2441) .
2442)) (("defun" name lambda-list [&optional stringp] [&optional ...]
def-body)) edebug-match-specs)
  edebug-match((((defun smf-read-mtrk ... "Read one MTrk
chunk.\nNoteOn/NoteOff and NoteOn/NoteOn(vel=0) event\npairs are
unified into a Note event with a certain duration." ...)) (15 (16 .
21) (22 . 35) (36 ... . 44) (47 . 176) (179 ... ... ... ... . 2441) .
2442)) (("defun" name lambda-list [&optional stringp] [&optional ...]
def-body)))
  edebug-make-form-wrapper((((defun smf-read-mtrk ... "Read one MTrk
chunk.\nNoteOn/NoteOff and NoteOn/NoteOn(vel=0) event\npairs are
unified into a Note event with a certain duration." ...)) (15 (16 .
21) (22 . 35) (36 ... . 44) (47 . 176) (179 ... ... ... ... . 2441) .
2442)) 15 2441 (("defun" name lambda-list [&optional stringp]
[&optional ...] def-body)))
  edebug-read-and-maybe-wrap-form1()
  byte-code(" " [result edebug-read-and-maybe-wrap-form1 nil] 1)
  edebug-read-and-maybe-wrap-form()
  edebug-read(#<buffer midi3.el>)
  eval-buffer()  ; Reading at buffer position 401
  call-interactively(eval-buffer t nil)
  execute-extended-command(nil)
  call-interactively(execute-extended-command nil nil)

The code that triggers it is from this file http://delysid.org/emacs/midi.el

I have narrowed it down to this function: But could not go further (I
dont know commonlisp)

(require 'cl)
(defun smf-read-mtrk (length)
  "Read one MTrk chunk.
NoteOn/NoteOff and NoteOn/NoteOn(vel=0) event
pairs are unified into a Note event with a certain duration."
  (let ((end (+ (point) length))
	(notes (make-vector 16 nil))
	(ticks 0) (running-status 0))
    (dotimes (i 16) (aset notes i (make-vector 128 nil)))
    (loop while (< (point) end)
	  do (incf ticks (smf-read-varlen))
	  for event =
	  (let ((status (following-char)))
	    (if (/= (logand status #B10000000 ) #B10000000 )
		(if (= running-status 0)
		    (error "Seen data byte without running status")
		  (setq status running-status))
	      (forward-char 1))
	    (unless (= status #XFF ) (setq running-status status))
	    (let ((lower (logand status #X0F )))
	      (case (ash status -4)
		(8  (let* ((note (smf-read-byte)) (vel (smf-read-byte))
			   (old-note (aref (aref notes lower) note)))
		      (if (not old-note)
			  (list 'NoteOff lower note vel)
			(setcar (cdr old-note) 'Note)
			(setcdr (nthcdr 4 old-note)
				(list (- ticks (car old-note)) vel))
			(aset (aref notes lower) note nil))))
		(9  (let* ((note (smf-read-byte)) (vel (smf-read-byte))
			   (data (cons ticks (list 'NoteOn lower note vel))))
		      (if (= vel 0)
			  (let ((old-note (aref (aref notes lower) note)))
			    (if (not old-note)
				(cdr data)
			      (setcar (cdr old-note) 'Note)
			      (setcdr (nthcdr 4 old-note)
				      (list (- ticks (car old-note))))
			      (aset (aref notes lower) note nil)))
			(cdr (aset (aref notes lower) note data)))))
		(10 (list 'At lower (smf-read-byte) (smf-read-byte)))
		(11 (list 'CC lower (smf-read-byte) (smf-read-byte)))
		(12 (list 'PC lower (smf-read-byte)))
		(13 (list 'CP lower (smf-read-byte)))
		(14 (list 'PW lower (logior (smf-read-byte)
					    (lsh (smf-read-byte) 7))))
		(15 (case lower
		      (0  (append (list 'SysEx)
				  (loop repeat (smf-read-varlen) collect
					(smf-read-byte))))
		      (2  (let ((value (logior (smf-read-byte)
					       (lsh (smf-read-byte) 7))))
			    (list 'SongPosition value)))
		      (3  (list 'SongSelect (smf-read-byte)))
		      (6  (list 'TuneRequest))
		      (8  (list 'Clock))
		      (9  (list 'Tick))
		      (10 (list 'Start))
		      (11 (list 'Continue))
		      (12 (list 'Stop))
		      (14 (list 'ActiveSense))
		      (15 (smf-read-meta-event))
		      (t (error "Unknown stuff")))))))
	  until (eq event t) when event collect (cons ticks event))))

Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.

Your bug report will be posted to the [email-masked] mailing list,
and to the gnu.emacs.bug news group.

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
If you would like to further debug the crash, please read the file
/home/siva/local/share/emacs/23.1/etc/DEBUG for instructions.

In GNU Emacs 23.1.1 (i686-pc-linux-gnu, GTK+ Version 2.12.12)
 of 2010-04-28 on Arunachala
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
configured using `configure  '--with-x-toolkit=gtk' '--prefix=/home/siva/local''

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_US
  value of $XMODIFIERS: nil
  locale-coding-system: iso-latin-1-unix
  default-enable-multibyte-characters: t

Major mode: Debugger

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-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
M-x e d e b u g - a l l - d e f <tab> <return> M-x
s e y <backspace> t - v a r i <tab> <return> d e b
u <tab> o <tab> e <tab> <return> t <return> C-x C-f
m i d <tab> 3 <tab> <return> M-x e v a l - b u <tab>
<return> M-x r e p o r t - e m <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Edebugging all definitions is on.
Entering debugger...