diff options
author | Jan Nieuwenhuizen <janneke@gnu.org> | 2014-08-13 21:17:21 +0200 |
---|---|---|
committer | Jan Nieuwenhuizen <janneke@gnu.org> | 2014-08-13 21:17:21 +0200 |
commit | 8f944212cf4b368eb77877676e70cea9c3a6c32e (patch) | |
tree | 385c7fbb870b96d3957dfb0a18d5c08367f1783a | |
parent | 01fe01d59e38636d3950406afed33909e9df55d6 (diff) | |
download | emacs-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/ChangeLog | 4 | ||||
-rw-r--r-- | etc/compilation.txt | 20 | ||||
-rw-r--r-- | lisp/ChangeLog | 5 | ||||
-rw-r--r-- | lisp/progmodes/compile.el | 2 | ||||
-rw-r--r-- | test/ChangeLog | 6 | ||||
-rw-r--r-- | test/automated/compile-tests.el | 7 |
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)) |