]> git.eshelyaron.com Git - emacs.git/commitdiff
Support Guile backtraces in compilation mode.
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 13 Aug 2014 19:17:21 +0000 (21:17 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 13 Aug 2014 19:17:21 +0000 (21:17 +0200)
* 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.

etc/ChangeLog
etc/compilation.txt
lisp/ChangeLog
lisp/progmodes/compile.el
test/ChangeLog
test/automated/compile-tests.el

index fe3b1c5372a9249e7120f9951c220b9d3fa91e9e..40eb5f112524de672eaf50719a531e098c2c8f99 100644 (file)
@@ -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.
index e835c57eb13135873606110846b521792e6354c1..919e4db30d263dcb0723c41bb6032759a9f707d6 100644 (file)
@@ -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
index e038ff90cef5dfd4e8cdf743c54e1d19aa37298c..713a1aab838bb4f69708064b5698c87429fda242 100644 (file)
@@ -1,3 +1,8 @@
+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;
index 000d7191ee77552a882a11dab557ea18d632b299..5d3b6878a70601c5c9f5bca1f7f42473e92feddb 100644 (file)
@@ -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'.")
 
index 2de81475e88d7a2d0d6256737d571f883ea96f76..dd49d6e782b35511448a030ff11bbc8c09228c03 100644 (file)
@@ -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.
index 6c169eeab6484f92fd2828932cd850d2b250bc4e..e231331c5a0a414159ef6b489476aec0d154b7f0 100644 (file)
      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))