summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Nieuwenhuizen <janneke@gnu.org>2014-08-13 21:17:21 +0200
committerJan Nieuwenhuizen <janneke@gnu.org>2014-08-13 21:17:21 +0200
commit8f944212cf4b368eb77877676e70cea9c3a6c32e (patch)
tree385c7fbb870b96d3957dfb0a18d5c08367f1783a
parent01fe01d59e38636d3950406afed33909e9df55d6 (diff)
downloademacs-8f944212cf4b368eb77877676e70cea9c3a6c32e.tar.gz
Support Guile backtraces in compilation mode.
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Add Guile regexpses. * etc/compilation.txt (file): Add Guile backtrace example. * test/automated/compile-tests.el (compile--test-error-line): Grok FILE being nil. Allows for Guile tests to pass. (compile-tests--test-regexps-data): Add Guile tests.
-rw-r--r--etc/ChangeLog4
-rw-r--r--etc/compilation.txt20
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/progmodes/compile.el2
-rw-r--r--test/ChangeLog6
-rw-r--r--test/automated/compile-tests.el7
6 files changed, 43 insertions, 1 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog
index fe3b1c5372a..40eb5f11252 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
+2014-08-08 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * compilation.txt (file): Add Guile backtrace example.
+
2014-08-09 Reuben Thomas <rrt@sc3d.org>
* PROBLEMS: Remove msdos/is_exec.c and sigaction.c.
diff --git a/etc/compilation.txt b/etc/compilation.txt
index e835c57eb13..919e4db30d2 100644
--- a/etc/compilation.txt
+++ b/etc/compilation.txt
@@ -261,6 +261,26 @@ file:G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found.
{standard input}:27041: Warning: end of file not at end of a line; newline inserted
+* Guile backtrace, 2.0.11
+
+symbols: guile-file, guile-line
+
+Backtrace:
+In ice-9/boot-9.scm:
+ 157: 6 [catch #t #<catch-closure 196e3e0> ...]
+In unknown file:
+ ?: 5 [apply-smob/1 #<catch-closure 196e3e0>]
+In ice-9/boot-9.scm:
+ 63: 4 [call-with-prompt prompt0 ...]
+In ice-9/eval.scm:
+ 432: 3 [eval # #]
+In unknown file:
+ ?: 2 [eval (main (command-line)) #<directory (gud-break) 1962510>]
+In /home/janneke/vc/guile/examples/gud-break.scm:
+1038: 1 [main ("gud-break.scm")]
+1033: 0 [stderr "~a:hello world\n" (# # #)]
+
+
* Lucid Compiler, lcc 3.x
symbol: lcc
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index e038ff90cef..713a1aab838 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,10 @@
2014-08-13 Jan Nieuwenhuizen <janneke@gnu.org>
+ * progmodes/compile.el (compilation-error-regexp-alist-alist):
+ Add Guile regexpses.
+
+2014-08-13 Jan Nieuwenhuizen <janneke@gnu.org>
+
* progmodes/gud.el (guiler): New function. Starts the Guile REPL;
add Guile debugger support for GUD.
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 000d7191ee7..5d3b6878a70 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -477,6 +477,8 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?"
;;
"^\\([^ \t\r\n(]+\\) (\\([0-9]+\\):\\([0-9]+\\)) "
1 2 3)
+ (guile-file "^In \\(.+\\):\n" 1)
+ (guile-line "^ *\\([0-9]+\\): *\\([0-9]+\\)" nil 1 2)
)
"Alist of values for `compilation-error-regexp-alist'.")
diff --git a/test/ChangeLog b/test/ChangeLog
index 2de81475e88..dd49d6e782b 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,9 @@
+2014-08-13 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * automated/compile-tests.el (compile--test-error-line): Grok FILE
+ being nil. Allows for Guile tests to pass.
+ (compile-tests--test-regexps-data): Add Guile tests.
+
2014-08-11 Glenn Morris <rgm@gnu.org>
* automated/data/files-bug18141.el.gz: New file.
diff --git a/test/automated/compile-tests.el b/test/automated/compile-tests.el
index 6c169eeab64..e231331c5a0 100644
--- a/test/automated/compile-tests.el
+++ b/test/automated/compile-tests.el
@@ -190,6 +190,10 @@
1 nil 54 "G:/cygwin/dev/build-myproj.xml")
("{standard input}:27041: Warning: end of file not at end of a line; newline inserted"
1 nil 27041 "{standard input}")
+ ;; Guile
+ ("In foo.scm:\n" 1 nil nil "foo.scm")
+ (" 63:4 [call-with-prompt prompt0 ...]" 1 4 63 nil)
+ ("1038: 1 [main (\"gud-break.scm\")]" 1 1 1038 nil)
;; lcc
("E, file.cc(35,52) Illegal operation on pointers" 1 52 35 "file.cc")
("W, file.cc(36,52) blah blah" 1 52 36 "file.cc")
@@ -338,7 +342,8 @@ END-LINE, if that matched.")
(setq end-line (cdr line) line (car line)))
(and (equal (compilation--loc->col loc) col)
(equal (compilation--loc->line loc) line)
- (equal (caar (compilation--loc->file-struct loc)) file)
+ (or (not file)
+ (equal (caar (compilation--loc->file-struct loc)) file))
(or (null end-col)
(equal (car (cadr (nth 2 (compilation--loc->file-struct loc))))
end-col))